QEPCAD B + slfq

QEPCAD B v1.69 is a program for studying Cylindrical Algebraic Decomposition (CAD). It constructs CADs from an input formula and variable order, and provides many commands for getting info out of the CAD, including construction of simple equivalent Tarski formulas.

Quantifier Elimination (入力された論理式と等価で,量化子を含まない論理式を出力する) プログラムの定番です.

インストール例

MathLibre (20130831) ではインストール済みです.それ以前のバージョンでは次を実行してください.

sudo apt-get -y install bison flex
export CAS=/usr/local/CAS
export qe=$CAS/qesource
export saclib=$CAS/saclib2.2.5
sudo mkdir $CAS
sudo chmod 777 $CAS
cd $CAS
wget http://www.usna.edu/cs/~qepcad/INSTALL/saclib2.2.5.tar.gz
tar zxvf ./saclib2.2.5.tar.gz
cd $saclib/bin
./sconf
./mkproto
./mkmake
./mklib all
cd $CAS
wget http://www.usna.edu/cs/~qepcad/INSTALL/qepcad-B.1.69.tar.gz
tar zxvf ./qepcad-B.1.69.tar.gz
cd $qe
sed -i "s/csh/sh/g" $qe/Makefile
make
sed -i "s/\#SINGULAR/SINGULAR/g" $qe/default.qepcadrc
cd $CAS
wget http://www.usna.edu/cs/~qepcad/SLFQ/simplify-1.20.tar.gz
tar zxvf simplify-1.20.tar.gz
cd ./simplify
make
echo "export qe=/usr/local/CAS/qesource" >> ~/.bashrc
sudo ln -s $CAS/qesource/bin/qepcad /usr/local/bin/qepcad
sudo ln -s $CAS/simplify/slfq /usr/local/bin/slfq

使用例

円と直線

echo "[]
(a,b,x,y)
2
(Ex)(Ey)[x^2+y^2<=1 /\ a x+b y=1].
finish" | qepcad

オプション

echo "[]
(a,b,x,y)
2
(Ex)(Ey)[x^4+y^3<=1 /\ a x+b y=1].
finish" | qepcad +N2000000 +L10000

x->aのときのx^3の極限

echo "[]
(a,b,p,q,x)
2
(Ap)(Eq)(Ax)[[p <= 0 \/ [q > 0 /\ [[ - x - q + a >= 0 \/ x - q - a >= 0] \/ [ - x^3 - p + b < 0 /\ x^3 - p - b < 0]]]]].
finish" | qepcad

REDUCE からの利用

「QEPCAD」パッケージをロードすると,REDUCE 上から Redlog の書式で QEPCAD B が利用できます.ただし,MathLibre (20130831) の REDUCE は最小の構成なので,パッケージが呼ぶスクリプトファイルをビルドされた時の場所に置く必要があります.次を実行してください.

export bap=/build/build-reduce-algebra_20110414-1~getdeb2-amd64-XKpkL0/reduce-algebra-20110414/packages/redlog/qepcad
sudo mkdir -p $bap
sudo wget http://sourceforge.net/p/reduce-algebra/code/HEAD/tree/trunk/packages/redlog/qepcad/qepcad.awk?format=raw -O $bap/qepcad.awk

なお,空きスペースに余裕のある場合,REDUCE の項に従いフル構成にアップグレードすれば,この処理は不要です.

利用例

REDUCE をターミナル,白黒モードで起動

reduce -w -b

パッケージのロード

load qepcad;

QEPCAD の利用

on rlnzden,rladdcond;
rlqepcad ex({x,y},y=1/x and a*x+b*y=1);

slfq の利用

on rlslfqvb;
rlqe ex({x,y,z},x^2+y^2+z^2=1 and a*x+b*y+c*z=1);
rlslfq ws;

オプション

rlqepcadn 50000000;
rlqepcad ex({x,y,z},x^2+y^2+z^2=1 and a*x+b*y+c*z=1);

終了

quit;

リンク

:included in knxm:


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-01-09 (金) 18:44:24