声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1755|回复: 8

[编程技巧] 求助龙格库塔解两元一阶微分方程组

[复制链接]
发表于 2006-3-17 13:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
求助:请问哪位兄台用过龙格库塔解两元一阶微分方程组,请提供算法程序,我做了好多次解都是1,谢谢
回复
分享到:

使用道具 举报

发表于 2006-3-17 15:31 | 显示全部楼层
ode45的算法就是45阶Runge-kutta法
直接调用函数解就好了
 楼主| 发表于 2006-3-18 11:12 | 显示全部楼层
<P>可我试过好多次都不能得出解,请详细说明,谢谢</P>
发表于 2006-3-18 11:19 | 显示全部楼层

回复:(pablo_001)求助龙格库塔解两元一阶微分方程组...

把程序贴出来大家帮你看看,重新写一个太麻烦了
发表于 2006-3-18 11:22 | 显示全部楼层
(1)确认你的方程不是刚性方程,否则没法用explicit Runge-Kutta法求解
可以用implicit Runge-Kutta,gear等等方法求解。
(2)请找一本matlab的书,将用ode45求解常微分的例子自己作一遍,
再做你自己的方程求解。

应该没有什么问题的
 楼主| 发表于 2006-3-19 13:19 | 显示全部楼层

程序

function xdot=kaihuan(t,x,flag,A,B,C,D,E,F,w)

xdot=[A*x(1)+B*x(2)+E*w;C*x(1)+D*x(2)+F*w];

t_final=100;

x0=[0;0];

A=-1.2521;

B=9.1980;

C=-0.9801;

D=-1.2425;

E=16.0199;

F=0.0828;

w=30;

[t,x]=ode45('kaihuan',[0,t_final],x0,[],A,B,C,D,E,F);

plot(t,x),

figure;%打开新图形窗口

plot2(x(:,1),x(:,2));

??? Strings passed to EVAL cannot contain function declarations.



请各位高手提供修改建议,谢谢!
 楼主| 发表于 2006-3-19 13:21 | 显示全部楼层

请问如何验证是刚性方程?谢谢

刚性方程如何严验证?谢谢
发表于 2006-3-19 14:28 | 显示全部楼层

回复:(pablo_001)程序

function xdot=kaihuan(t,x,flag,A,B,C,D,E,F,w)

xdot=[A*x(1)+B*x(2)+E*w;C*x(1)+D*x(2)+F*w];

t_final=100;

x0=[0;0];

A=-1.2521;

B=9.1980;

C=-0.9801;

D=-1.2425;

E=16.0199;

F=0.0828;

w=30;

[t,x]=ode45('kaihuan',[0,t_final],x0,[],A,B,C,D,E,F,w);



plot(t,x),

figure;%打开新图形窗口

plot(x(:,1),x(:,2));
 楼主| 发表于 2006-3-21 12:50 | 显示全部楼层

谢谢

谢谢指教!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-26 05:13 , Processed in 0.051974 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表