龙格 您所在的位置:网站首页 四级杆组例子 龙格

龙格

2023-10-19 01:39| 来源: 网络整理| 查看: 265

1 龙格-库塔方法的学习与理解

        在看关于机动飞行的论文里,采用了四步龙格-库塔方法进行微分方程组的求解,所以我学习了龙格-库塔方法相关内容,并整理记录如下。

1.1 什么是龙格库塔方法

        龙格-库塔法是数值求解微分方程的一个工具,最经典的是四阶龙格-库塔法,即式(2)。关于常微分方程的基础知识参见: https://zhuanlan.zhihu.com/p/38573924  ,对一般微分方程有:                                        

    

公式(1)

        设x的范围为,将其离散为n段,令在其中步进,定义步长。是当时对应的y值,于是通过一系列的推导可以得到下一步的y值如公式(2),具体推导过程见下方链接:

https://www.bilibili.com/video/BV1YJ411x7S1(27分30秒附近)

  

公式(2)

其中,

1.2 怎样运用龙格-库塔方法

        下面以一个例子进行说明,参考来源:https://www.bilibili.com/video/BV1YJ411x7S1  (在34分00秒附近)利用四步龙格-库塔法求下面微分方程(式3)的近似解:

公式(3)

                                                              

公式(4)

        该微分方程有解析表达式,通过下面知乎链接方法中的第7条:伯努利方程形式,可以求得解析表达式为式(4),可得精确解如图(a)。另外基于龙格-库塔方法采用python 编程,计算如图(b),通过对比发现,龙格库塔方法的精度高,与精确解差距不大。

https://zhuanlan.zhihu.com/p/56466991?utm_source=qq&utm_medium=social&utm_oi=1342275633892904960

(a)精确解                 (b)四步龙格-库塔的数值解(c)解析解与数值解的对比图

图 3 解析解与数值解的对比

1.3 附求解该例子的python源码

##################################井号以内为源码

import matplotlib.pyplot as plt

import math

def f_function(x,y):     #完成对微分方程的表达

    y_pie=0.0

    #y_pie=math.cos(x)   #对于不同的微分方程,这里采用不同的表达式

    y_pie=y-2.0*x/y

    return y_pie

 

def f_accurate(x):

    y_accu=math.sqrt(2.0*x+1)#计算精确解

    return y_accu

 

#存储各步进状态时的值

xlist=[]

ylist=[]

 

#存储解析解的值

y_accurate_list=[]

 

#赋初值

x=0.0

y=1.0

h=0.1

 

#对x范围内步进

while x



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有