请高手帮忙看看我的程序有什么问题,谢谢!
我想用定义法,画一个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 编辑 ]
回复 楼主 yina_111 的帖子
for q=0.4:0.01:1.4这一句是不是有问题? matlab 提示说
是eig有问题
那个循环是对参数取得
应该没有问题 请各位大侠,高人,指点一下,我这个程序哪个地方有问题,我现在急用这个程序,谢谢了! 显示J这个矩阵是无穷大的数值,所以eig无法运算
回复 楼主 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了
建议检查楼主的循环内的式子是否合理!
回复 5楼 咕噜噜 的帖子
运行的时候,提示说eig 有问题,但是我不知道怎么改,请指教回复 6楼 ChaChing 的帖子
我就是想用定义做一下最大的LE指数与参数之间的关系,我看了很久,没看出来有什么问题,请指教。回复 8楼 yina_111 的帖子
不好意思, 你这块我完全门外汉我仅是使用debug去侦错, 程序具体意义我不懂, 没法帮你 不好意思,帮不了你啊
http://p8.images22.51img1.com/6000/qwb654/852fad10dd443bb0292fff0ca514f90d.gif
皇道金丹
欲望三国之独战天下
离散系统的LE指数定义为
离散系统的LE指数定义为 我想做的是最大LE指数与参数之间的关系请大侠,高人指点一下,我的程序应该怎么改
谢谢!
回复 楼主 yina_111 的帖子
应该是矩阵奇异了,我在看看调试一下先回复 13楼 无水1324 的帖子
谢谢,无水![ 本帖最后由 无水1324 于 2008-11-6 22:09 编辑 ] 还在进行中!