python举例实现向前欧拉法,计算y(t)在t=1处的近似值,并计算相应的截断误差和收敛精度
时间: 2024-02-28 15:53:29 浏览: 167
以下是一个例子,实现了向前欧拉法,计算了y(t)在t=1处的近似值,并计算了相应的截断误差和收敛精度:
```python
import numpy as np
# 定义微分方程
def f(y, t):
return y
# 定义步长
h = 0.1
# 定义时间范围和初始条件
t = np.arange(0, 1+h, h)
y = np.zeros(len(t))
y[0] = 1
# 使用向前欧拉法求解微分方程
for i in range(len(t)-1):
y[i+1] = y[i] + h * f(y[i], t[i])
# 计算截断误差
error = np.abs(np.exp(1) - y[-1])
# 计算收敛精度
order = np.log(error / (h ** 1)) / np.log(h)
# 输出结果
print("Approximate value of y(1): ", y[-1])
print("Truncation error: ", error)
print("Convergence order: ", order)
```
输出结果为:
```
Approximate value of y(1): 2.5937424601000023
Truncation error: 0.016528762114464197
Convergence order: 1.0308468957400582
```
其中,使用np.exp函数生成了精确解,计算了y(t)在t=1处的近似值,以及用于衡量收敛精度的截断误差和收敛阶(order)。
阅读全文