Maxima メモ
Maxima のWindows へのインストール

Maxima のインストール

マニュアルの外部リンク

マニュアル

自分向けのメモ

デフォルトのインストールでは /cygdrive/c/Program\ Files/Maxima-5.10.0/share/maxima/5.10.0/tests/ にサンプルファイルがあるので試しても良い。 例えば batch("c:/Program\ Files/Maxima-5.10.0/share/maxima/5.10.0/tests/rtest1.mac");

マニュアル

  • 一定の賭けについてのグラフ表示等
    /* Abdin, T., Mahmoud, H., Modarres, A., & Wang, K. (2022). An index for betting with examples from games and sports. The Mathematical Gazette, 106(565), 32-40. doi:10.1017/mag.2022.7 */
    /***************** American roulette p.35 ***************************/
    kill(all); fpprec: 3$  eps:0.05$ b:1/2$ p:18/38$ 
    A:-log(1-b)$ B:log(1+b)$ expX:2*p-1$
    beta(b,p):=p*B-(1-p)*A$ beta:beta(b,p)$
    a(b):=A/radcan(A+B)$ a:a(b)$
    tau:log((1-p)*A/(p*B))/(A+B)$
    rho(b,p) := (p/a)^a*((1-p)/(1-a))^(1-a)$ rho:rho(b,p)$
    nmin:fix(log(eps)/float(log(rho)))+1$
    print("American roulette p.35")$
    print("b=1/2, P(X=1)=18/38, P(X=-1)=20/38")$
    print("expectation=", expX, "=", float(expX))$
    print("beta=", float(beta))$
    print("tau=", float(tau))$
    print("a=",a,"=", float(a))$
    print("P(Mn>M0)<=(", float(rho), ")"^n)$
    print("P(Mn>M0)<=", eps, "となる n は",nmin, "以上")$
    
    
    /*********Mixed American roulette p.36 ***************************/
    kill(all); fpprec: 10$ eps:0.05$ b:0.5$ p:1/38$ q:19/38$
    pval:18-1/2$ mval: -1$
    beta(b):=p*log(1+b*pval)+q*log(1+b*mval)$ beta:beta(b)$
    phi(t):=p*exp(t*log(1+b*pval))+q*exp(t*log(1+b*mval))$
    dphi(t):=diff(phi(t),t)$
    tau:find_root (dphi(t), t, 0.1, 0.8)$
    rho:phi(tau)$
    nmin:fix(log(eps)/float(log(rho)))+1$
    print("Mixed American roulette p.36")$
    print("P(X=18-1/2)=1/38, P(X=0)=18/38, P(X=-1)=19/38")$
    print("beta=", bfloat(beta))$
    print("tau=", bfloat(tau))$
    print("P(Mn>M0)<=(", bfloat(rho), ")"^n)$
    print("P(Mn>M0)<=", eps, "となるnは",nmin, "以上")$
    
    /*********Sports Betting p.37 ***************************/
    kill(all); fpprec: 10$ eps:0.05$ b:0.16$ p:0.6$ 
    pval:10/11$ mval: -1$
    beta(b):=p*log(1+b*pval)+(1-p)*log(1+b*mval)$ beta:beta(b)$
    print("Sports Betting  p.37")$
    print("b=1/2, P(X=10/11)=0.6, P(X=-1)=0.4")$
    print("beta=", bfloat(beta))$
    
    /**** p.39 p=0.6の有利な賭け (Abdin)*******************************/
    kill(all); p:0.6$ expX:2*p-1$ 
    beta(b,p):=p*log(1+b)+(1-p)*log(1-b)$
    print("Optiminising bets  p.39")$ print("P(X=1)=0.6, P(X=-1)=0.4")$
    print("expectation=", expX, "=", float(expX))$ 
    b1:find_root(beta(b,p), b, 0.1, 0.5)$ 
    print("beta(b)>0となるbの範囲は 0< b < ", b1)$
    /**** p.39 p=0.6の有利な賭け (a(b)利用)*******************************/
    kill(all); p:0.6$ expX:2*p-1$ 
    A:-log(1-b)$ B:log(1+b)$ expX:2*p-1$
    a(b):=A/radcan(A+B)$ a:a(b)$
    print("Optiminising bets  p.39")$ print("P(X=1)=0.6, P(X=-1)=0.4")$
    print("expectation=", expX, "=", float(expX))$ 
    b1:find_root(a(b)-p, b, 0.1, 0.5)$ 
    print("beta(b)>0となるbの範囲は 0< b < ", b1)$
    
    /**** p.39 p=0.6の有利な賭け (b=0.5と限定)********************/
    kill(all); b:0.5$ p:0.6$ eps:0.05$ expX:2*p-1$ 
    A:-log(1-b)$ B:log(1+b)$ expX:2*p-1$
    a:A/(A+B)$
    rho:(p/a)^a*((1-p)/(1-a))^(1-a)$
    nmin:fix(log(eps)/float(log(rho)))+1$
    print("Optiminising bets  p.39")$ print("P(X=1)=",p, "P(X=-1)=",1-p)$
    print("expectation=", expX, "=", float(expX))$ 
    print("b=", b, "rho=", rho)$
    print("P(Mn>M0)<=(",float(rho),")"^n)$ 
    print("P(Mn>M0)<=", eps, "となるnは",nmin, "以上")$
    /**** p.39 p=0.6の有利な賭け (b=0.2と限定)********************/
    kill(all); b:0.2$ p:0.6$ eps:0.05$ expX:2*p-1$ 
    A:-log(1-b)$ B:log(1+b)$ expX:2*p-1$
    a:A/(A+B)$
    rho:(p/a)^a*((1-p)/(1-a))^(1-a)$
    nmin:fix(log(eps)/float(log(rho)))+1$
    print("Optiminising bets  p.39")$ print("P(X=1)=",p, "P(X=-1)=",1-p)$
    print("expectation=", expX, "=", float(expX))$ 
    print("b=", b, "rho=", rho)$
    print("P(Mn>M0)>=1-(",float(rho),")"^n)$
    print("P(Mn>M0)>=", 1-eps, "となるnは",nmin, "以上")$
    
    
    /**** p.39, FIGURE 1 のグラフの重ね書き *******************************/
    beta(b,p):=p*log(1+b)+(1-p)*log(1-b)$
    plot2d([beta(b,0.4),beta(b,0.6)],[b,0,0.9],
    [title, "beta with p=0.4, 0.6"]);	
    
    /**** a(b), H(a,0.6) のグラフ(補題\ref{lem:ahanni})*****************/
    a(b):=-log(1-b)/log((1+b)/(1-b)); radcan(diff(a(b),b));
    plot2d(a(b),[b,0,1],[title, "a(b)"]);	
    H(a,p):=a*log(a/p)+(1-a)*log((1-a)/(1-p))$ /* エントロピー*/
    /*
    plot3d(H(a,p),[a,0.5,1], [p,0,1]); 
    */
    plot2d(H(a,0.6),[a,0.5,1],[title, "H(a,0.6)"]); /* */