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指数吧
页: 1 2 [3] 4
查看完整版本: 跪求 各位亲 请教非自治系统的LYapunov指数程序相关问题