yina_111 发表于 2008-11-3 17:04

请高手帮忙看看我的程序有什么问题,谢谢!

我想用定义法,画一个2维的离散系统的随参数变化的最大LE指数图,下面是我编的程序
可是出现了问题,
提示说

NaN or Inf prevents convergence.
Error in ==> Fjcly1 at 18
      z=log(abs(max(eig(J))))

我实在是不会改了,请各位高手指点一下,非常感谢!

Le=zeros(401,2);
i=0;
for q=0.4:0.01:1.4
    i=i+1;
    x=0.83;y=0.55;
    z=0;w=0;
    for j=1:100
      x=x+q*(2*x*(1-x)-0.6*x*y);
      y=y+q*(-0.5+0.6*x*y);
    end
    for k=1:200
      x=x+q*(2*x*(1-x)-0.6*x*y);
      y=y+q*(-0.5+0.6*x*y);
      J=[1+q*(2-4*x)-0.6*y q*0.6*x;
          q*0.6*y1+q*(2-4*x)-0.6*y];
      g=J;
      J=J*g;
      z=log(abs(max(eig(J))));
    end
    Le(i,1)=q;
    Le(i,2)=z/200;
end
plot(Le(:,1),Le(:,2));
hold on;
n=0.43:0.0001:0.47;
plot(n,0,'k');
xlabel('q');
ylabel('Le');

[ 本帖最后由 yina_111 于 2008-11-3 17:50 编辑 ]

ch_j1985 发表于 2008-11-3 18:26

回复 楼主 yina_111 的帖子

for q=0.4:0.01:1.4
这一句是不是有问题?

yina_111 发表于 2008-11-4 08:42

matlab 提示说

是eig有问题

那个循环是对参数取得

应该没有问题

yina_111 发表于 2008-11-4 16:58

请各位大侠,高人,指点一下,我这个程序哪个地方有问题,我现在急用这个程序,谢谢了!

咕噜噜 发表于 2008-11-4 18:40

显示J这个矩阵是无穷大的数值,所以eig无法运算

ChaChing 发表于 2008-11-4 19:48

回复 楼主 yina_111 的帖子

for j=1:100, x=x+q*(2*x*(1-x)-0.6*x*y);y=y+q*(-0.5+0.6*x*y); , end
这一步骤执行至j=21时, y的值已经小於realmin了
建议检查楼主的循环内的式子是否合理!

yina_111 发表于 2008-11-5 07:35

回复 5楼 咕噜噜 的帖子

运行的时候,提示说eig 有问题,但是我不知道怎么改,请指教

yina_111 发表于 2008-11-5 07:37

回复 6楼 ChaChing 的帖子

我就是想用定义做一下最大的LE指数与参数之间的关系,我看了很久,没看出来有什么问题,请指教。

ChaChing 发表于 2008-11-5 09:14

回复 8楼 yina_111 的帖子

不好意思, 你这块我完全门外汉
我仅是使用debug去侦错, 程序具体意义我不懂, 没法帮你

LFU0795 发表于 2008-11-5 09:36

不好意思,帮不了你啊












































http://p8.images22.51img1.com/6000/qwb654/852fad10dd443bb0292fff0ca514f90d.gif
皇道金丹
欲望三国之独战天下

yina_111 发表于 2008-11-5 16:00

离散系统的LE指数定义为

离散系统的LE指数定义为

yina_111 发表于 2008-11-5 18:33

我想做的是最大LE指数与参数之间的关系
请大侠,高人指点一下,我的程序应该怎么改
谢谢!

无水1324 发表于 2008-11-5 20:10

回复 楼主 yina_111 的帖子

应该是矩阵奇异了,我在看看调试一下先

yina_111 发表于 2008-11-6 08:01

回复 13楼 无水1324 的帖子

谢谢,无水!

[ 本帖最后由 无水1324 于 2008-11-6 22:09 编辑 ]

无水1324 发表于 2008-11-6 22:09

还在进行中!
页: [1] 2 3
查看完整版本: 请高手帮忙看看我的程序有什么问题,谢谢!