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指数吧
wystar
发表于 2014-7-2 19:10
你是有量纲海还是无量纲呢? 数值看上去太大了,一般都是+ -0.000几,数量级很小,你的值全部都是正的,全部都是混沌,这不太正常,你可以对比一下你相应的分岔图看看,才能看出你是否正确。 看你的图,应该计算的是最大Lyapunov指数吧
应该是无量纲的;
数值看起来的确太大了,我也感觉不太正常;
我是借用别人的程序,只是把自己的方程嵌套进去了。它的程序介绍说只是计算Lyapunov指数的,计算的过程我也没看懂啊;
我的分岔图还没做出来啊,刚研究这方面的内容,还不会啊,要努力学了。
mumianhua
发表于 2014-7-2 19:13
wystar 发表于 2014-7-2 19:10
应该是无量纲的;
数值看起来的确太大了,我也感觉不太正常;
我是借用别人的程序,只是把自己的方程嵌 ...
如果是无量纲,那么你的程序就是有问题。这样吧你把你的分岔图和Lyapunov指数都贴上来吧我看看
wystar
发表于 2014-7-2 19:16
发表于 2014-7-2 18:24 |
谢谢您耐心的解答,还想请教您几个问题
1、怎么通过分岔图验证Lyapunov指数是否正确;
2、能否推荐一些其他的方法来求解这种非自治系统的Lyapunov指数;
3、我不敢确定自己的方程或程序完全正确,请问是否有一种比较好的方法验证自己编程与求解的结果是正确的?
wystar
发表于 2014-7-2 19:19
如果是无量纲,那么你的程序就是有问题。这样吧你把你的分岔图和Lyapunov指数都贴上来吧我看看
我估计也是程序的问题,分岔图还没做出来啊,接触这方面的知识不多啊{:{33}:}
mumianhua
发表于 2014-7-2 19:55
wystar 发表于 2014-7-2 19:19
我估计也是程序的问题,分岔图还没做出来啊,接触这方面的知识不多啊
现在不好说 你先画出相应的分岔图 然后贴上 我再看看
wystar
发表于 2014-7-2 20:02
现在不好说 你先画出相应的分岔图 然后贴上 我再看看
恩,好的,这几天我学习一下怎么画分岔图。
wuzhongshanhe
发表于 2014-7-3 10:25
不错不错学习学习{:{10}:}