qepmax
以前,mathlibre の wiki に書いたものです(wiki はサーバーのトラブルで最近の記事が消えています)
*maxima からの利用 「qepmax」パッケージをロードすると,maxima 上から QEPCAD B が利用できます. 論理記号 %implies %replies %eq %or %and %neg A E 0項述語(命題)記号 true false *インストール例 cd ~ mkdir ./.maxima echo -e "file_search_maxima:append([\"/usr/local/CAS/qepmax/###.{mac,mc}\"],file_search_maxima); file_search_lisp:append([\"/usr/local/CAS/qepmax/###.{lisp,lsp}\"],file_search_lisp); qepcad_installed_dir:\"/usr/local/CAS/qesource\";" > ./.maxima/maxima-init.mac svn co https://github.com/YasuakiHonda/qepmax.git cd /usr/local/CAS sudo mkdir ./qepmax cd ./qepmax sudo cp /home/user/qepmax.git/trunk/* ./ rm -rf /home/user/qepmax.git *利用例 maxima または wxmaxima の起動 maxima wxmaxima & パッケージのロード load(qepmax)$ qepcad へのオプション qepcad_option; 変更方法 qepcad_option:" +N20000000 +L200000 "; 有理式を項とする論理式の簡約 qe([],x<=2/(x-1)); デフォルトではmaximaの簡約が先行する qe([],y=x/x); 正しい簡約 (Strict(),qe([],y=x/x)); 全称記号の消去 qe([[A,x]],a*x^2+b*x+c>0); 特称記号の消去 qe([[E,x],[E,y]],(x^2+y^2=r^2)%and(a*x+b*y=c)); ネスト qe([[A,x]],(%neg(x=a)) %implies (qe([[E,y]],x*y=b))); 拡張された量化記号F,G,C,X kの利用 (F x)[p(x)] ⇔ R-{x|p(x)}が有限集合 qe([[F,x]],((a<x) %and (x<b)) %and (1<x^2)); (G x)[p(x)] ⇔ {x|~p(x)}が有限集合 qe([[G,x]],((x<=a) %or (b<=x)) %or (x^2<=1)); (C x)[p(x)] ⇔ {x|p(x)}がRの区間 qe([[C,x]],((a<=x) %and (x<=b)) %and (1<=x^2)); (Xk x)[p(x)] ⇔ {x|p(x)}の元の個数がk (k=1,2,...) qe([[X2,x]],((a<=x) %and (x<=b)) %and (1<=x^2)); 拡張タルスキー論理式の利用 xが方程式x^3-3*x-1=0の2番目に小さい根と等しい qe([],x=etf_root(2,x^3-3*x-1)); xが方程式x^3-3*x-1=0の2番目に小さい根より大きい qe([],x>etf_root(2,x^3-3*x-1)); 応用例 3次方程式 (x-4)^2*x-a*(x+2)=0 が異なる3実根を持つように実数 a を与えるとき,この方程式の小さい方から2番目の根 r の範囲は {r|-4<r<-2 または 1<r<4 } である tm:(x-4)^2*x-a*(x+2); f1:qe([[X3,x]],tm=0); f2:qe([[E,a],[E,x]],f1 %and x=etf_root(2,tm) %and x=r); qe([[A,r]],f2 %eq ( (-4<r %and r<-2) %or (1<r %and r<4))); 入出力の例は,インストール先の /usr/local/CAS/qepmax/rtest_qepmax.mac にもあります.