我寫了一段代碼來在 Python 上使用四階 Runge-Kutta 求解 Lotka-Volterra 方程,但由于某種原因它不起作用,解決方案是完全錯誤的。老實說,我不明白我做錯了什么。import numpyfrom pylab import plot, showdef rk(f, x, h): f_1 = f(x) f_2 = f(x+1./2*h*f_1) f_3 = f(x+1./2*h*f_2) f_4 = f(x+h*f_3) return x+1./6*h*(f_1+2*f_2+2*f_3+f_4)def lv(x): alpha = 1. return numpy.array([alpha*x[0]-x[0]*x[1], x[0]*x[1]-x[1]], float)a = 0.b = 10.m = 100T = numpy.linspace(a, b, m)H = (b-a)/mX = numpy.zeros((m, 2))X[0, :] = [1., 30.]for i in range(1, m): X[i, :] = rk(lv, X[i-1, :], H)plot(T, X)show()非常感謝您的幫助。
Lotka-Volterra 方程:錯誤解
幕布斯6054654
2021-08-05 17:47:45