mumianhua
发表于 2014-7-1 21:09
wystar 发表于 2014-7-1 19:13
我现在调整了步长和求解时间,结果是下面的两幅图,结果对吗?
为什么当求解时间增大的时候,Lyapunov指 ...
首先建议你最好把带有时间的非自治系统转变为自治系统,也就是在方程中令t=z,方程中的所有t都用你的函数替代,全部转化,LE指数,中会有时间t全部就成为零了,你 试试看 估计这样就可以解决你试试看完了贴图把 我看看
mumianhua
发表于 2014-7-1 21:09
wystar 发表于 2014-7-1 19:13
我现在调整了步长和求解时间,结果是下面的两幅图,结果对吗?
为什么当求解时间增大的时候,Lyapunov指 ...
非自治-改-自治
mumianhua
发表于 2014-7-1 21:09
wystar 发表于 2014-7-1 18:35
是不是由于我没有将它变为自治系统的原因而导致求解结果无穷大。
对应该就是这样你先试试看
mumianhua
发表于 2014-7-1 21:11
wystar 发表于 2014-7-1 18:32
雅克比是在matlab中直接调用的,求解还有问题。然后我将求解器改为ode45,求解时间设为50s,只是取几个 ...
出现NAN,之前我也有出现这种情况,说明有两方面的问题:(1)在计算Jac时,计算有误,你可以在检查一下;(2)把非自治系统改为自治系统;
wystar
发表于 2014-7-2 09:01
建议你最好把带有时间的非自治系统转变为自治系统,也就是在方程中令t=z,方程中的所有t都用你的函数替代,
还是不太懂怎么把非自治系统转变为自治系统,是需要再增加一个状态变量Z吗?
我试过再增加一个状态变量Z,它的一阶微分为1,然后再求雅克比的时候第五行全部为0了。
mumianhua
发表于 2014-7-2 10:00
wystar 发表于 2014-7-2 09:01
还是不太懂怎么把非自治系统转变为自治系统,是需要再增加一个状态变量Z吗?
我试过再增加一个状态变量Z ...
对啊就是把t变成状态变量z,在计算Jac时候就全部为零,相应的LE也为0
wystar
发表于 2014-7-2 10:06
对啊就是把t变成状态变量z,在计算Jac时候就全部为零,相应的LE也为0
奇怪啊,计算的结果现在是全部为无穷大了,我再看下到底哪个地方出问题了。
wystar
发表于 2014-7-2 11:03
对啊就是把t变成状态变量z,在计算Jac时候就全部为零,相应的LE也为0
=lyapunov(5,@lorenz_ext,@ode45,0,0.001,1,,10);
我不清楚Z的初值怎么选择,直接定为0吗?
mumianhua
发表于 2014-7-2 11:04
wystar 发表于 2014-7-2 11:03
我不清楚Z的初值怎么选择,直接定为0吗?
恩 没问题就是0
wystar
发表于 2014-7-2 11:08
发表于 2014-7-2 11:04
theta1=n*pi*X(5);
f(5)=1;
Jac=[0, 1, 0, 0,0;
J21,J22,J23,J24,0;
0 , 0, 0, 1,0;
J41,J42,J43,J44,0
0, 0,0, 0, 0];
然后就更改了这几个地方了,这样改的对吗?
mumianhua
发表于 2014-7-2 15:03
wystar 发表于 2014-7-2 11:08
然后就更改了这几个地方了,这样改的对吗?
把你更改的添加的那一部分贴上来 我看看
wystar
发表于 2014-7-2 15:23
把你更改的添加的那一部分贴上来 我看看
=lyapunov(5,@lorenz_ext,@ode45,0,0.05,5,,5);
theta1=n*pi*X(5);
Y= [X(6), X(11),X(16) , X(21),X(26);
X(7), X(12),X(17) ,X(22), X(27);
X(8), X(13), X(18),X(23), X(28);
X(9), X(14),X(19),X(24),X(29);
X(10),X(15),X(20),X(25),X(30)];
f=zeros(30,1);
f(5)=1;
wystar
发表于 2014-7-2 15:26
Jac=[0, 1, 0, 0,0;
J21,J22,J23,J24,0;
0 , 0, 0, 1,0;
J41,J42,J43,J44,0
0, 0,0, 0, 0]; f(6:30)=Jac*Y;
雅克比采用的是直接调用的,太长了放不下,形式是这样的。
wystar
发表于 2014-7-2 16:40
t=0.1500 316.73250697.809761 -80.221239 -258.564663 0.000000
t=0.3000 272.656306 121.384029 -95.828574 -170.696779 0.000000
t=0.4500 321.415283 115.443792 -97.593812 -93.972082 0.000000
t=0.6000 318.139542 109.330198 -93.721209 -103.812830 0.000000
t=0.7500 336.682554 111.026689 -86.682736 -67.904562 0.000000
t=0.9000 354.775280 110.161902 -103.126910 -42.911445 0.000000
t=1.0500 367.046490 109.303351 -103.334612 -17.453615 0.000000
t=1.2000 368.813135 112.642693 -108.108066 -10.411350 0.000000
t=1.3500 370.307969 115.064528 -111.716761-4.929922 0.000000
t=1.5000 377.904478 127.537527 -123.84598822.059288 0.000000
t=1.6500 381.060665 136.038234 -127.51318642.820310 0.000000
t=1.8000 383.650822 140.356990 -128.43520449.737246 0.000000
t=1.9500 407.665181 149.785476 -119.01962177.660914 0.000000
t=2.1000 438.970222 163.587678 -93.776177 116.969700 0.000000
t=2.2500 433.725235 158.108889 -90.720974 112.099347 0.000000
t=2.4000 428.669956 154.094927 -92.774675 116.316112 0.000000
t=2.5500 424.886250 152.294020 -94.982092 120.973266 0.000000
t=2.7000 457.340107 169.798746 -59.514350 159.210998 0.000000
t=2.8500 451.160983 171.071487 -74.181337 163.008108 0.000000
t=3.0000 449.115450 164.709769 -70.861088 159.094542 0.000000
Elapsed time is 1396.716894 seconds.
这些是刚计算出来的结果,只选取了少量的点。虽然没有出现无穷大,但是数值很大,另外,计算速度特别缓慢。
mumianhua
发表于 2014-7-2 18:24
wystar 发表于 2014-7-2 16:40
t=0.1500 316.73250697.809761 -80.221239 -258.564663 0.000000
t=0.3000 272.656306 121.384029 -95 ...
你是有量纲海还是无量纲呢? 数值看上去太大了,一般都是+ -0.000几,数量级很小,你的值全部都是正的,全部都是混沌,这不太正常,你可以对比一下你相应的分岔图看看,才能看出你是否正确。 看你的图,应该计算的是最大Lyapunov指数吧