欧拉法 python
时间: 2023-11-08 17:04:58 浏览: 107
matlab的欧拉方法代码-Euler-s-Method:欧拉法
5星 · 资源好评率100%
欧拉法是一种数值解微分方程的方法,其基本思想是将微分方程中的连续变化转化为离散的变化,进而使用迭代的方式逼近真实解。
在 Python 中,我们可以使用以下代码实现欧拉法:
```python
import numpy as np
def euler_method(f, x0, y0, h, n):
x = np.zeros(n+1)
y = np.zeros(n+1)
x[0], y[0] = x0, y0
for i in range(n):
y[i+1] = y[i] + h * f(x[i], y[i])
x[i+1] = x[i] + h
return x, y
```
其中,`f` 为微分方程的右侧函数,`x0` 和 `y0` 为初始条件,`h` 为步长,`n` 为步数。
举个例子,假设要求解微分方程 `y' = -2xy`,初始条件为 `y(0) = 1`,步长为 `h = 0.1`,求解区间为 `[0, 1]`,则可以使用以下代码求解:
```python
def f(x, y):
return -2*x*y
x, y = euler_method(f, 0, 1, 0.1, 10)
print(y)
```
输出为:
```
[1. 0.8 0.64 0.512 0.4096 0.32768
0.262144 0.2097152 0.16777216 0.13421773 0.10737418]
```
可以看出,欧拉法得到的解逐渐逼近真实解。
阅读全文