宣伝: 『「シミュレーション仏教」の試み』(JRF 著)。Amazon Kindle で販売中!
技術系電子本。Python による仏教社会シミュレーション( https://github.com/JRF-2018/simbd )の哲学的解説です。令和4年3月11日発売。

« 前のひとこと | トップページ | 次のひとこと »

cocolog:93564604

sympy_matrix_tools を作った。SymPy で行列計算する上でこういうのがあったらいいんじゃない?…という関数をまとめて、Google Colab から使えるようにしておいた。MatrixFunction, Apply, MatrixWild などが使える。 (JRF 0190)

JRF 2022年6月19日 (日)

ソースと使用例だけからなるドキュメントは、↓にある。

《JRF-2018/sympy_matrix_tools: Some tools for sympy matrices.》
https://github.com/JRF-2018/sympy_matrix_tools

sympy_matrix_tools の最初のお目見えは、[cocolog:93495591]。そこから引用する。

JRF2022/6/195985

>このところ SymPy で MatrixSymbol のお試しをしててこういうのがあったらいいんじゃない?…という関数をまとめて、Google Colab から使えるようにしておいた。あくまで自分用で実験的利用のため…と考えていただきたい。<

>sympy_matrix_tools に級数の部分展開を行うルーチンや行列の数列を扱う MatrixFunction を作った(version 0.1.0)。<

JRF2022/6/194347

>上にも書いたように sympy_matrix_tools は、自分用で実験的利用のため…が第一の目的。もちろん、他の方に使っていただけてもありがたいのではあるが、MatrixFunction などは本家の SymPy でいつ出てきてもおかしくないようなものだったりするので、使うときは、sympy_matrix_tools と SymPy のバージョンは決め打ちしたほうが良いかもしれない。または、私のようにノートブックにしてそのときどきの出力を残せば十分と考えるか。<

JRF2022/6/198507

>本来は、SymPy の Issues に希望を書いて取り込んでもらうとかするべきなのかもしれないが、私、英語できないし、技術力も大してないしで、そこまで手がまわらない。<

JRF2022/6/199340

>本当はこういった検算・証明は専門の theorem prover を使ってやるべきである。しかし、無料で誰でも使える Google Colab & Python で示せればそれはそれで価値があるのではないかと考えた。…とも README.md に書いたが、行列も扱える theorem prover って何があるのだろう? 何がいいのだろう? 教えて欲しい。<

JRF2022/6/191404

光栄にも、SymPy の開発者が(部分的にも) sympy_matrix_tools の機能を元の SymPy に統合したいという場合は、どうぞご自由にしてください。

JRF2022/6/193705

……。

それをアップデートした。バージョン 0.2.0。

Higher-Order Logic ライクな推論が行えるように Apply と resolve_mp を作った。

JRF2022/6/196028

MatrixWild, MatrixDummy も作ったが、使い道があるのかどうか…。MatrixWild, MatrixDummy を使いたい場合は SymPy のバージョンが 1.10.1 以上である必要がある。Google Colab で使うときは…、

!pip install "sympy>=1.10.1"

…としてから…

JRF2022/6/192236

!pip install git+https://github.com/JRF-2018/sympy_matrix_tools

…とする必要がある。

JRF2022/6/198481

……。

……。

追記。更新。

sympy_matrix_tools。バージョン 0.2.2。

MatrixWild には少なくとも3年前に先行者(↓)がいるようだが、残念ながら sympy:master には取り込まれていないようす。

《Add matrix wildcards by anpandey · Pull Request #17365 · sympy/sympy》
https://github.com/sympy/sympy/pull/17365

↑を参考に MatrixWild と MatrixDummy の定義をいじった。

JRF2022/6/243012

……。

……。

追記。更新。

sympy_matrix_tools。バージョン 0.2.3。

大きな更新はない。しばらく、MatrixFunction の微分ができるよう sympy.tensor.array を調べて試験実装をしていた。しかし、結局のところは、うまくいかず、諦めてそのコードはコメントアウトして、痕跡だけ残している。その部分は将来削ることになるだろう。今だけのコードということで、特にこのバージョンを記録するため、ここに書いている。

JRF2022/6/294077

Array で行列積を使うには、テンソル積のあと、縮約(contraction) を使うらしいのだが、他の部分では対角(diagonal)にする方法を sympy のソースでは用いている。これのパラメータを自由に設定できるなら、自分の考え通りに設定して終りなのだが、そうはいかず、これらはかなり限られた値でないと計算が最後まで行かずエラーが出る。しかも最後まで行くようなものも、MatrixFunction に実際の例を代入すると、エラーが出てしまい、こちらのエラーは結局解決できなかったので、「諦める」という結果になった。

JRF2022/6/294001

なお、ごく私事だが、私の生活の面倒を見てくれていた母の足の持病に関する入院が決まり、しばらく、コードの更新等が滞ることがありうる。この次は、論理に関するツールを作ろうかと思っていたが、それはだいぶ先の話になるかもしれない。

JRF2022/6/292855

« 前のひとこと | トップページ | 次のひとこと »