用四阶龙格库塔求解分段函数并画出图像代码
时间: 2023-11-25 19:07:19 浏览: 37
以下是用 Python 实现的四阶龙格库塔求解分段函数并画出图像的代码示例:
```python
import numpy as np
import matplotlib.pyplot as plt
# 定义分段函数
def f(x):
if x < 0:
return -x
elif x < 1:
return x**2
else:
return np.exp(-x)
# 定义四阶龙格库塔方法
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] + 0.5*h, y[i] + 0.5*k1)
k3 = h * f(x[i] + 0.5*h, y[i] + 0.5*k2)
k4 = h * f(x[i] + h, y[i] + k3)
y[i+1] = y[i] + (k1 + 2*k2 + 2*k3 + k4) / 6
x[i+1] = x[i] + h
return x, y
# 定义计算参数
x0 = 0
y0 = 0
h = 0.1
n = 10
# 调用函数计算
x, y = rk4(f, x0, y0, h, n)
# 绘制图像
plt.plot(x, y)
plt.xlabel('x')
plt.ylabel('y')
plt.title('Four-order Runge-Kutta Method')
plt.show()
```
在上面的代码中,我们首先定义了分段函数 `f(x)`,然后定义了四阶龙格库塔方法 `rk4(f, x0, y0, h, n)`,其中 `f` 是被求解的函数,`x0` 和 `y0` 分别是初始条件,`h` 是步长,`n` 是迭代次数。在函数内部,我们按照四阶龙格库塔的公式进行迭代计算,最终得到了函数的解。最后,我们使用 `matplotlib` 库绘制图像,展示了函数的解。