REDUCE 更新

https://sourceforge.net/projects/reduce-algebra/files/snapshot_2017-09-22インストールスクリプト. svn co http://svn.code.sf.net/p/reduce-algebra/code/trunk reduce-algebra cd ./reduce-algebra ./configure --with-psl make sudo apt-get install…

Wolfram Open Cloud

http://blog.wolfram.com/2016/01/28/launching-the-wolfram-open-cloud-open-access-to-the-wolfram-language/ での告知の通り,Wolfram Open Cloud として,Mathematica が https://sandbox.open.wolframcloud.com/ などで利用可能になっています.

実行例(5)

入力は,主に http://www.cs.bath.ac.uk/~djw42/triangular/examplebank.pdf の Examples from [CMXY09](https://arxiv.org/pdf/0903.5221.pdf)から選びました.環境は,Core i5-3210M 2.50GHz/8GB/Ubuntu 14.04/Maxima 5.40.0/SBCL 1.3.20 です.コントロ…

Lazard's method(その1)

1994年(Unpublished manuscript は 1990年)に Daniel Lazard が発表した(https://link.springer.com/chapter/10.1007/978-1-4612-2628-4_29)CAD の構成方法は,一般化された根の重複度を保つ分割によるもので,その projection set(主係数,定数項,判…

結果の検証

今回の QE ツールにおける入出力(に対応した論理式)の等価性の検証は,いつもお世話になっている qepmax(https://github.com/YasuakiHonda/qepmax)を介して QEPCAD B で行なっています.具体的には,次のように出力のリストを論理結合に変換する関数 F2G…

実行例(4)

(%i1) (qvpeds ([],[a,b,c,d],0,h1,r11,0 ), qe( bfpcad(ext( '( a^3+b^2-1=0 and b^3+c^2-1=0 and c^3+d^2-1=0 and d^3+a^2-1=0 ) ))) ); Evaluation took 14.3200 seconds (16.7700 elapsed) using 2101.559 MB. (%o1) [[a = root(a,1),b = root(b^2+a^3-1…

実行例(3)

CGS-EQ の深作亮也先生(東京理科大)のサイト http://www.rs.tus.ac.jp/fukasaku/software/CGSQE-20160509/benchmark/computation-time/ http://www.rs.tus.ac.jp/fukasaku/software/CGSQE-20160509/benchmark/input/04/log/出典 http://citeseerx.ist.psu.…

実行例(2)

SyNRAC の岩根秀直さん(富士通研究所)のサイト https://github.com/hiwane/qe_problems/blob/master/problems/exam/manual-fof/tsukuba2010-Ri-1-m.mpl他の QE ツールの出力との比較 http://www.kurims.kyoto-u.ac.jp/~kyodo/kokyuroku/contents/pdf/2019-…

projection set に対する数値解の誤差(その2)

...とは言え,sep の評価なしでは,いくら R を小さくしても,前回の冒頭で述べたように,近接根に対応した数値解をカウントしてしまう可能性を排除出来ないかのように見えます.しかし,我々が扱うのは一般の系ではなく,CAD の projection set であり,…

近接根の識別

さて,r, R を先の条件を満たすようにとるとして,そも,R をどのように定めるのか?という問題があります.確かに,数値解の誤差 R の系において,互いの距離が 2*R 以下である数値解を全て集めれば,重根に対する数値解は必ずそれに属します.しかし,互い…

projection set に対する数値解の誤差(その1)

誤差 r の数値解を係数に代入した方程式系の数値解の誤差 R との関係を考えると・数値解の代入による係数の摂動は Taylor の定理により r 程度. ・係数の摂動 r に対する厳密 n 重根の摂動は同じく r^{1/n} 程度.なので,例えば,前回の 4096*c^3+27*b^4(…

重根に対する数値解の誤差

先の出力の dist は,同じ値に対すると見做した数値解間の複素平面上での距離ですが,単根の場合の(絶対)誤差 10^{-30} に対して,例えば,下の部分では 10^{-11} まで膨らんでいます. 1 multi-roots: (-6.2414826969557199979633340867b-13*%i)-6.389431…

QE on maxima

以下は,現在作成中の QE ツールの出力例です. ・有効桁数が fpprec の多倍長浮動小数点数を使用. ・2つの数値解間の距離が %ez より小ならばそれらは同じ値の根(重根や共通根)に対応し,%ez 以上ならばそれらは異なる値の根に対応する数値解と見做して…

CAD on maxima

SARAG https://github.com/andrejv/maxima/tree/master/share/contrib/sarag を待ちきれない方のために作ってみました.ただし,lifting のネックである根の分離は realroots に任せ,符号判定も近似的です.使用例(wxmaxima 等で実行すると見易いと思いま…

ご冗談でしょう,Maxima さん.

1と2は特別なのでしょうか? k@k ~ $ rmaxima --init= Maxima 5.39.0 http://maxima.sourceforge.net using Lisp CMU Common Lisp 21b (21B Unicode) Distributed under the GNU Public License. See the file COPYING. Dedicated to the memory of William …

cineqs4 更新

変更点 ・名前が cineqs4g になりました. ・処理の効率を改善.数パーセント高速化しましたが,下記の処理のため結果として遅くなりました(苦). (%i15) for c:1 thru 100 do (ep(0,0),cineqs4g('( x^3+abs(x+1)^(-1/4)-2>0 )))$ Evaluation took 5.2900 …

cineqs4 原理

cineqs4 は「真理値に関する中間値定理」により,原始式同士の結合の様子に立ち入ることなく,系を解いています.すなわち,... 一変数半代数系 F(x) と実数 a,b (a,=, 例えば,f(a)>0はtrue,f(b)>0はfales(つまり,f(b) ⇒F(x) のある原始式 rel(f(x),…

cineqs4 使用例

作動確認バージョン. Maxima 5.39.0 using Lisp CMU Common Lisp 21b (21B Unicode) 高次不等式. (%i1) ep(1,0)$cineqs4('( (x-1)*(x^2-2)*(x^3-3)*(x^2+4)<=0 )); Evaluation took 0.0000 seconds (0.0000 elapsed) using 856 bytes. Evaluation took 0.0…

一変数有理冪半代数系ソルバー cineqs4

cineqs2 を分数関数や有理冪乗(fractional power)関数で表された方程式,不等式まで扱えるように拡張しました. コードの大半は,Maxima の非論理的挙動を封じるためのものです(笑). 作動確認は Maxima 5.39.0 on Ubuntu 及び windows で行っています.…

Maxima さん,bug ってますよ.

Maxima 5.39.0 http://maxima.sourceforge.net using Lisp CMU Common Lisp 21b (21B Unicode) Distributed under the GNU Public License. See the file COPYING. Dedicated to the memory of William Schelter. The function bug_report() provides bug re…

nns シリーズ更新

・一変数半代数系の高速ソルバー cineqs2 の正式公開. ・solvex から呼ぶ不等式ソルバー sineq も一変数なら高速になりました(cineqs2 の一世代前のアルゴリズムなので少し遅いですが). load(qepmax)$ showtime:on$ display2d:false$ prtoff():=kill(prt…

solvex 原理

solvex の処理手順は,人間が計算機を用いて解く場合と同じです.すなわち,...(ステップ1)presimp,つまり,入力を qex で半代数系に変換 (オプションスイッチ)presimp:l で qex ではなく,p2t を通さない簡約 lineq を利用.sqrt が係数のみに現れ…

toy problems

最後の簡約は重いので無効化します(笑). (%i1) postsimp:off$ Evaluation took 0.0000 seconds (0.0000 elapsed) using 32 bytes. 放物線と直線との交わり. (%i2) solvex(y=x^2 %and x+y=1,x,y); Evaluation took 5.4600 seconds (11.3400 elapsed) usin…

一変数半代数系の高速ソルバー cineqs2

多変数半代数系のソルバーの基礎部分として作りました.かなり速いです.以下のものは,パッケージのロードなしで動くように,真偽判定を簡素化,また,論理結合子も and, or になっています.なお,maxima の solve が,虚数なのに %i を使わなかったり,実…

qex 原理(その2)

p2t では abs,max2,min2 も defrule(powertk2, abs(aa), (aa^2)^(1/2))$ defrule(powertk3, max2(aa,bb), (aa+bb+abs(aa-bb))/2)$ defrule(powertk4, min2(aa,bb), (aa+bb-abs(aa-bb))/2)$ により,冪乗関数に変換して処理しています.流れを例示します.次…

qex 原理(その1)

qex は入力を関数 p2t を通して,qe に渡すだけの関数なので,以下は,p2t のお話です.p2t (rational power to Tarski) とは,有理数乗を含む入力を特称量化することで多項式による系に変換する関数で,その原理は,原始式 A と x の既約分数 a/b 乗とに対…

solvex 例

ソース http://d.hatena.ne.jp/ehito/20170106/1483705734 を見て戴くと判りますが,solvex には様々なスイッチがあり,説明が必要なのですが,それはまた後日とし(苦),ここではまずどんなものが解けるのか?をご紹介します.係数にパラメータを含む不等…

等価性

nns,nnss と同じく,qex,solvex の入力と出力とは等価,つまり,変数に任意の実数を代入したとき,それらの true,false は一致します.例えば,sqrt を含む場合,定義:y=sqrt(x)⇔(y^2=x∧y>=0) により,x-1] ],出力:[ [a システム自身に等価性をチェックさ…

solvex 概要

solvex は冪乗根関数で表された方程式,不等式の系を指定された変数についての1次式を原始式とする系に変換する関数です.例えば,3数の相加平均と相乗平均とが一致する条件を得ようとしても,qex では... (%i1) qex(a>=0 %and b>=0 %and c>=0 %and (a*…

qex 概要

以下は Maxima 5.39.0 using Lisp CMU Common Lisp 21b (21B Unicode) 上での実行です.qex は qe コマンドを有理数冪入力対応に拡張したもの(qe extended version)であり,qex([],formula) は qex(formula) のように省略可能です.また,出力は qe と同じ…