查看: 250|回复: 4|关注: 0

[已答复] ode45算法求解一阶微分方程组,遇到问题

[复制链接]

新手

30 麦片

财富积分


050


2

主题

5

帖子

0

最佳答案
发表于 2020-7-5 14:59:38 | 显示全部楼层 |阅读模式
请各位大神指教。我在使用ode45算法,求解一个y关于t求导的一阶微分方程组,但是在这个方程组的右边,除了含有y之外,还含有x,而且x是另外的一个一阶微分方程组的解。我尝试过把利用ode45算法,解出x,当做参数一样传递过去,但是发现,还是不行(报错了,不知道什么问题)。如果,有大佬遇到类似的问题,并解决了,请帮帮我这个小白,非常感谢各位大佬。
回复主题 已获打赏: 0 积分

举报

论坛优秀回答者

中级

1217 麦片

财富积分


5001500


0

主题

2796

帖子

260

最佳答案
  • 关注者: 172
发表于 2020-7-5 22:20:11 | 显示全部楼层
问问题具体些啊,否则谁知道问题症结。
回复此楼 已获打赏: 0 积分

举报

新手

30 麦片

财富积分


050


2

主题

5

帖子

0

最佳答案
 楼主| 发表于 2020-7-5 22:56:55 | 显示全部楼层
shihe 发表于 2020-7-5 22:20
问问题具体些啊,否则谁知道问题症结。

不好意思,我这个求助帖没弄好。
具体请看添加的附件和以下文字说明,谢谢。
这个pdf里面有个期刊论文,对于第一个数值模拟中的数据,我需要仿真出期刊论文中的图。我使用的ode45算法,对于关于x的状态方程,比较容易仿真出来(因为该方程的右边只含有x的状态变量),可以比较容易的求出x1,x2,x3三个状态随时间变化的图(得出方程的数值解)。但是对于第二个方程(y对时间求导),等号右边中会包含对x1,x2,x3这三个状态,所以在利用ODE45算法,解出这个方程的解(y1,y2,y3)时,就会用到第一个微分方程中每个时刻的解(x1,x2,x3)。
于是我的想法是,把对应时刻的解(x1,x2,x3)当作参数传递给第二个微分方程,那么就可以依次求出,两个微分方程在同一时刻(例如:t=0.t=0.01,t=0.02......t=10)的解(x1,x2,x3) (y1,y2,y3)。最后就可以比较容易的根据关系,画出在同一时刻的误差图像,以及同一时刻(x1,y1),(x2,y2),(x3,y3)随时间变化的图像。
我之前提问“如何使用ode45算法来求解一个一阶微分方程组,但是该微分方程组中又含有另外的一个一阶微分方程组的变量,该如何做”,这次我就把这个意思给具体说了下,想表达的意思也在上面。然后,我觉得这个难点,就两个。第一:y对时间t求导的微分方程,等号右边含有x   第二:根据在某个时刻的x(x1,x2,x3),带入第二个微分方程,来充当参数,来解出在同样的时刻的y(y1,y2,y3)的值。然后,再作出在同一时刻的(x1,x2,x3),(y1,y2,y3)随时间变化的图像(一定要注意是在同一时刻的,不然没有研究的意义)
附件中包含,我今天想到的一种方法,但是仿真的结果和那个期刊论文的不一样,我觉的我的程序应该没问题。请大佬赐教,谢谢。如果大佬,有知道,我的程序错在哪的,麻烦告知下。或者,大佬想到其他的利用ode45解决这个问题的办法,麻烦告知下,感激不尽,谢谢。

matlab编程.zip

2.47 KB, 下载次数: 5

程序

非线性系统广义同步.pdf

719.06 KB, 下载次数: 7

pdf

回复此楼 已获打赏: 0 积分

举报

论坛优秀回答者

中级

1217 麦片

财富积分


5001500


0

主题

2796

帖子

260

最佳答案
  • 关注者: 172
发表于 2020-7-6 08:35:07 | 显示全部楼层
不是很懂问题背景。看能不能把x1,x2,x3和y1,y2,y3合并成一个微分方程组同时求解,这样就不存在你描述遇到的问题了。
回复此楼 已获打赏: 0 积分

举报

新手

30 麦片

财富积分


050


2

主题

5

帖子

0

最佳答案
 楼主| 发表于 2020-7-6 18:00:00 | 显示全部楼层
shihe 发表于 2020-7-6 08:35
不是很懂问题背景。看能不能把x1,x2,x3和y1,y2,y3合并成一个微分方程组同时求解,这样就不存在你描述遇到的 ...

按照你的做法,可以了。我自己想的,感觉太蠢了。非常感谢
回复此楼 已获打赏: 0 积分

举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

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