声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1176|回复: 5

[综合讨论] 请教个用循环调用ode函数解带变量的微分方程的问题

[复制链接]
发表于 2008-3-19 02:21 | 显示全部楼层 |阅读模式

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

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

x
问题是这样,用ode45解下面图片中这样一个微分方程组
方程组中的k从1变化到1000,就是要循环调用1000次ode函数算一千遍这样的方程组,每次方程组中的k的值都不一样
原来调用ode都是将原方程组先编写为m文件再用ode调用即可
现在这种情况我不知道程序该怎么写,知道的朋友帮个忙想想办法吧,万分感谢!!!
未命名.JPG
回复
分享到:

使用道具 举报

发表于 2008-3-19 09:15 | 显示全部楼层

回复 楼主 的帖子

最外面加个循环不可以吗
 楼主| 发表于 2008-3-19 12:22 | 显示全部楼层
不知道怎么加循环量k啊
原来调用都是直接[t,x]=ode45('shg',[0,1],x0); 其中shg就是方程组的m文件名
现在方程组中有个k需要不断变化,调用ode的时候该怎么写呢?
发表于 2008-3-19 12:27 | 显示全部楼层
我记得好像有人回答过这个问题:[t,x]=ode45('shg',[0,1],x0,k); 并且shg定义时写成dydt=shg(t,y,flag,k).我写没试过,你试试看。希望对你有帮助
发表于 2008-3-19 14:51 | 显示全部楼层
原帖由 梅梅 于 2008-3-19 12:27 发表
我记得好像有人回答过这个问题:[t,x]=ode45('shg',[0,1],x0,k); 并且shg定义时写成dydt=shg(t,y,flag,k).我写没试过,你试试看。希望对你有帮助

差不多是这样,不过我记得应该是
[t,x]=ode45('shg',[0,1],x0,[],k);

定义shg同意4楼的。
 楼主| 发表于 2008-3-19 21:41 | 显示全部楼层
楼上朋友是对的,问题已经解决,非常感谢!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-18 08:53 , Processed in 0.060636 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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