常微分方程初值问题数值解例题代码多点的
时间: 2023-06-28 21:12:33 浏览: 137
数值求解常微分方程,数值求解常微分方程初值问题,matlab
5星 · 资源好评率100%
以下是一个求解常微分方程初值问题的数值解的例题代码:
```python
import numpy as np
import matplotlib.pyplot as plt
def f(t, y):
return t*y + t**3
def euler(f, y0, t0, tn, h):
n = int((tn - t0)/h) + 1
t = np.linspace(t0, tn, n)
y = np.zeros(n)
y[0] = y0
for i in range(1, n):
y[i] = y[i-1] + h*f(t[i-1], y[i-1])
return t, y
y0 = 1
t0 = 0
tn = 1
h = 0.1
t, y = euler(f, y0, t0, tn, h)
plt.plot(t, y)
plt.xlabel('t')
plt.ylabel('y')
plt.title('Euler Method')
plt.show()
```
这段代码使用了欧拉方法求解常微分方程 $y' = ty + t^3$ 初值问题 $y(0) = 1$,时间从 $t=0$ 到 $t=1$,步长为 $h=0.1$。结果使用 matplotlib 绘制成图像。
阅读全文