【sympy】代数計算(数式処理)を行うPythonのライブラリのメモ【Mathematica】

シェアする

スポンサーリンク
広告

Sympy

MathematicaからPythonへのコンバートをする仕事があったので。。 その時にはまったことをメモ

Sympyは、公式サイトは、こちら

SymPy

MathematicaやMatlab(Octave)みたいな数式処理をしながら使えるものです。

ちなみに、Mathematicaは、今は、Wolflamlanguageっていうので、見るだけなら無料のplayerで見れます。

Wolfram Player for Notebooks
Download Wolfram Player to view and interact with Wolfram Notebooks. Engage with live, interactive examples, reports and files. Explore thousands of free applic...

Wolfram engineっていうのもあって、動かせそうなんですが、動かせない

Sympyは、難しい式を、簡単にしていったり、方程式を解いてくれたりするライブラリです。

本当に代数的に計算するなら、Numpyとか、Cupy(Cudaで計算)を使うんですが、それに持っていく式を作るところなどに使います。

一番のはまりどころ Solve

ある意味で、solveが使いたいために、sympy使っているのですが。。

solve() is a giant mess · Issue #6659 · sympy/sympy
Let's just kill it and start over! The replacement needs to have a simple interface (no complicated transformations of the input, no flags whatsoever) and a con...

なんか巨大なissueが潜んでいるようです。 通常簡単な方程式では、十分使えていて、日本語の解説など読むと使えるんですが。。どうも今回やったようなちょっとだけ複雑な式では答えが返ってこない。。

で。。何を使うか?

solveset を使いました。

Solveset - SymPy 1.12 documentation

これ使うまで解けなかったのよね。。

これが0の時のfを解くというのを この関数が、Zgfだと。。

fがなくなってるでしょ。。 Mだけの関数になってて、このMに値を代入すると答えがでてくる。 この場合虚数だけど。。

集合なのね。。finiteset

タプルとか、リストとかじゃないのを返してくるんですね。。

sympyでの集合ってこういうことみたいです。数学だから集合で表すみたい。

集合の基礎部分を絡めたSymPy操作 - Qiita
集合のごくごく基礎(表面的なところ)を勉強・復習を兼ねてPythonとSymPyの各インターフェイスで扱っていきます。※記事執筆者は理系出身ではなく数学や用語などで色々粗い点等はご容赦ください。…

で、上の解なんかでも、集合で返されるから。。一個とりだしたいときは、一回listみたいなので型変換しないといけません。。

numpyの式に変換する lamdify

Numpyで計算する方がやっぱり慣れてたりします。Sympyで簡単かしたりした式を、ScipyやNumpyの形式にしてくれる関数があって、これを使うとNumpyでの計算に使えます。

Lambdify - SymPy 1.12 documentation
SymPyー代数演算(1)使い方

日本語で、使い方などが乗っているサイト

逆引き的に、使えます

SymPyの使い方
SymPyとは?: SymPyはPythonの 代数計算ライブラリ です。 拡張しやすいように保ちコードのシンプルに保ちつつ、MathematicaやMapleのようなシステムの代替となることを目指しています。 SymPyはすべてPythonで書かれていて外部ライブラリを必要としないことも特徴のひとつです。 「習うより...

Mathematicaわかってる人には、わかりやすい。

SymPyで代数演算してみる - Qiita
SymPyとは代数演算のライブラリです。Symbolicな演算(文字を数値としてではなくそのまま計算する演算)を可能にします。SymPyでできること文字変数定義正負実数、複素数展開因…
SymPy による数式処理とグラフ作成 - 弘前大学 Home Sweet Home

MathematicaからPythonへの変換

とっても、SymPyしていましたが。。できました。 よかった。。 ← これが書きたかっただけ(笑)

Sympyの使い方を制御・コントロールを題材にした例題

Dynamics and control — Dynamics and Control with Jupyter Notebooks 0.0.1 documentation
スポンサーリンク
広告

コメントを残していただけるとありがたいです

Loading Facebook Comments ...
%d人のブロガーが「いいね」をつけました。