【matlab混沌理论】1.5.洛伦兹模型的分析
洛伦兹方程用于生成y变量的图。这是对三种y初始条件敏感依赖的一个例子。
1.洛伦兹吸引子的y敏感依赖的着色图
input:
% 洛伦兹方程用于生成y变量的图。x和z的初始条件保持不变,但y的初始条件在1.001、1.0001和1.00001之间变化 % 定义洛伦兹方程
sigma = 16;
beta = 4;
rho = 45.92;
f = @(t,y) [sigma*(y(2)-y(1)); y(1)*(rho-y(3))-y(2); y(1)*y(2)-beta*y(3)]; % 设置初始条件
y0 = [1.001, 0, 1]; % y 初始值为 1.001
[t1,y1] = ode45(f, [0, 50], y0); y0 = [1.0001, 0, 1]; % y 初始值为 1.0001
[t2,y2] = ode45(f, [0, 50], y0); y0 = [1.00001, 0, 1]; % y 初始值为 1.00001
[t3,y3] = ode45(f, [0, 50], y0); % 绘制图形
plot3(y1(:,1),y1(:,2),y1(:,3),'linewidth',2,'color','b');
hold on
plot3(y2(:,1),y2(:,2),y2(:,3),'linewidth',1,'color','k');
plot3(y3(:,1),y3(:,2),y3(:,3),'linewidth',1,'color','r');
xlabel('X');
ylabel('Y');
zlabel('Z');
title('Lorenz attractor with different initial y values');
legend('y0 = 1.001', 'y0 = 1.0001', 'y0 = 1.00001')
grid on;
output:

2.洛伦兹模型的y 初始值的频谱变化
input:
% Lorenz,y 初始值情况下的初始条件敏感性
% 绘制一个散点图,显示 y 初始值的频谱从低到高的变化,每个频谱曲线的颜色根据相应的 y 初始值进行着色
% 在另一个子图中显示了 Lorenz 吸引子的演变趋势。 % 定义洛伦兹方程
sigma = 16;
beta = 4;
rho = 45.92;
f = @(t,y) [sigma*(y(2)-y(1)); y(1)*(rho-y(3))-y(2); y(1)*y(2)-beta*y(3)]; % 定义 y 初始条件
y0 = 1.001; % 计算洛伦兹方程的解
[t, y] = ode45(f, [0, 50], [1, 0, y0]); % 用 FFT 算法计算洛伦兹方程 y 变量的频谱
N = length(y);
Y = fft(y(:,2));
Pyy = Y.*conj(Y)/N;
f = 1/(t(2)-t(1))*(0:(N/2))/N; % 绘制频谱图(注意此处使用的是 semilogy 方法)
semilogy(f,Pyy(1:N/2+1))
grid on
title('Single-Sided Amplitude Spectrum of y(t)')
xlabel('f (Hz)')
ylabel('|P1(f)|') % 显示结果
output:

3.不同y初始条件的洛伦兹吸引子轨迹图
input:
% Lorenz 方程在不同的 y 初始条件下生成的轨迹 % 采用数组和循环同时绘制多个初始条件谱图
% 存在上一错误时,可清除所有变量,关闭所有图形窗口
% clear all;
% close all; % 定义 Lorenz 方程的参数和函数句柄
sigma = 10;
beta = 8/3;
rho = 28;
f = @(t, x) [sigma*(x(2)-x(1)); x(1)*(rho-x(3))-x(2); x(1)*x(2)-beta*x(3)]; % 定义颜色和标记样式
colors = ['r', 'b', 'g'];
markers = ['s', 'o', 'd']; % 定义 y 初始条件
y0 = [1.001, 1.0001, 1.00001]; % 创建新图形窗口
figure; % 循环遍历 y 初始值
for i = 1:length(y0)
% 计算洛伦兹方程的解
[t, y] = ode45(f, [0, 50], [1, 0, y0(i)]); % 绘制 Lorenz 吸引子的 y 轨迹
plot(t, y(:,2), '-', 'linewidth', 0.5, 'color', colors(i));
hold on;
end % 添加图例、坐标轴标签和标题
legend('y0 = 1.001', 'y0 = 1.0001', 'y0 = 1.00001');
xlabel('t');
ylabel('y');
title('Lorenz Attractor for Different Initial Conditions (y)');
ouput:

4.吸引子相空间区域内对初始条件的敏感依赖性
input:
% 绘制洛伦兹吸引子(Lorenz attractor)的代码,同时显示出吸引子占据的相空间区域内对初始条件的敏感依赖性 %% 参数设定
sigma = 10;
beta = 8/3;
rho = 28;
dt = 0.005;
max_t = 200; %% 计算Lorenz attractor
x = 0.1; y = 0.2; z = 0.3;
x_traj = zeros(max_t/dt,1); x_traj(1) = x;
y_traj = zeros(max_t/dt,1); y_traj(1) = y;
z_traj = zeros(max_t/dt,1); z_traj(1) = z; for i=2:length(x_traj)
dx_dt = sigma*(y - x);
dy_dt = x*(rho - z) - y;
dz_dt = x*y - beta*z;
x_new = x + dx_dt*dt;
y_new = y + dy_dt*dt;
z_new = z + dz_dt*dt;
x_traj(i) = x_new;
y_traj(i) = y_new;
z_traj(i) = z_new;
x = x_new; y = y_new; z = z_new;
end %% 绘制Lorenz attractor
figure('color','black'); plot3(x_traj,y_traj,z_traj, 'color', [0.894,0.102,0.110]); hold on;
scatter3(x_traj,y_traj,z_traj,5,'filled', 'MarkerFaceAlpha',0.2,'MarkerEdgeAlpha',0.2); title('Lorenz attractor', 'color','white');
xlabel('x', 'color','white'); ylabel('y', 'color','white'); zlabel('z', 'color','white');
axis tight;
view([40,20]); xlim([-25,25]); ylim([-35,35]); zlim([5,55]); %% 绘制敏感依赖性图
figure('color','black'); delta = 1e-8;
x_traj_perturbed = x_traj+delta*randn(length(x_traj),1);
y_traj_perturbed = y_traj+delta*randn(length(y_traj),1);
z_traj_perturbed = z_traj+delta*randn(length(z_traj),1); plot3(x_traj,y_traj,z_traj, 'color', [0.894,0.102,0.110]); hold on;
scatter3(x_traj,y_traj,z_traj,5,'filled', 'MarkerFaceAlpha',0.2,'MarkerEdgeAlpha',0.2);
plot3(x_traj_perturbed,y_traj_perturbed,z_traj_perturbed, 'color', [0.980,0.745,0.412]); title('Sensitive Dependence on Initial Conditions', 'color','white');
xlabel('x', 'color','white'); ylabel('y', 'color','white'); zlabel('z', 'color','white');
axis tight;
view([40,20]); xlim([-25,25]); ylim([-35,35]); zlim([5,55]);
output:


