热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

lyapunov指数求取时运用qr法与jacobi法之间的区别与联系【基于matlab的动力学模型学习笔记_9】

在进行lyapunov指数的求取时,需要知道离散动力学系统对应Jacobi矩阵的特征值,qr法与Jacobi法都可以求解矩阵特征值,其中q

在进行lyapunov指数的求取时,需要知道离散动力学系统对应Jacobi矩阵的特征值,qr法与Jacobi法都可以求解矩阵特征值,其中qr法求解的是矩阵所有特征值,而Jacobi法求解的是矩阵的最大特征值。本文以二维Henon映射为例,分别展示两种方法在求解时的区别与联系。

目录

1.准备工作

1.1 henon映射

动力学系统

代码实现

 1.2 jacobi矩阵

1.3 lyapunov指数

2.Jacobi法

 代码实现 

3.qr法

 代码实现

 lypunov指数谱:

4.qr法与Jacobi法之间代码的联系

代码实现




1.准备工作


1.1 henon映射


动力学系统

Henon映射为二维映射,其动力学方程通常有以下两种写法:

 和

 式中a、b为参数,0

代码实现

clc;clear all;close all
%初值设置
x0=0.2;y0=0.3;
%参数设置
b=0.3;n=800;t=600;
hold on
for a = 0:0.01:1.4 %参数a
x(1)=1+y0-a*x0^2;
y(1)=b*x0;
for i =2:nx(i)=1+y(i-1)-a*x(i-1)^2;y(i)=b*x(i-1);
end
xn=x(t+1:n);%取80次迭代之后的数据
pause(0.1);
plot(a,xn,'r.','Markersize',2);
xlabel('a');ylabel('x');
set(gca,'XLim',[0 1.4]);
set(gca,'XTick',[0:0.2:1.4]);
set(gca,'YLim',[-1.5 1.5]);
set(gca,'YTick',[-1.5:0.5:1.5]);
end

混沌图像:

图1 .henon映射 


 1.2 jacobi矩阵

 求Jacobi矩阵,实际上就是对动力学系统方程f关于x求偏导。


1.3 lyapunov指数

在式(3)jacobi矩阵的基础上有

首先令:

Jk的m个复根可表示为:

 离散动力学系统的第i个lypunov指数可表示为:


2.Jacobi法

Jacobi法求特征值,是求的最大特征值。故在(4)式的基础上,我们应将特征值进行排序,然后取出最大的特征值即可,但是:

①在求lyapunov指数是特征值取模;

②对于复特征值而言不取模的话并无意义;

③对于单纯数大,但数值并不大的特征值而言,其对应求得的lyapunov指数并没有十分特殊的意义;

④特征值模最大,可以对应求得系统的最大lyapunov指数,对于henon映射这种2维系统而言,对最大lyapunov指数进行观察就可以了解系统混沌与否。

故我们对(4)式中的特征值,进行取模排序,依次从小到大排序为:



 那么利用jacobi法求系统特征值后所对应的lyapunov指数可表示为:


 代码实现 

