请教:什么是变阶runge kutta方法?
求解duffing方程的Lyapunov指数的RHR计算方法中提到需要采用变阶runge kutta方法,请问高人什么是变阶runge kutta方法?还有就是如下形式的方程,如何求解?
其中J11,J12,J21,J22不全是常数,有一个是变化的。
万分感谢~
回复 1 # ranling 的帖子
龙格库塔法是求解常微分方程的一种常用数值解法,“变步长”就是指求解积分时步长是自适应的 本帖最后由 gghhjj 于 2011-3-15 15:51 编辑
关于变阶Runge-Kutta法这个提法好像有点问题
要嘛应该是二楼所说的变步长Runge-Kutta法
要嘛应该是嵌入式Runge-Kutta法
变步长Runge-Kutta法我想大家应该很清楚
这里简单说说嵌入式Runge-Kutta法
这里涉及到Runge-Kutta发的阶次问题
关于Runge-Kutta法的阶次问题我想大家都应该比较清楚
如果不清楚的话可以找任意一本数值分析的书看一看
我们自己编程的时候往往采用四阶或二阶Runge-Kutta法,
而很多通用软件中往往采用嵌入式runge-kutta法
比如matlab中的ode45就是用4阶方法提供候选解,5阶方法控制误差
关于这种嵌入式runge-kutta法的具体原理可以参考下面的文章:
Dormand, J. R. and P. J. Prince, "A family of embedded Runge-Kutta formulae," J. Comp. Appl. Math., Vol. 6, 1980, pp 19-26.
之所以采用这种方式其主要目的是对局部截断误差进行估计,进而控制求解进程和误差
当然这往往是以牺牲计算效率为代价的 回复 3 # gghhjj 的帖子
首先谢谢您的回答,我还想问一下:能否使用C语言实现你说的嵌入式runge kutta法?1楼的方程若J11,J12,J21,J22全是常数,可以用runge kutta法求解,但是现在有一个不是常数,你知不知道求解方法?再次感谢! 回复 3 # gghhjj 的帖子
感谢您的回答,不知您对1楼的方程的求解有何见解?谢谢 ranling 发表于 2011-3-15 16:22 static/image/common/back.gif
回复 3 # gghhjj 的帖子
首先谢谢您的回答,我还想问一下:能否使用C语言实现你说的嵌入式runge kutta法? ...
C语言实现是没有问题的,不过如果是自己编程可能就会比较麻烦
印象中IMSL库中就有这样的函数,你可以找找找!
常系数和变系数区别不大,matlab的话都可以才ode45实现
帮助文件中第三个例子就是针对变系数的情况
自己编程的话对这个问题应该也没有太大的难度,变系数问题主要是在函数间增加一个变量的传递 回复 6 # gghhjj 的帖子
哦 真是十分感谢啊 我研究下 有问题再请教您啊{:{02}:} 回复 6 # gghhjj 的帖子
您说的IMSL库下不到啊,老师,您现在有这个库吗?下载一直没速度。我的QQ是357809978。 gghhjj 发表于 2011-3-15 15:49 static/image/common/back.gif
关于变阶Runge-Kutta法这个提法好像有点问题
要嘛应该是二楼所说的变步长Runge-Kutta法
要嘛应该是嵌入式 ...
呵呵,真是详细,顺便温习下吧!
页:
[1]