基于matlab的lorenz混沌系统仿真与分析

news/2024/10/18 16:52:57/

目录

1.算法运行效果图预览

2.算法运行软件版本

3.部分核心程序

4.算法理论概述

5.算法完整程序工程


1.算法运行效果图预览

 

2.算法运行软件版本

matlab2022a

3.部分核心程序

.....................................................................................
lows     = 28;
[t1,XX]  = ode45(@func_lorenz2,[0 100],[0 1 1.05]);%use the function of ode45 to solve the function
RR1      = XX; lows     = 28.05;
[t1,XX]  = ode45(@func_lorenz2,[0 100],[0 1 1.05]);%use the function of ode45 to solve the function
RR2      = XX; lows     = 27.95;
[t1,XX]  = ode45(@func_lorenz2,[0 100],[0 1 1.05]);%use the function of ode45 to solve the function
RR3      = XX; L = min([length(RR1),length(RR2),length(RR3)]);
%先针对p值变大的情况来计算rate
D1 = [RR1(1:L,1) - RR2(1:L,1)  ,  RR1(1:L,2) - RR2(1:L,2)  ,  RR1(1:L,3) - RR2(1:L,3)];%计算rate
D1d= [diff(RR1(1:L,1) - RR2(1:L,1)) , diff(RR1(1:L,2) - RR2(1:L,2)) , diff(RR1(1:L,3) - RR2(1:L,3))];%再针对p值变小的情况来计算rate
D2 = [RR1(1:L,1) - RR3(1:L,1)  ,  RR1(1:L,2) - RR3(1:L,2)  ,  RR1(1:L,3) - RR3(1:L,3)];
%计算rate
D2d= [diff(RR1(1:L,1) - RR3(1:L,1)) , diff(RR1(1:L,2) - RR3(1:L,2)) , diff(RR1(1:L,3) - RR3(1:L,3))];figure;
subplot(211);
plot(D1d(:,1),'m-');hold on
plot(D1d(:,2),'r-');hold on
plot(D1d(:,3),'b-');hold off
title('28.1,[0,1,1.05]');
legend('X','Y','Z');
grid on;subplot(212);
plot(D2d(:,1),'m-');hold on
plot(D2d(:,2),'r-');hold on
plot(D2d(:,3),'b-');hold off
title('27.9,[0,1,1.05]');
legend('X','Y','Z');
grid on;%上面是相近的P值来计算最后的rate,下面考虑改变初始值,来计算rate
%上面是相近的P值来计算最后的rate,下面考虑改变初始值,来计算rate
global XX;
global lows;lows     = 28;
[t1,XX]  = ode45(@func_lorenz2,[0 100],[0 1 1.05]);%use the function of ode45 to solve the function
RR1      = XX; [t1,XX]  = ode45(@func_lorenz2,[0 100],[0 1 1.06]);%use the function of ode45 to solve the function
RR2      = XX; [t1,XX]  = ode45(@func_lorenz2,[0 100],[0 1 1.04]);%use the function of ode45 to solve the function
RR3      = XX; L = min([length(RR1),length(RR2),length(RR3)]);
%先针对p值变大的情况来计算rate
D1 = [RR1(1:L,1) - RR2(1:L,1)  ,  RR1(1:L,2) - RR2(1:L,2)  ,  RR1(1:L,3) - RR2(1:L,3)];
%计算rate
D1d= [diff(RR1(1:L,1) - RR2(1:L,1)) , diff(RR1(1:L,2) - RR2(1:L,2)) , diff(RR1(1:L,3) - RR2(1:L,3))];%再针对p值变小的情况来计算rate
D2 = [RR1(1:L,1) - RR3(1:L,1)  ,  RR1(1:L,2) - RR3(1:L,2)  ,  RR1(1:L,3) - RR3(1:L,3)];
%计算rate
D2d= [diff(RR1(1:L,1) - RR3(1:L,1)) , diff(RR1(1:L,2) - RR3(1:L,2)) , diff(RR1(1:L,3) - RR3(1:L,3))];figure;
subplot(211);
plot(D1d(:,1),'m-');hold on
plot(D1d(:,2),'r-');hold on
plot(D1d(:,3),'b-');hold off
title('28,[0,1,1.06]');
legend('X','Y','Z');
grid on;subplot(212);
plot(D2d(:,1),'m-');hold on
plot(D2d(:,2),'r-');hold on
plot(D2d(:,3),'b-');hold off
title('28,[0,1,1.04]');
legend('X','Y','Z');
grid on;
07_002m

4.算法理论概述

       洛伦兹混沌系统是一种非线性动力系统,最初由爱德华·洛伦兹(Edward Lorenz)于1963年引入,它的简单方程组引发了混沌理论的开创性研究。该系统是混沌现象的典型范例,展示了复杂、不可预测的行为,即使在简单的数学方程下也可以观察到这种行为。

