首页 > 其他分享 >【matlab混沌理论】1.6.Lorenz吸引子的实际相图

【matlab混沌理论】1.6.Lorenz吸引子的实际相图

时间:2023-12-13 09:05:08浏览次数:45  
标签:1.6 end color xyz 混沌 Lorenz init matlab

方法:Lorenz特征判断

Lorenz混沌轨道和非混沌轨道在相空间中占据不同的吸引区域,动态生成图(代码见下)。要判断一个轨迹是否为Lorenz混沌轨道。通过计算主成分分析,按特征值大小排序,从而判断出混沌性。

input:

% Lorenz混沌轨道和非混沌轨道在相空间中占据不同的吸引区域,动态生成图
 
% 定义参数和初始值范围
sigma = 10;
beta = 8/3;
rho1 = 15;
rho2 = 28;
rho3 = 50;
x_init = {-5:0.5:5, -5:0.5:5, -5:0.5:5};
n = 10000;
t_start = 0;
t_end = 100;
dt = 0.01;
tspan = linspace(t_start, t_end, n);
options = odeset('RelTol', 1e-06, 'AbsTol', [1e-06 1e-06 1e-06], 'OutputFcn', @odeplot);
 
% 定义Lorenz微分方程
f = @(t, X, rho) [sigma*(X(2)-X(1)); X(1)*(rho-X(3))-X(2); X(1)*X(2)-beta*X(3)];
 
% 绘制立体图
figure('color', 'white'); hold on;
for i = 1:numel(x_init{1})
    for j = 1:numel(x_init{2})
        for k = 1:numel(x_init{3})
            % 计算轨迹
            [t, xyz] = ode45(@(t, X) f(t, X, rho1), tspan, [x_init{1}(i); x_init{2}(j); x_init{3}(k)], options);
            color = [0.35 0.72 0.53];
            % 判断是否为Lorenz混沌轨道
            if isLorenzChaos(xyz)
                color = [0.94 0.53 0.47];
            end
            plot3(xyz(:, 1), xyz(:, 2), xyz(:, 3), 'color', color,'LineWidth',0.5);
            
            [t, xyz] = ode45(@(t, X) f(t, X, rho2), tspan, [x_init{1}(i); x_init{2}(j); x_init{3}(k)], options);
            color = [0.35 0.72 0.53];
            if isLorenzChaos(xyz)
                color = [0.94 0.53 0.47];
            end
            plot3(xyz(:, 1), xyz(:, 2), xyz(:, 3), 'color', color,'LineWidth',0.5);
            
            [t, xyz] = ode45(@(t, X) f(t, X, rho3), tspan, [x_init{1}(i); x_init{2}(j); x_init{3}(k)], options);
            color = [0.35 0.72 0.53];
            if isLorenzChaos(xyz)
                color = [0.94 0.53 0.47];
            end
            plot3(xyz(:, 1), xyz(:, 2), xyz(:, 3), 'color', color,'LineWidth',0.5);
        end
    end
end
 
% 设置图形属性
title('Lorenz Chaotic and Non-Chaotic Trajectories in Phase Space', 'fontsize', 16, 'fontweight', 'bold');
xlabel('x', 'fontsize', 14);
ylabel('y', 'fontsize', 14);
zlabel('z', 'fontsize', 14);
grid on;
legend('Non-Chaotic, \rho=15', 'Chaotic, \rho=15', 'Non-Chaotic, \rho=28', 'Chaotic, \rho=28', 'Non-Chaotic, \rho=50', 'Chaotic, \rho=50');
view([20 30]);
 
% 判断一个轨迹是否为Lorenz混沌轨道
function isChaos = isLorenzChaos(xyz)
    [~,~,lam] = pca(xyz); % 计算主成分分析
    [~, idx] = sort(lam); % 按特征值大小排序
    isChaos = idx(1) ~= 3 || idx(2) ~= 2; % 判断混沌性
end

output:

标签:1.6,end,color,xyz,混沌,Lorenz,init,matlab
From: https://www.cnblogs.com/liaowangta/p/17898245.html

