当前位置: 首页 > news >正文

lyapunov指数的绘制

有如下方程:

%% 方程式
%  x(n+1)=1+y(n)-a*x(n)^2
%  y(n+1)=b*x(n)

绘制其对应的lyapunov指数。

在这里插入图片描述

MATLAB实现方式:


clc;
clearvars;
close all;%% 方程式
%  x(n+1)=1+y(n)-a*x(n)^2
%  y(n+1)=b*x(n)%% 代码
N = 1000; 
a = (0:0.001:1.4)'; 
b = 0.3; 
na = length(a); 
LE1 = zeros(na,1); 
LE2 = zeros(na,1); 
x = 0.2; y = 0.3; 
for i = 1:na LCEvector = zeros(2,1); Q = eye(2); for j=1:N xprev = x; yprev = y; x = 1-a(i)*xprev*xprev+yprev; y = b*xprev; Ji = [-2*a(i)*x,1;b 0];B = Ji*Q;[Q,R] = qr(B); LCEvector = LCEvector+log(diag(abs(R))); end LE = LCEvector/N; LE1(i) = LE(1); LE2(i) = LE(2); 
end figure(1);
plot([0,1.4],[0,0],'--','LineWidth',1);
hold on
%line([500,2500],[0.5,0.5],'linestyle',':');
plot(a,LE1,'g',a,LE2,'b','linewidth',1) ; 
set(gca,'XLim',[0 1.4]);
set(gca,'YLim',[-2 1]);
legend('line1=0','\lambda1','\lambda2');
xlabel('a');ylabel('LE');
set(gca,'fontsize',10)

结构化一下:

clc;
clearvars;
close all;% 初始化参数
[a, b, N] = initializeParameters();% 计算Lyapunov指数
[LE1, LE2] = calculateLyapunovExponents(a, b, N);% 绘制结果
plotLyapunovExponents(a, LE1, LE2);%% 
% 1. 初始化函数
% 这个函数将负责初始化参数和变量。function [a, b, N] = initializeParameters()% 初始化参数a = (0:0.001:1.4)'; % 参数a的范围b = 0.3; % 参数b的值N = 1000; % 迭代次数
end%% 
% 2. 计算Lyapunov指数的函数
% 这个函数将负责计算给定参数a时的Lyapunov指数。
function [LE1, LE2] = calculateLyapunovExponents(a, b, N)% 初始化Lyapunov指数向量na = length(a);LE1 = zeros(na, 1);LE2 = zeros(na, 1);x = 0.2; y = 0.3; % 初始条件for i = 1:na[LE1(i), LE2(i)] = computeLEForSingleA(a(i), b, N, x, y);end
end%%
% 3. 计算单个a值的Lyapunov指数
% 这个函数将负责计算单个a值时的Lyapunov指数。function [le1, le2] = computeLEForSingleA(a, b, N, x, y)% 初始化Lyapunov指数向量LCEvector = zeros(2, 1);Q = eye(2);for j = 1:Nxprev = x;yprev = y;x = 1 - a * xprev * xprev + yprev;y = b * xprev;Ji = [-2 * a * x, 1; b, 0];B = Ji * Q;[Q, R] = qr(B);LCEvector = LCEvector + log(diag(abs(R)));endLE = LCEvector / N;le1 = LE(1);le2 = LE(2);
end%%
% 4. 绘制结果的函数
% 这个函数将负责绘制Lyapunov指数随a变化的结果。function plotLyapunovExponents(a, LE1, LE2)figure(1);plot([0, 1.4], [0, 0], '--', 'LineWidth', 1);hold on;plot(a, LE1, 'g', a, LE2, 'b', 'linewidth', 1);set(gca, 'XLim', [0, 1.4]);set(gca, 'YLim', [-2, 1]);legend('line1=0', '\lambda1', '\lambda2');xlabel('a');ylabel('LE');set(gca, 'FontSize', 10);
end%%
% 1. 初始化函数 `initializeParameters`:初始化参数 `a`、`b` 和 `N`,并返回这些值。
% 2. 计算Lyapunov指数的函数 `calculateLyapunovExponents`:遍历参数 `a` 的每个值,
% 调用 `computeLEForSingleA` 函数计算对应的Lyapunov指数。
% 3. 计算单个a值的Lyapunov指数 `computeLEForSingleA`:
% 针对单个 `a` 值,执行迭代计算,更新 `x` 和 `y`,并计算Lyapunov指数。
% 4. 绘制结果的函数 `plotLyapunovExponents`:绘制Lyapunov指数随参数 `a` 变化的图像。
% 这样做可以将代码分成几个逻辑清晰的部分,每个部分都有明确的功能,使得代码更加易读和维护。
http://www.lryc.cn/news/498303.html

相关文章:

  • Ansible 运维工具
  • 【AI系统】MobileNet 系列
  • MATLAB在生态环境数据处理与分析中的应用
  • tensorrt
  • 利用Grounding DINO进行自动标注——目标检测任务——YOLO格式
  • 网际协议(IP)与其三大配套协议(ARP、ICMP、IGMP)
  • uniapp 添加loading
  • cocotb pytest
  • docker run 设置启动命令
  • docker入门 自记录
  • css实现圆周运动效果
  • 【NoSQL数据库】MongoDB数据库——集合和文档的基本操作(创建、删除、更新、查询)
  • Dart 学习笔记(一)
  • 安防视频监控平台Liveweb视频汇聚管理系统管理方案
  • 十八(GIT)、GIT基本命令、axios别名方法、黑马就业数据平台(axios基地址、轻提示函数、注册及登录功能)
  • Linux查看系统基本信息
  • Word处理表格的一些宏
  • 将本地项目文件推送到Git仓库中
  • 2024-12-05OpenCV高级-滤波与增强
  • vue3中 axios 发送请求 刷新token 封装axios
  • aardio - 汉字笔顺处理 - json转sqlite转png
  • 数据结构学习笔记 双向链表
  • 深度学习作业十 BPTT
  • html+css+JavaScript实现轮播图
  • Python+onlyoffice 实现在线word编辑
  • PostgreSQLt二进制安装-contos7
  • Neo4j启动时指定JDK版本
  • kanzi3.6.10 窗口插件-美化绑定内容
  • 利用tablesaw库简化表格数据分析
  • 记录一下,解决js内存溢出npm ERR! code ELIFECYCLEnpm ERR! errno 134 以及 errno 9009