python四阶龙格库塔算法
时间: 2023-09-13 18:07:36 浏览: 184
四阶龙格-库塔算法(RK4)是一种常见的数值求解微分方程的方法,其中包括四个步骤,每个步骤都使用当前状态的导数来计算下一个状态的值。下面是 Python 实现:
```python
def rk4(f, x0, y0, h, n):
"""
使用四阶龙格-库塔算法求解微分方程
:param f: 函数 f(x, y) 的定义
:param x0: 初始值 x0
:param y0: 初始值 y0
:param h: 步长
:param n: 迭代次数
:return: 迭代结果的数组
"""
# 初始化结果数组
result = [y0]
# 迭代 n 次
for i in range(n):
# 计算 k1, k2, k3, k4
k1 = h * f(x0, y0)
k2 = h * f(x0 + h / 2, y0 + k1 / 2)
k3 = h * f(x0 + h / 2, y0 + k2 / 2)
k4 = h * f(x0 + h, y0 + k3)
# 计算下一个状态的值
y1 = y0 + (k1 + 2 * k2 + 2 * k3 + k4) / 6
# 更新 x0, y0
x0 += h
y0 = y1
# 添加到结果数组中
result.append(y1)
# 返回结果数组
return result
```
其中,`f` 是微分方程的函数,`x0` 和 `y0` 是初始值,`h` 是步长,`n` 是迭代次数。该函数返回一个数组,包含了每次迭代的结果。
阅读全文