clc, clear
a=0:0.01:1.6; n=500; S=[];
for j&#61;1:length(a)x&#61;0.2; y&#61;0.3; %x,y的初值for i&#61;1:nx2&#61;1-a(j)*x^2&#43;y; y&#61;0.3*x; x&#61;x2; %首先进行序列迭代endif x(end)>-100 & x(end)<100 %若不发散&#xff0c;再计算指数x&#61;0.2; y&#61;0.3;JJ&#61;eye(2);%2阶单位矩阵for i&#61;1:nx2&#61;1-a(j)*x^2&#43;y; y&#61;0.3*x; x&#61;x2;J&#61;[-2*a(j)*x, 1; 0.3, 0];%jacobi矩阵JJ&#61;JJ*J;endL&#61;eigs(JJ,1); %求模最大的特征值,并返回1个最大特征值S&#61;[S,[a(j);log(abs(L))/n]]; %把a值及指数值保存end
end
plot(S(1,:),S(2,:),&#39;.-&#39;) %画出a对应的最大Lyapunov指数
hold on, plot([a(1),a(end)],[0,0],&#39;k&#39;)
xlabel(&#39;\it a&#39;), ylabel(&#39;最大Lyapunov指数&#39;)

 lyapunov指数谱&#xff1a;

图2 .jacobi法求得的henon映射lypunov指数谱

&#xff08;henon映射最大Lyapunov指数谱&#xff09;

 jacobi法求得的lypunov指数谱与混沌的对应&#xff1a;

图3 .jacobi法求得的henon映射与最大lyapunov指数之间的对应 


3.qr法

qr法求的是系统所有的特征值&#xff0c;即把式(4)中所有特征值&#xff0c;进行取模后全部转化为lyapunov。由于henon映射为2维系统&#xff0c;故其对应的特征值最多就2个&#xff1a;


 代码实现

clc;close all;clear all
N &#61; 1000;
a &#61; (0:0.001:1.4)&#39;;
b &#61; 0.3;
na &#61; length(a);
LE1 &#61; zeros(na,1);
LE2 &#61; zeros(na,1);
x &#61; 0.2; y &#61; 0.3;
for i&#61;1:na LCEvector &#61; zeros(2,1); Q &#61; eye(2); for j&#61;1:N xprev &#61; x; yprev &#61; y; x &#61; 1-a(i)*xprev*xprev&#43;yprev; y &#61; b*xprev; Ji &#61; [-2*a(i)*x,1;b 0];B &#61; Ji*Q;[Q,R] &#61; qr(B); %R得B矩阵的上三角矩阵LCEvector &#61; LCEvector&#43;log(diag(abs(R))); end LE &#61; LCEvector/N; LE1(i) &#61; LE(1); LE2(i) &#61; LE(2);
end
figure(1)
plot(a,LE1,&#39;g&#39;,&#39;linewidth&#39;,1) ;
hold on
plot(a,LE2,&#39;b&#39;,&#39;linewidth&#39;,1);
set(gca,&#39;XLim&#39;,[0 1.4]);set(gca,&#39;YLim&#39;,[-2 1]);
legend(&#39;\lambda1&#39;,&#39;\lambda2&#39;);
hold on
plot([0 1.4],[0 0],&#39;k--&#39;,&#39;linewidth&#39;,1)
hold off xlabel(&#39;a&#39;);ylabel(&#39;LE&#39;);set(gca,&#39;fontsize&#39;,10)

 lyapunov指数谱&#xff1a;

图4 .qr法求得的henon映射lyapunov指数谱

&#xff08;henon映射Lyapunov指数谱,2维系统&#xff0c;一共两条lyapunov&#xff09;


4.qr法与Jacobi法之间代码的联系

在jacobi法代码基础上&#xff0c;我们稍作调整也可以得qr法对应的lyapunov指数谱&#xff1a;

①去掉eigs()这个求最大特征值函数

②引入qr函数

③jacobi法每次对应1个特征值&#xff0c;qr法此处对应两个&#xff0c;因此为了累加计算的方便将lyapunov指数迭代放到循环里面。


代码实现

 

clc, clear
a&#61;0:0.001:1.4; n&#61;500;
for j&#61;1:length(a)LE &#61; zeros(2,1); x&#61;0.2; y&#61;0.3; %x,y的初值for i&#61;1:nx2&#61;1-a(j)*x^2&#43;y; y&#61;0.3*x; x&#61;x2; %首先进行序列迭代endif x(end)>-100 & x(end)<100 %若不发散&#xff0c;再计算指数x&#61;0.2; y&#61;0.3;JJ&#61;eye(2);%2阶单位矩阵for i&#61;1:nx2&#61;1-a(j)*x^2&#43;y; y&#61;0.3*x; x&#61;x2;J&#61;[-2*a(j)*x, 1; 0.3, 0];%jacobi矩阵JJ&#61;J*JJ;[JJ,L]&#61;qr(JJ);LE &#61; LE&#43;log(diag(abs(L)));endendLE &#61; LE/n;LE1(j) &#61; LE(1);LE2(j) &#61; LE(2);
end
figure(1)
plot(a,LE1,&#39;g&#39;,&#39;linewidth&#39;,1) ;
hold on
plot(a,LE2,&#39;b&#39;,&#39;linewidth&#39;,1);
set(gca,&#39;XLim&#39;,[0 1.4]);set(gca,&#39;YLim&#39;,[-2 1]);
legend(&#39;\lambda1&#39;,&#39;\lambda2&#39;);
hold on
plot([0 1.4],[0 0],&#39;k--&#39;,&#39;linewidth&#39;,1)
hold off xlabel(&#39;a&#39;);ylabel(&#39;LE&#39;);set(gca,&#39;fontsize&#39;,10)

 lyapunov指数谱&#xff1a;

 

 


推荐阅读
  • 本文将深入探讨如何在不依赖第三方库的情况下,使用 React 处理表单输入和验证。我们将介绍一种高效且灵活的方法,涵盖表单提交、输入验证及错误处理等关键功能。 ... [详细]
  • 探讨如何从数据库中按分组获取最大N条记录的方法,并分享新年祝福。本文提供多种解决方案,适用于不同数据库系统,如MySQL、Oracle等。 ... [详细]
  • 深入理解K近邻分类算法:机器学习100天系列(26)
    本文详细介绍了K近邻分类算法的理论基础,探讨其工作原理、应用场景以及潜在的局限性。作为机器学习100天系列的一部分,旨在为读者提供全面且深入的理解。 ... [详细]
  • 社交网络中的级联行为 ... [详细]
  • 本文详细介绍了Grand Central Dispatch (GCD) 的核心概念和使用方法,探讨了任务队列、同步与异步执行以及常见的死锁问题。通过具体示例和代码片段,帮助开发者更好地理解和应用GCD进行多线程开发。 ... [详细]
  • 历经三十年的开发,Mathematica 已成为技术计算领域的标杆,为全球的技术创新者、教育工作者、学生及其他用户提供了一个领先的计算平台。最新版本 Mathematica 12.3.1 增加了多项核心语言、数学计算、可视化和图形处理的新功能。 ... [详细]
  • 探讨ChatGPT在法律和版权方面的潜在风险及影响,分析其作为内容创造工具的合法性和合规性。 ... [详细]
  • 优化SQL Server批量数据插入存储过程的实现
    本文介绍了一种改进的SQL Server存储过程,用于生成批量插入语句。该方法不仅提高了性能,还支持单行和多行模式,适用于SQL Server 2005及以上版本。 ... [详细]
  • 本文详细介绍了如何使用 HTML 和 CSS 对文件上传按钮进行样式美化,使用户界面更加友好和美观。 ... [详细]
  • 搭建Jenkins、Ant与TestNG集成环境
    本文详细介绍了如何在Ubuntu 16.04系统上配置Jenkins、Ant和TestNG的集成开发环境,涵盖从安装到配置的具体步骤,并提供了创建Windows Slave节点及项目构建的指南。 ... [详细]
  • 尝试执行数据库模式加载时遇到错误'Mysql2::Error: 指定的键太长;最大键长度为767字节'。本文将探讨这一问题的成因及解决方案。 ... [详细]
  • 本文介绍如何在Grafana配置面板时,使用JSONNet获取数组中特定元素的位置,并将其应用于动态服务查询。 ... [详细]
  • 本文详细介绍了虚拟专用网(Virtual Private Network, VPN)的概念及其通过公共网络(如互联网)构建临时且安全连接的技术特点。文章探讨了不同类型的隧道协议,包括第二层和第三层隧道协议,并提供了针对IPSec、GRE以及MPLS VPN的具体配置指导。 ... [详细]
  • 本文旨在探讨如何利用决策树算法实现对男女性别的分类。通过引入信息熵和信息增益的概念,结合具体的数据集,详细介绍了决策树的构建过程,并展示了其在实际应用中的效果。 ... [详细]
  • CentOS 7.6环境下Prometheus与Grafana的集成部署指南
    本文旨在提供一套详细的步骤,指导读者如何在CentOS 7.6操作系统上成功安装和配置Prometheus 2.17.1及Grafana 6.7.2-1,实现高效的数据监控与可视化。 ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有