- python代码
import numpy as np
import matplotlib.pyplot as plt
DT = np.array(input("份数:").split(' '))
y0 = int(input("函数起点:"))
def f(y):
return np.exp(-y)
def Runge_Kutta(t, y0):
n = len(t)
y = np.zeros(n)
y[0] = y0
for i in range(0, n-1):
h = t[i+1] - t[i]
k1 = f(y[i])
k2 = f(y[i] + h/2*k1)
k3 = f(y[i] + h/2*k2)
k4 = f(y[i] + h*k3)
y[i+1] = y[i] + h/6 * (k1 + 2*k2 + 2*k3 + k4)
return y
for dt in DT:
dt = int(dt)
t = np.linspace(0, 10, dt)
y = Runge_Kutta(t, 0)
plt.plot(t, y)
plt.show()
- 测试结果