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龙格库塔法解微分方程

matlab练习程序(龙格库塔法)

用MATLAB按二阶龙格库塔法求解微分方程组,大神速来,急急急

四阶龙格库塔(Runge-Kutta)求解微分方程-多种编程语言

MATLAB常微分方程数值解——欧拉法改进的欧拉法与四阶龙格库塔方法

龙格库塔法