zhuchang1121 发表于 2007-12-17 22:15

分岔图的生成

我在计算分岔图是输入for i=7000:1000:14000
=ode45(@dafen1,,);
Plot(y(i,1),y(i,2),'r');
end
输出错误为:??? Index exceeds matrix dimensions.
请问大家怎么解决啊?

octopussheng 发表于 2007-12-18 16:10

论坛有很多这方面的程序,请搜索一下!

如果还是不能解决请将源码贴一下吧!

咕噜噜 发表于 2007-12-18 16:16

下标越界,意思就是你的变量没有那么大你取过了
总之就是矩阵和循环不匹配

咕噜噜 发表于 2007-12-18 16:18

另建议这位仁兄以后把你的类似问题都贴在一个帖子里,不要开那么多新贴,以便大家能看到你前面的问题给你更好的回答

[ 本帖最后由 咕噜噜 于 2007-12-18 16:19 编辑 ]

无水1324 发表于 2007-12-19 10:20

回复 #1 zhuchang1121 的帖子

楼主的问题是个很简单的错误,
1、你计算的时间0.5:0.1:20,总共只有151个点。而你在作图的时候i取7000:14000,没有这么多点给你取啊,所以提示的错误就是Index exceeds matrix dimensions
2、做分岔也不是你这样做的,你要看一下论坛的其他帖子,多学习一下别人的方法。

quiet1016 发表于 2007-12-19 13:05

我觉得你应该是想要这样吧?

for i=7000:1000:14000
=ode45(@dafen1,,);
Plot(y(1,:),y(2,:),'r');
hold on
end

无水1324 发表于 2007-12-19 13:24

回复 #6 quiet1016 的帖子

还是错的,所谓分岔就是当参数变化时系统解的性态的改变,那么你这个怎么能够看得出来参数对解形态的影响呢?

所以求解的时候参数就要改变

jinqiankun 发表于 2007-12-19 22:07

回复 #1 zhuchang1121 的帖子

你是在重复的算=ode45(@dafen1,,);
算了7000:1000:14000 次
然后取了最后一次的结果,画图

quiet1016 发表于 2007-12-20 10:54

哦,对哦

楼主要计算的是分岔图

zhuchang1121 发表于 2007-12-20 11:02

谢谢大家

谢谢大家
页: [1]
查看完整版本: 分岔图的生成