【matlab混沌理论】1.5.洛伦兹模型的分析的更多相关文章
- 洛伦兹曲线(Lorenz curve)提升指数、提升表和提升图
sklearn实战-乳腺癌细胞数据挖掘 https://study.163.com/course/introduction.htm?courseId=1005269003&utm_campai ...
- C++ 生成洛伦兹的蝴蝶
这里使用 C++ 计算轨迹,生成 Python 文件,使用 matplotlib 绘图. // simulator.cpp : 此文件包含 "main" 函数.程序执行将在此处开始 ...
- 基于python的数学建模---洛伦兹线与数值解
import numpy as np from scipy.integrate import odeint from mpl_toolkits.mplot3d import Axes3D import ...
- 混沌理论(Chaos theory)和非线性系统
混沌理论(Chaos theory)是关于非线性系统在一定参数条件下展现分岔(bifurcation).周期运动与非周期运动相互纠缠,以至于通向某种非周期有序运动的理论.在耗散系统和保守系统中,混沌运 ...
- 洛谷P1783 海滩防御 分析+题解代码
洛谷P1783 海滩防御 分析+题解代码 题目描述: WLP同学最近迷上了一款网络联机对战游戏(终于知道为毛JOHNKRAM每天刷洛谷效率那么低了),但是他却为了这个游戏很苦恼,因为他在海边的造船厂和 ...
- MATLAB之数学建模:深圳市生活垃圾处理社会总成本分析
MATLAB之数学建模:深圳市生活垃圾处理社会总成本分析 注:MATLAB版本--2016a,作图分析部分见<MATLAB之折线图.柱状图.饼图以及常用绘图技巧> 一.现状模式下的模型 % ...
- 混沌数学之Lorenz(洛伦茨)吸引子
洛伦茨吸引子是洛伦茨振子(Lorenz oscillator)的长期行为对应的分形结构,以爱德华·诺顿·洛伦茨的姓氏命名. 洛伦茨振子是能产生混沌流的三维动力系统,是一种吸引子,以其双纽线形状而著称. ...
- Java 理论与实践: 修复 Java 内存模型,第 2 部分(转载)
在 JSR 133 中 JMM 会有什么改变? 活跃了将近三年的 JSR 133,近期发布了关于如何修复 Java 内存模型(Java Memory Model, JMM)的公开建议.在本系列文章的 ...
- 进程池与线程池基本使用、协程理论与实操、IO模型、前端、BS架构、HTTP协议与HTML前戏
昨日内容回顾 GIL全局解释器锁 1.在python解释器中 才有GIL的存在(只与解释器有关) 2.GIL本质上其实也是一把互斥锁(并发变串行 牺牲效率保证安全) 3.GIL的存在 是由于Cpyth ...
- MATLAB 机器人学工具箱(Robotics Toolbox )sl_drivepoint 模型 consecutive zero crossings 问题
操作环境 工具箱:Robotics Toolbox for MATLAB 版本 10.2.1 作者 Peter Corke MATLAB版本:R2018a 操作系统:win10 问题 sl_drive ...
随机推荐
- MySQL——后码锁(Next-Key Block)
众所周知,Mysql的事务隔离级别分为4个,分别是READ-UNCOMMITED,READ-COMMITED,REPEATABLE-READ,SERIALIZABLE,在常规数据库概论中,前三种事务隔 ...
- 深入理解Linux内核——内存管理(2)
提要:本系列文章主要参考MIT 6.828课程以及两本书籍<深入理解Linux内核> <深入Linux内核架构>对Linux内核内容进行总结. 内存管理的实现覆盖了多个领域: ...
- 【matplotlib基础】--刻度
Matplotlib中刻度是用于在绘图中表示数据大小的工具. 刻度是坐标轴上的数字或标签,用于指示数据的大小或值,通常以整数或小数表示,具体取决于坐标轴的类型和限制. 1. 主次刻度 默认的绘制时,坐 ...
- Java爬虫实战系列2——动手写爬虫初体验
在上面的章节中,我们介绍了几个目前比较活跃的Java爬虫框架.在今天的章节中,我们会参考开源爬虫框架,开发我们自己的Java爬虫软件. 首先,我们下载本章节要使用到的源代码,本章节主要提供了基于HTT ...
- web组态软件(BY组态)介绍
BY组态是什么? BY组态面向工业物联网系统复杂的功能要求,通过"搭积木"的方式,拖拽组件到画布上,实现工业物联网可视化的web开发系统. BY组态适用领域 能源电力.物联网.智能 ...
- Solution -「洛谷 P4688」「YunoOI 2016」掉进兔子洞
Description (Link)[https://www.luogu.com.cn/problem/P4688]. 每次询问三个区间,把三个区间中同时出现的数一个一个删掉,问最后三个区间剩下的数的 ...
- Xshell链接不上解决问题
#5.远程连接工具排错? #一.测试网络是否通畅 1.测试网络连通性:ping 服务端ip地址 2.关闭防火墙 systemctl stop firewalld #关闭防火墙 systemctl di ...
- Java 中 extends 与implements 的区别 ?
一.介绍extends 与 implements 的概念 1.类与类之间的继承使用extends : 子类extends父类的属性和方法,并且进行扩展或者重写. // 父类 class Animal ...
- ExcelPatternTool 开箱即用的Excel工具包现已发布!
目录 ExcelPatternTool 功能 特点: 快速开始 使用说明 常规类型 高级类型 Importable注解 Exportable注解 IImportOption导入选项 IExportOp ...
- Python 面向对象编程:类、对象、初始化和方法详解
Python 是一种面向对象的编程语言.在 Python 中,几乎所有东西都是对象,都具有其属性和方法. 类似于对象构造函数或用于创建对象的"蓝图"的类. 创建一个类 要创建一个类 ...