龙格 | 您所在的位置:网站首页 › 四级杆组例子 › 龙格 |
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 实验室设备网 版权所有 |