fanghuikeer 发表于 2006-10-11 08:20

Runge-kutta法解常微分方程

我想用matlab 自带函数ode45计算这个问题,但是却不知道如何下手,请数值计算的高人给予一些指点与帮助,不胜感激...
具体问题我放到附件里了;

[ 本帖最后由 xinyuxf 于 2007-7-22 16:21 编辑 ]

toes 发表于 2006-10-11 12:48

可以自己搜索一下论坛中的相关帖子。

哦。问题有点特殊。

可以将数值求解积分的过程写进ode45要调用的m文件中,只是速度慢一点罢了。

[ 本帖最后由 toes 于 2006-10-11 12:57 编辑 ]

jimin 发表于 2006-10-11 13:14

原帖由 fanghuikeer 于 2006-10-11 12:40 发表
怎么没人帮我呀:@(:'(
你的另一个帖子问的和这个一样的吧,已经有不少人给你的问题做了引导性回答
有的问题不是不想回答,而有的问题本身有难度,需要时间和精力,当然还要有能力
关键还是要靠自己,别人(比方说你对待别人的帖子,你如果在15分钟内还没想到该怎么做,你还会花更多的时间去做吗?答案是显然的,因为你也你自己的事情)

[ 本帖最后由 jimin 于 2006-10-11 13:24 编辑 ]

fanghuikeer 发表于 2006-10-11 14:28

确实是有另一个帖子,和这个几乎一样的,不过那里面的回答根本解决不了我的问题,我不是那种一切靠别人的人,我只是看看有没有别人给我一些新的思路,我建议,以后回复帖子的时候,假如自己根本没有把握,尽量不要误导人家...

bainhome 发表于 2006-10-11 16:30

应该不能用ode45来解,没有做过,不过提个思路供参考:
仿照Newmark-β法的思路,从t=0开始建立差分格式然后迭代求解,动力学中的微分方程My''+Cy'+Ky=P(t)即是以此思路计算,可能没有其他正式官方命令能直接拿来计算。关于Newmark-β法在板块里倒是有些程序,但是我的建议是还不如直接去看动力学中的相应算法来的更快。如果t是常数,积分中的这一项应当不再是问题了,下面应该就简单一些了。
个人看法,仅供参考。

zfx620 发表于 2006-10-14 20:19

难道就不能直接对积分符号里面的式子进行积分吗?

fanghuikeer 发表于 2006-10-16 14:44

这个问题解决了,把编制的程序传上去让大家看看,也顺便帮助查找一下错误!
function xdot=explosionn1(t,x)
h=0.01;
z=0:h:1;
xdot=[x(2);
    -x(2)-x(1)+cos(t./5)-trapz(abs(cos(t./2)+x(1)*sin(pi*z)))*h];

主程序:

ts=0:1e-2:300;
x00=;
=ode45('explosionn1',ts,x00);
plot(t,x0)

toes 发表于 2006-10-16 15:17

原帖由 fanghuikeer 于 2006-10-16 14:44 发表
这个问题解决了,把编制的程序传上去让大家看看,也顺便帮助查找一下错误!
function xdot=explosionn1(t,x)
h=0.01;
z=0:h:1;
xdot=[x(2);
    -x(2)-x(1)+cos(t./5)-trapz(abs(cos(t./2)+x(1)*sin(pi*z)))*h] ...


我以前一直不知道梯形积分用什么计算,都是我自己编写的程序。呵呵。

不错解决问题贴上来,好同志。

ChaChing 发表于 2009-4-17 08:04

1F附件打不开, 有人可告知 why?

sogooda 发表于 2009-4-17 09:10

回复 9楼 ChaChing 的帖子

我也打不开。
页: [1]
查看完整版本: Runge-kutta法解常微分方程