经典龙格-库塔法(四阶龙格-库塔法)求解求一阶常微分方程相应的特解的Python程序

基本原理

经典龙格-库塔法(四阶龙格-库塔法)求解求一阶常微分方程相应的特解的Python程序_第1张图片
经典龙格-库塔法(四阶龙格-库塔法)求解求一阶常微分方程相应的特解的Python程序_第2张图片

例题

经典龙格-库塔法(四阶龙格-库塔法)求解求一阶常微分方程相应的特解的Python程序_第3张图片
经典龙格-库塔法(四阶龙格-库塔法)求解求一阶常微分方程相应的特解的Python程序_第4张图片

代码

#四阶龙格-库塔法
#求一阶常微分方程,相应的特解
#x变量的区间
a = 0
b = 1
#已知条件
X = [0]
Y = [1]
h = 0.2    #设置步长
n = (b-a)/h    #步数
def f(x,y):
    df = y-2*x/y
    return df
#程序运行
for i in range(int(n)):
    x1 = X[i]+h
    X.append(x1)    #x1=x0+h
    k1 = f(X[i], Y[i])
    k2 = f(X[i]+h/2, Y[i]+h/2*k1)
    k3 = f(X[i]+h/2, Y[i]+h/2*k2)
    k4 = f(X[i]+h, Y[i]+h*k3)
    y1 = Y[i] + h/6*(k1+2*k2+2*k3+k4)
    Y.append(y1)
list = []
for i in range(len(X)):
    list.append([X[i],Y[i]])
import pandas as pd
dataframe = pd.DataFrame(list)
print(dataframe)

结果:

     0         1
0  0.0  1.000000
1  0.2  1.183229
2  0.4  1.341667
3  0.6  1.483281
4  0.8  1.612514
5  1.0  1.732142

你可能感兴趣的:(算法,python)