用四阶龙格库塔求解分段函数代码
时间: 2023-11-25 16:07:20 浏览: 51
以下是使用四阶龙格库塔法求解分段函数的 Python 代码示例:
```python
import numpy as np
# 定义分段函数
def f(x):
if x < 1:
return 2 * x
else:
return x ** 2 - 1
# 定义四阶龙格库塔法
def RK4(f, x0, y0, h, n):
x = np.zeros(n+1)
y = np.zeros(n+1)
x[0] = x0
y[0] = y0
for i in range(n):
k1 = h * f(x[i], y[i])
k2 = h * f(x[i] + h/2, y[i] + k1/2)
k3 = h * f(x[i] + h/2, y[i] + k2/2)
k4 = h * f(x[i] + h, y[i] + k3)
y[i+1] = y[i] + 1/6 * (k1 + 2*k2 + 2*k3 + k4)
x[i+1] = x[i] + h
return x, y
# 测试函数
x, y = RK4(f, 0, 0, 0.1, 10)
print(x)
print(y)
```
在这个示例中,我们定义了一个分段函数 `f(x)`,它根据 $x$ 的值返回不同的函数值。然后我们使用了四阶龙格库塔法 `RK4` 进行求解,其中 `x0` 和 `y0` 分别为初始值,`h` 为步长,`n` 为迭代次数。最后我们测试了该函数,输出了结果。