声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

楼主: mumianhua

[稳定性与分岔] 跪求 各位亲 请教非自治系统的LYapunov指数程序相关问题

[复制链接]
 楼主| 发表于 2014-7-1 21:09 | 显示全部楼层
wystar 发表于 2014-7-1 19:13
我现在调整了步长和求解时间,结果是下面的两幅图,结果对吗?

为什么当求解时间增大的时候,Lyapunov指 ...

首先建议你最好把带有时间的非自治系统转变为自治系统,也就是在方程中令t=z,方程中的所有t都用你的函数替代,全部转化,LE指数,中会有时间t全部就成为零了,你 试试看   估计这样就可以解决  你试试看  完了  贴图把    我看看

评分

1

查看全部评分

回复 支持 反对
分享到:

使用道具 举报

 楼主| 发表于 2014-7-1 21:09 | 显示全部楼层
wystar 发表于 2014-7-1 19:13
我现在调整了步长和求解时间,结果是下面的两幅图,结果对吗?

为什么当求解时间增大的时候,Lyapunov指 ...

非自治-改-自治
 楼主| 发表于 2014-7-1 21:09 | 显示全部楼层
wystar 发表于 2014-7-1 18:35
是不是由于我没有将它变为自治系统的原因而导致求解结果无穷大。

对  应该就是这样  你先试试看
 楼主| 发表于 2014-7-1 21:11 | 显示全部楼层
wystar 发表于 2014-7-1 18:32
雅克比是在matlab中直接调用的,求解还有问题。然后我将求解器改为ode45,求解时间设为50s,只是取几个 ...

出现NAN,之前我也有出现这种情况,说明有两方面的问题:(1)在计算Jac时,计算有误,你可以在检查一下;(2)把非自治系统改为自治系统;
发表于 2014-7-2 09:01 | 显示全部楼层
建议你最好把带有时间的非自治系统转变为自治系统,也就是在方程中令t=z,方程中的所有t都用你的函数替代,

还是不太懂怎么把非自治系统转变为自治系统,是需要再增加一个状态变量Z吗?
我试过再增加一个状态变量Z,它的一阶微分为1,然后再求雅克比的时候第五行全部为0了。
 楼主| 发表于 2014-7-2 10:00 | 显示全部楼层
wystar 发表于 2014-7-2 09:01
还是不太懂怎么把非自治系统转变为自治系统,是需要再增加一个状态变量Z吗?
我试过再增加一个状态变量Z ...

对啊  就是把t变成状态变量z,在计算Jac时候就全部为零,相应的LE也为0
发表于 2014-7-2 10:06 | 显示全部楼层
对啊  就是把t变成状态变量z,在计算Jac时候就全部为零,相应的LE也为0

奇怪啊,计算的结果现在是全部为无穷大了,我再看下到底哪个地方出问题了。
发表于 2014-7-2 11:03 | 显示全部楼层
  1. 对啊  就是把t变成状态变量z,在计算Jac时候就全部为零,相应的LE也为0
复制代码
  1. [T,Res]=lyapunov(5,@lorenz_ext,@ode45,0,0.001,1,[0.0001 0 0.0001 0 0],10);
复制代码

我不清楚Z的初值怎么选择,直接定为0吗?
 楼主| 发表于 2014-7-2 11:04 | 显示全部楼层
wystar 发表于 2014-7-2 11:03
我不清楚Z的初值怎么选择,直接定为0吗?

恩   没问题  就是0
发表于 2014-7-2 11:08 | 显示全部楼层
发表于 2014-7-2 11:04
  1. theta1=n*pi*X(5);
复制代码
  1. f(5)=1;
复制代码
  1. Jac=[0, 1, 0, 0,0;
  2.      J21,J22,J23,J24,0;
  3.      0 , 0, 0, 1,0;
  4.      J41,J42,J43,J44,0
  5.      0,   0,  0, 0, 0];
复制代码

然后就更改了这几个地方了,这样改的对吗?
 楼主| 发表于 2014-7-2 15:03 | 显示全部楼层
wystar 发表于 2014-7-2 11:08
然后就更改了这几个地方了,这样改的对吗?

把你更改的添加的那一部分贴上来   我看看
发表于 2014-7-2 15:23 | 显示全部楼层
把你更改的添加的那一部分贴上来   我看看
  1. [T,Res]=lyapunov(5,@lorenz_ext,@ode45,0,0.05,5,[0.0001 0 0.0001 0 0],5);
复制代码
  1. theta1=n*pi*X(5);
复制代码
  1. Y= [X(6), X(11),X(16) , X(21),X(26);
  2.     X(7), X(12),X(17) ,X(22), X(27);
  3.     X(8), X(13), X(18),X(23), X(28);
  4.     X(9), X(14),X(19),X(24),X(29);
  5.     X(10),X(15),X(20),X(25),X(30)];
  6. f=zeros(30,1);
复制代码
  1. f(5)=1;
复制代码

发表于 2014-7-2 15:26 | 显示全部楼层
  1. Jac=[0, 1, 0, 0,0;
  2.      J21,J22,J23,J24,0;
  3.      0 , 0, 0, 1,0;
  4.      J41,J42,J43,J44,0
  5.      0,   0,  0, 0, 0];
复制代码
  1. f(6:30)=Jac*Y;
复制代码

雅克比采用的是直接调用的,太长了放不下,形式是这样的。
发表于 2014-7-2 16:40 | 显示全部楼层
t=0.1500 316.732506  97.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.845988  22.059288   0.000000
t=1.6500 381.060665 136.038234 -127.513186  42.820310   0.000000
t=1.8000 383.650822 140.356990 -128.435204  49.737246   0.000000
t=1.9500 407.665181 149.785476 -119.019621  77.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.
这些是刚计算出来的结果,只选取了少量的点。虽然没有出现无穷大,但是数值很大,另外,计算速度特别缓慢。
untitled.jpg
untitled2.jpg
 楼主| 发表于 2014-7-2 18:24 | 显示全部楼层
wystar 发表于 2014-7-2 16:40
t=0.1500 316.732506  97.809761 -80.221239 -258.564663   0.000000
t=0.3000 272.656306 121.384029 -95 ...

你是有量纲海还是无量纲呢?   数值看上去太大了,一般都是+ -0.000几,数量级很小,你的值全部都是正的,全部都是混沌,这不太正常,你可以对比一下你相应的分岔图看看,才能看出你是否正确。 看你的图,应该计算的是最大Lyapunov指数吧
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-18 23:09 , Processed in 0.077823 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表