Python 欧拉法求解系统微分方程
#代码有一个错误。它显示:文件“”,第22行 #plt.plot(x[:,0],x[:,1],k--) ^Python 欧拉法求解系统微分方程,python,matplotlib,differential-equations,Python,Matplotlib,Differential Equations,#代码有一个错误。它显示:文件“”,第22行 #plt.plot(x[:,0],x[:,1],k--) ^ #SyntaxError:无效语法它应该是“k-”作为字符串。缩进有错误。有关一个密切相关的问题,请参阅。您有一大堆打字错误,否则代码可以正常工作pltnotptl,“相位图”,“k-”。 # plot diagramm (c) continue #secont exercise (b) import numpy as np import matplotlib.pyplot as plt
#SyntaxError:无效语法它应该是
“k-”
作为字符串。缩进有错误。有关一个密切相关的问题,请参阅。您有一大堆打字错误,否则代码可以正常工作plt
notptl
,“相位图”
,“k-”
。
# plot diagramm (c) continue
#secont exercise (b)
import numpy as np
import matplotlib.pyplot as plt
plt.style.use('seaborn-poster')
%matplotlib inline
def euler (f , x0 , t0,tmax ,dt):
t = np.arange(t0,tmax,dt)
x = np.zeros((len(t),len(x0)))
x[0,:] = x0
for n in range(len(t)-1):
x[n+1,:] = x[n,:] + dt*f(t[n], x[n,:])
return t, x
f = lambda t, x: np.array([1.1*x[0]-0.4*x[0]*x[1],0.4*x[0]*x[1]-0.1*x[1]])
x0 = [20,1]
t0 = 0
tmax = 200
dt = 0.01
t,x = euler(f,x0,t0,tmax,dt)
plt.figure(figsize = (12, 8))
plt.plot(x[:, 0], x[:, 1], k--)
plt.grid()
ptl.title(Phase Plot)
ptl.xlabel('rabbits')
ptl.set_ylabel('foxes')
plt.show()