使用相关参数求解和绘制ODE

时间:2018-04-28 00:36:51

标签: python matplotlib scipy ode scientific-computing

我正在处理一些代码,其中我有以下方程组here。问题在于,我非常希望求解k的多个值,并且对于每个k值具有相平面/箭头图。有人可以帮帮我吗?这是我到目前为止解决的问题:

import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import odeint

def model(X, t):
    x = X[0]
    y = X[1]
    dxdt = k*x - y
    dydt = x + y
    return [dxdt, dydt]
#Initial state 
X0 = [1,1]

#Time
t = np.linspace(0,10)

X = odeint(model, X0, t)

这就是我到目前为止绘制的内容:

x = X[:,0]
y = X[:,1]

plt.plot(x,y)

请注意,我不是要简单地解决系统问题!我尝试用多个值改变(k)并绘制结果方程来解决它。

2 个答案:

答案 0 :(得分:1)

通过更多的计算工作,您可以使用

resources

获取

enter image description here

答案 1 :(得分:0)

您必须迭代k,并将该值作为附加参数传递:

import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import odeint

def model(X, t, k):
    x = X[0]
    y = X[1]
    dxdt = k*x - y
    dydt = x + y
    return [dxdt, dydt]
#Initial state 
X0 = [1,1]

#Time
t = np.linspace(0,10)
Ks = np.linspace(-1, 1, 10)

for kix in Ks:
    X = odeint(model, X0, t, args=(kix,))
    x = X[:,0]
    y = X[:,1]
    plt.plot(x,y)
plt.show()

enter image description here