python 实现四阶龙格库塔法
Posted 刘文巾
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 实现四阶龙格库塔法相关的知识,希望对你有一定的参考价值。
龙格库塔法的理论部分见:龙格库塔法_刘文巾的博客-CSDN博客
1 定义常微分方程
def f(x,y):
a=x+2*y
return a
def g(x,y):
a=3*x+2*y
return a
2 四阶龙格库塔法实现
x_array=[]
y_array=[]
a_array=[]
def RK4():
h=0.02
a=0
x=6
y=4
while(a<=0.2):
a_array.append(a)
x_array.append(x)
y_array.append(y)
a+=h
#计算K1
f1=f(x,y)
g1=g(x,y)
#计算K2
m1=x+h/2
n1=y+g1*h/2
f2=f(m1,n1)
g2=g(m1,n1)
#计算K3
m2=x+h/2
n2=y+g2*h/2
f3=f(m2,n2)
g3=f(m2,n2)
#计算K4
m3=x+h
n3=y+g2*h
f4=f(m3,n3)
g4=g(m3,n3)
x=x+(f1+2*f2+2*f3+f4)*h/6
y=y+(g1+2*g2+2*g3+g4)*h/6
3 实验结果可视化
RK4()
import matplotlib.pyplot as plt
plt.plot(x_array)
plt.plot(y_array)
plt.legend('fg')
以上是关于python 实现四阶龙格库塔法的主要内容,如果未能解决你的问题,请参考以下文章
用MATLAB按二阶龙格库塔法求解微分方程组,大神速来,急急急
四阶龙格库塔(Runge-Kutta)求解微分方程-多种编程语言