# 用四阶经典龙格-库塔方法解决问题
import numpy as np
def f(x, y): # 原题目
return x + y
def RK(x_0, y_0, h): # 构造R-K公式
yn = y_0
x = x_0
for n in range(1, 11):
k1 = f(x, yn)
k2 = x + h / 2 + yn + (h / 2) * k1
k3 = x + h / 2 + yn + (h / 2) * k2
k4 = x + h + yn + h * k3
y = yn + (h / 6) * (k1 + 2 * k2 + 2 * k3 + k4)
x = x + h
yn = y
print('迭代次数:', "{0:.0f}".format(n),
'迭代后x值:', "{0:.6f}".format(x),
'迭代后y值:', "{0:.6f}".format(y),
k1,)
x_0 = 0
y_0 = 1
h = 0.2
RK(x_0, y_0, h)
用pyhon使用数值分析中的四阶经典龙格-库塔方法