[Python] 状態遷移図を表記

Python

\begin{align} \left\{ \begin{array}{ll} \displaystyle{\frac{dx}{dt}=y} \\ \displaystyle{\frac{dy}{dt}=-x-(x-t)^3+t+0.1}\end{array}\right.\end{align}

の整数座標における変化率を$(\displaystyle{\frac{dx}{dt}},\displaystyle{\frac{dy}{dt}})$で表記してみましょう!!!

実装してみよう

import matplotlib.pyplot as plt
import numpy as np

def dx_dt(y):
    return y

def dy_dt(x,t):
    return -x-(x-t)**3+t+0.1

t=int(input("t: "))

for y in range(-2,3):
    for x in range(-2,3):
        a=np.array([dx_dt(y),dy_dt(x,t)])
        norm=np.linalg.norm(a) #ベクトルの大きさを取得
        e=a/norm               #単位ベクトルを取得
        plt.quiver(x,y,e[0],e[1],angles='xy',scale_units='xy',scale=1)                    #(x,y)で(e[0],e[1])方向にベクトルを描画する準備をする

plt.title("t="+str(t))
plt.xlim([-3,3])
plt.ylim([-3,3])
plt.grid()
plt.draw()
plt.show()

$quiver()を使うと矢印を描画できます。$

実行結果

t=0のとき
t=1のとき

以上で今回は終了となります。

コメント

タイトルとURLをコピーしました