hdwzr 发表于 2006-8-22 22:18

Matlab 龙格-库塔法

哪位有用Matlab编制的利用龙格-库塔法求借常微分方程组的程序啊,现急需
请发信箱 zhengren_wu@163.com
谢谢啊

glise 发表于 2006-8-22 23:10

如果要用变步长的龙格库塔法,直接调用matlab函数ode45就行了

如果采用定步长的龙格库塔法,自己到matlab实例赏析版找一下,有人发过

happy 发表于 2006-8-23 15:52

定步长rk法代码:http://forum.vibunion.com/forum/viewthread.php?tid=17615

[ 本帖最后由 eight 于 2007-2-28 10:38 编辑 ]

sunning 发表于 2006-8-29 23:05

如果是高阶的微分方程可以先把方程降阶,比如一个二阶微分方程,将x的一阶导数设成y1,x的二阶导数设成y2,这样就成了一阶微分方程,然后再用ode45或者ode23,ode45是四阶经典龙格库塔法,有自适应步长和定步长两种,可以自己选择,ode23是二阶龙格库塔法,一般我们用ode45解微分方程,因为ode45比ode23计算量少,而且比之精确。
具体ode45如何用,可以在MATLAB里查看帮助。

happy 发表于 2006-8-30 17:30

纠正楼上的几个错误
1. ode45是四阶及五阶龙格-库达法
2. ode45是自适应步长的,不管你怎么设置其迭代过程都是变补偿的,你所说的定步长只不过是定步长输出而已
我已经菜上面的恢复中给出了定步长的函数连接
3. ode23是同时以二阶及三阶龙格-库达法
4. ode45和ode23主要的差别在于精度上,ode45精度比较高一些

toes 发表于 2006-8-30 21:50

顺便问个问题:ode45是四阶及五阶龙格库塔法没错,只是四阶就四阶,五阶就五阶,为什么叫4-5阶呢?是不是在计算过程中,按照微分方程的形式和求解的精度,ode45会自己选择用4阶还是用5阶?或者计算这一个步的时候用4阶下一步判断一下来选择用几阶的公式?
没有仔细看书,可能有些基本概念没搞清楚,望指点。

bainhome 发表于 2006-8-31 02:17

楼上看这儿!
http://www.simwe.com/forum/thread-541373-1-1.html
ode45中的4和5的意义个人认为应该是:区间内四分点做斜率平均(对等TAYLOR公式取至四阶导数),五级代数精度O(h^5)

[ 本帖最后由 eight 于 2007-2-28 10:40 编辑 ]

mxtfirst 发表于 2006-8-31 20:58

嗯,看过介绍,ODE45 是 4阶方法提供候选解,5阶方法控制误差,

嵌入Runge-Kutta法,Runge-Kutta-Fehlberg法

[ 本帖最后由 mxtfirst 于 2006-8-31 21:02 编辑 ]

toes 发表于 2006-8-31 21:19

原帖由 bainhome 于 2006-8-31 02:17 发表
楼上看这儿!
http://www.simwe.com/forum/thread-541373-1-1.html
ode45中的4和5的意义个人认为应该是:区间内四分点做斜率平均(对等TAYLOR公式取至四阶导数),五级代数精度O(h^5)

收到!从大方面讲是清楚了一些。谢谢。

grta 发表于 2006-9-1 08:22

谁有自己写的自适应步长的程序啊
页: [1]
查看完整版本: Matlab 龙格-库塔法