原理:
       洛伦兹混沌系统由三个耦合的一阶常微分方程组组成,这三个方程描述了三个状态变量(或者说是维度)之间的关系。这些状态变量表示系统在空间中的位置,从而形成一个三维相空间,该相空间中的轨迹表现出异常的复杂性和混沌特性。

洛伦兹方程组描述如下:

         其中,x、y 和 z 是状态变量,t是时间,而 \sigmaσ、\rhoρ 和 \betaβ 则是系统的参数。这些参数的取值会影响洛伦兹系统的动态行为。 

系统特点:

  1. 敏感依赖于初始条件: 洛伦兹系统展现出敏感依赖于初始条件的特点,即微小的初始条件变化可能导致长时间内的轨迹发生巨大的分离。
  2. 奇异吸引子: 洛伦兹系统的相空间中,轨迹围绕着一个被称为“奇异吸引子”的复杂结构。这个吸引子是一个分形结构,展现了无规则且不可重复的形态。
  3. 周期性和混沌性共存: 洛伦兹系统在参数空间内可以存在周期性行为和混沌行为,这种现象被称为“周期倍增路线到混沌”。

       混沌的产生原理: 洛伦兹混沌系统的混沌行为来源于非线性项的存在。当参数取值在一定范围内,非线性项的影响会导致相空间中的轨迹错综复杂地交织在一起,这使得系统的演化变得高度不可预测。

        洛伦兹混沌系统是混沌现象的经典范例,它揭示了非线性系统的复杂行为和对初始条件的敏感性。通过简单的数学方程,洛伦兹系统展现出了无法预测的、高度不稳定的轨迹,这一发现在混沌理论的发展中具有重要地位,深刻影响了许多领域,包括天气预测、物理学、生物学等。

5.算法完整程序工程

OOOOO

OOO

O


http://www.ppmy.cn/news/1063015.html

相关文章

Linux centos7 bash编程(小练习)

一、打印九九乘法口诀 这一个for循环嵌套的小练习&#xff0c;难度不大。提供一种写法&#xff0c;供参考&#xff1a; #!/bin/bash # 文件名&#xff1a;99table.sh # 打印输出九九乘法口诀表 for i in {1..9} do for ((j1;j<$i;j)) do …

【Linux】进程通信 — 信号(上篇)

文章目录 &#x1f4d6; 前言1. 什么是信号1.1 认识信号&#xff1a;1.2 信号的产生&#xff1a;1.3 信号的异步&#xff1a;1.4 信号的处理&#xff1a; 2. 前后台进程3. 系统接口3.1 signal&#xff1a;3.1 - 1 不能被捕捉的信号 3.2 kill&#xff1a;3.2 - 1 killall 3.3 ra…

RocketMQ:一个纯java的开源消息中间件--开发测试环境搭建

一、简介 RocketMQ的前身是Metaq,当 Metaq 3.0发布时,产品名称改为 RocketMQ MetaQ2.x版本由于依赖了alibaba公司内部其他系统,对于公司外部用户使用不够友好,推荐使用3.0版本。 项目地址: https://github.com/alibaba/RocketMQ

Java之AbstractQueuedSynchronizer

要让你写一个java版的并发同步库&#xff0c;你会怎么思考设计&#xff1f;&#xff1f;&#xff1f;先思考三五分钟 请先拜读下老外的paperhttp://gee.cs.oswego.edu/dl/papers/aqs.pdf 1. 简介 AbstractQueuedSynchronizer&#xff0c;简称AQS&#xff0c;中文翻译为抽象队…

vr内容编辑软件降低了虚拟现实项目开发门槛

VR虚拟场景编辑器是一种专门用于创建、修改和设计虚拟场景的工具。它利用vr虚拟现实技术&#xff0c;让用户可以在三维空间中直接对场景进行操作和编辑。这种编辑器的出现&#xff0c;使得用户可以更加直观、自由地进行场景设计和制作&#xff0c;为诸多领域带来了新的可能性。…

TensorFlow中slim包的具体用法

TensorFlow中slim包的具体用法 1、训练脚本文件&#xff08;该文件包含数据下载打包、模型训练&#xff0c;模型评估流程&#xff09;3、模型训练1、数据集相关模块&#xff1a;2、设置网络模型模块3、数据预处理模块4、定义损失loss5、定义优化器模块 本次使用的TensorFlow版本…

数据结构(Java实现)-ArrayList与顺序表

什么是List List是一个接口&#xff0c;继承自Collection。 List的使用 List是个接口&#xff0c;并不能直接用来实例化。 如果要使用&#xff0c;必须去实例化List的实现类。在集合框架中&#xff0c;ArrayList和LinkedList都实现了List接口。 线性表 线性表&#xff08;lin…

第2章 MySQL的调控按钮-启动选项和系统变量

每个设置项都有各自的默认值&#xff0c;比方说服务器允许同时连入的客户端的默认数量是 151 &#xff0c;表的默认存储引擎是 InnoDB &#xff0c;我们可以在程序启动的时候去修改这些默认值&#xff0c;对于这种在程序启动时指定的设置项也称之为启动选项&#xff08;startup…