相关文章

  • 【matlab混沌理论】1.3.双摆杆基本模型
    双摆杆是混沌理论的典型运动模型之一。涉及重力加速度、摆杆长度和质量。1.双摆杆的摆角分析input:%已知物理参数L1=5;L2=3;%两摆杆长度和质量m1=3;m2=5;g=9.80665;%物理重力加速度m/s^2%定义初始参数%y0的第1参数,即摆1的初始角度;第2,即摆2的初始角......
  • 【matlab混沌理论】1.2.洛伦兹吸引子
    ​【matlab混沌理论】1.2.洛伦兹吸引子Lorenz洛伦兹吸引子。定义洛伦兹函数组后,通过ode45函数求解此微分方程方程。input:%Lorenz函数的洛伦兹吸引子%2.定义模型参数sigma=10;beta=8/3;rho=28;%定义一组初始条件和一个时间间隔x0=[1,0,0.5];tspan=0......
  • 【matlab混沌理论】1.1.混沌理论简介
    ​混沌理论1.简介         混沌理论是一个跨学科的科学研究领域和数学分支,专注于对初始条件高度敏感的动力系统的基本模式和确定性定律,曾被认为具有完全随机的无序和不规则状态。混沌理论指出,在混沌复杂系统的表面随机性中,存在潜在的模式、互连、恒定反馈回路、重复、......
  • Socket.D 网络应用协议,v2.1.6 发布
    有用户说,“Socket.D之于Socket,尤如Vue之于Js、Mvc之于Http”与其它协议的简单对比对比项目socket.dhttpwebsocketrsocketsocket.io发消息(Qos0)有无有有有发送并请求(Qos1)有有无有无发送并订阅有无无有无答复或响应有有无有无......
  • 部署 Argo Rollouts v1.6.3
    创建nsargo-rollouts#kubectlcreatenamespaceargo-rolloutsnamespace/argo-rolloutscreated安装 argo-rollouts#kubectlapply-nargo-rollouts-fhttps://github.com/argoproj/argo-rollouts/releases/latest/download/install.yamlcustomresourcedefinition.api......
  • 11.6k star,真的吹爆这款开源插件,太强了!!
    这款插件可以一键将你看到的网页内容统统下载下来,整合到本地作为一个html文件,还可以针对部分内容进行下载,也可以对下载内容添加笔记、文本高亮等。支持目前主流的大部分浏览器。1SingleFile简介如果你直接另存一个html页面的话,很多时候页面内容会变得很乱,部分资源也会没有保......
  • How to add your own library in MATLAB Simulink Library Browser
    https://www.youtube.com/watch?v=WxFBXEZo0VI&ab_channel=HighVoltageEngineeringbyMGNiasarhttps://ww2.mathworks.cn/help/simulink/ug/creating-block-libraries.htmlLibrariesinSimulinkMadeEasy:https://www.youtube.com/watch?v=xWmIACn5Te0&ab_channel......
  • 基于支持向量机SVM和MLP多层感知神经网络的数据预测matlab仿真
    1.算法运行效果图预览   2.算法运行软件版本matlab2022a 3.算法理论概述      支持向量机(SVM)和多层感知器(MLP)是两种常用的机器学习算法,它们在数据预测和分类任务中都有广泛的应用。下面将详细介绍这两种算法的原理和数学公式。 一、支持向量机(SVM) ......
  • 基于PSD-ML算法的语音增强算法matlab仿真
    1.算法运行效果图预览   2.算法运行软件版本matlab2022A 3.算法理论概述      PSD-ML(PowerSpectralDensityMaximumLikelihood)算法是一种基于最大似然估计的语音增强算法,通过对语音信号的功率谱密度进行估计,并利用估计结果对原始语音信号进行滤波处理,以达......
  • Simulink建模与仿真(6)-Simulink使用基础(MATLAB的单元与结构体)
    ✅作者简介:热爱科研的算法开发者,Python、Matlab项目可交流、沟通、学习。......