ホームページ >バックエンド開発 >Python チュートリアル >Python は微分方程式を解くことができますか?
Sympy
Sympy は、積分や微分方程式などのさまざまな数学演算手法を含む数学記号ライブラリ (sym はシンボル、シンボルの略) であり、 Python 強力な数学演算サポートを提供します。画像の場合、すべて離散計算を行っており、ほとんどの演算はnumpyの配列ですが、実はこのライブラリには積分微分や三角法などの最も基本的な数学演算が含まれており、最も基本的なものと言えます。工学分野での使用 MATLAB と同等です。
sympy のインストール
sudo pip install sympy または sudo pip3 install sympy
anaconda を使用する場合は conda sympy のインストール
関連する推奨事項:pythonvideo>>
odeint() 関数
odeint() 関数は scipy ですライブラリ 微分方程式を数値的に解く関数
odeint() 関数には少なくとも 3 つの変数が必要です。1 つ目は微分方程式関数、2 つ目は微分方程式の初期値、3 つ目は微分方程式の独立変数です。 。
例:
#y"+a*y'+b*y=0 from scipy.integrate import odeint #使用odeint之前,首先从scipy.integrate中调用它from pylab import * def deriv(y,t): # 返回值是y和y的导数组成的数组 a = -2.0 b = -0.1 return array([ y[1], a*y[0]+b*y[1] ]) time = linspace(0.0,50.0,1000) yinit = array([0.0005,0.2]) # 初值 y = odeint(deriv,yinit,time) figure() plot(time,y[:,0],label='y') #y[:,0]即返回值的第一列,是y的值。label是为了显示legend用的。 plot(time,y[:,1],label="y'") #y[:,1]即返回值的第二列,是y’的值 xlabel('t') ylabel('y') legend() show()
出力結果は次のとおりです:
以上がPython は微分方程式を解くことができますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。