如有不对,请批评指正!
1. 显式Euler和隐式Euler
2. 改进的Euler
3. 龙格-库塔(Runge-Kutta)
4. 举个栗子
代码仅为了说明计算过程,并未进行优化!
import math
import matplotlib.pyplot as plt
y_e = [] # 显式
y_i = [] # 隐式
y_pro = [] # 改进
y_p = [] # 改进
y_rk = [] # 龙格-库塔
y_c = [] # 解析解
x = []
h = 0.1 # 步长
num = 20
def fun(x0, y0):
return -2 * x0 / y0 + y0
def Euler():
print('{:>3s}{:>8s}{:>9s}{:>12s}{:>9s}{:>9s}'.format('x', 'y_e', 'y_i', 'y_pro', 'y_rk', 'y_c'))
for i in range(num):
# 显示Euler
y_e