Logistic映射的简单理解

2023-05-16

Logistic映射

在看论文时看到了这个概念,于是就去简单了解了一下。

参考博客

1.前言

谈到Logistic映射就要先谈一谈什么是混沌系统。百度百科上的解释是,混沌系统是指在一个确定性系统中,存在着貌似随机的不规则运动,其行为表现为不确定性、不可重复、不可预测,这就是混沌现象。混沌是非线性动力系统的固有特性,是非线性系统普遍存在的现象。

最耳熟能详的混乱现象莫过于蝴蝶效应。这是美国气象学家爱德华·洛伦兹(Edward N.Lorenz)于1963年在一篇提交纽约科学院的论文提到的一种现象。简单来说,对于一个混沌系统,如果初始条件发生了极为微小的变化,比如 x 0 : 0.5556 → 0.5555 x_0:0.5556\rightarrow0.5555 x0:0.55560.5555,那么最终得到的结果会出现极大的差异。这是因为初始时的微小误差会在一系列的计算过程中以指数形式增长,最终增长到无法忽略的地步。

Logistic映射就是这样一种比较简单的一维混沌系统。

2.Logistic映射

Logistic映射的定义存在多种形式,我遇到的一种定义形式如下所示:
x n + 1 = x n μ ( 1 − x n ) , μ ∈ [ 0 , 4 ] , x n ∈ ( 0 , 1 ) x_{n+1}=x_n\mu(1-x_n),\mu\in[0,4],x_n\in(0,1) xn+1=xnμ(1xn),μ[0,4],xn(0,1)
上式中, μ \mu μ被称为分支参数。值得一提的是,Logistic映射并不一定处于混沌状态,这与 μ \mu μ的取值有关。相关研究指出,只有当 3.5699456 < μ ≤ 4 3.5699456<\mu\leq4 3.5699456<μ4,Logistic映射才具有混沌性质。

下面我会用MATLAB图像来展示Logistic映射的一些性质。主要做两个工作:

  1. 当初始值相同时,观察 μ \mu μ对Logistic映射造成的影响;
  2. 3.5699456 < μ ≤ 4 3.5699456<\mu\leq4 3.5699456<μ4,观察不同初始值对Logistic映射造成的影响.

2.1. μ \mu μ对Logistic映射的影响

mu = [3.8,3.0,3.99];  % mu的取值
MaxCycle = 1000;
N = 3;
x = zeros(MaxCycle,N);
x(1,:) = 0.5;  %  初始值

cycle = 1;
while cycle <= MaxCycle - 1
    for i = 1:N
        % 一维logistic映射
        x(cycle + 1,i) = x(cycle,i) * mu(i) * (1 - x(cycle,i));
    end
    cycle = cycle + 1;
end
% 绘图
y = 1:MaxCycle;
scatter(y,x(:,1));
hold on
scatter(y,x(:,2));
scatter(y,x(:,3));
title("logistic映射");
xlabel("迭代次数(x0=0.5)");
ylabel("Logistic映射");
legend('mu=3.80','mu=3.00','mu=3.99');
% 可以发现,当mu越靠近4时,整幅图像呈现出一种伪随机分布的情况,与[0,1]均匀分布很像;
% 而当mu处于其它范围时,函数最终会收敛到某个值.

在这里插入图片描述

2.2.初始值对Logistic映射的影响

mu = 3.99;  % mu的取值
MaxCycle = 100;
N = 2;
x = zeros(MaxCycle,N);
x(1,:) = [0.5556,0.5555];  %  初始值

cycle = 1;
while cycle <= MaxCycle - 1
    for i = 1:N
        % 一维logistic映射
        x(cycle + 1,i) = x(cycle,i) * mu * (1 - x(cycle,i));
    end
    cycle = cycle + 1;
end
% 绘图
y = 1:MaxCycle;
scatter(y,x(:,1));
hold on
scatter(y,x(:,2));
title("logistic映射");
xlabel("迭代次数(mu=3.99)");
ylabel("Logistic映射");
legend('x0=0.5556','x0=0.5555');
% 可以发现,虽然初始值的误差只有0.0001,但整体的映射却是完全不同的

在这里插入图片描述
写到这里我突然想到,matlab或者用其它语言编写的随机函数是真随机吗?如果只是伪随机的话,那么可以实现真随机函数吗?如何实现?这个问题就留给我之后再细想吧。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Logistic映射的简单理解 的相关文章

  • WPI交通信号灯数据集格式转换成VOC2007

    WPI交通信号灯数据集格式转换成VOC2007 1 简述 初学交通信号灯目标检测时 xff0c 总是苦于找不到合适的交通灯数据集 即使找到了数据集 xff0c 也往往因为格式不同而无法直接使用 因为大部分目标检测代码都只支持VOC或COCO
  • 【OpenFOAM】-olaFlow-算例2- breakwater

    算例路径 olaFlow tutorials breakwater 算例描述 波浪对防波堤的作用 堤身为孔隙可渗透结构 堤顶沉箱为不可渗透结构 学习目标 渗透模型 可渗结构设置 孔隙材料各项参数设置 算例快照 图1 防波堤越浪模拟结果 图2
  • 【OpenFOAM】-olaFlow-算例3- currentWaveFlume

    算例路径 olaFlow tutorials currentWaveFlume 算例描述 波流耦合模拟 该算例提供了四种工况 1 Waves and forward current 2 Waves and backward current
  • 【OpenFOAM】-olaFlow-算例4- irreg45degTank

    算例路径 olaFlow tutorials irreg45degTank 算例描述 不规则波浪模拟 学习目标 不规则波浪模拟 olaFlow中单向不规则波采用线性波浪叠加法生成 基本原理如图2所受 需要提供对应波谱的周期 波高和相位的离散
  • 【OpenFOAM】-olaFlow-算例5- oppositeSolitariesFlume

    算例路径 olaFlow tutorials oppositeSolitariesFlume 算例描述 两列反向的孤立波相互作用 学习目标 熟练掌握olaFlow的造波设置 波浪方向与消波方向设置 算例快照 图1 两列反向孤立波相互作用 文
  • 【OpenFOAM】-olaFlow-算例6- waveFloatingObject

    算例路径 olaFlow tutorials waveFloatingObject 算例描述 波浪作用下的浮体的刚体运动 属于流固耦合 FSI 问题 学习目标 动网格设置和使用 网格变形控制 浮体的物理参数设置 浮体做刚体运动的约束设置 算
  • 【OpenFOAM】-olaFlow-算例7-波面自适应网格

    算例路径 none 算例描述 波面附近采用自适应网格划分 学习目标 动网格设置和使用 dynamicFvMesh dynamicRefineFvMesh 的各参数含义 学习体会 1 在结构附近的加密网格 自适应网格依然会对细网格进一步细化
  • 【OpenFOAM】-olaFlow-算例8-setOlaFlume

    算例路径 olaFlow tutorials setOlaFlume 算例描述 不规则底部的二维波浪水槽 且波场被 setOla 工具设置为初始条件 学习目标 使用 setOla 工具设置初始条件为波浪场 不规则底部数值波浪水槽的设置 学习
  • 【OpenFOAM】-olaFlow-算例9-pistonFlumeABS

    算例路径 olaFlow tutorials pistonFlumeABS 算例描述 采用 piston 形式的动边界进行消波 学习目标 了解 olaDyMFlow 的使用 理解动网格使用和参数设置 理解 dynamicMotionSolv
  • 【OpenFOAM】-olaFlow-算例10-wavemakerTank

    算例路径 olaFlow tutorials wavemakerTank 算例描述 采用 Flap和Piston两种方式的动网格进行造波 学习目标 了解 olaDyMFlow 的使用 理解动网格使用和参数设置 理解 dynamicMotio
  • 【OpenFOAM】-算例解析合集(备份目录)

    OpenFOAM 算例解析合集 OlaFlowinterFoampimpleFoam OlaFlow OpenFOAM olaFlow 算例1 baseWaveFlume OpenFOAM olaFlow 算例2 breakwater Op
  • 关于MATLAB中使用Link函数和SerialLink建模

    关于MATLAB中使用Link函数和SerialLink建模 Link函数默认使用的是标准D H法建立模型 xff0c 如果想用改进D H法建立模型 xff0c 则应在参数后添加 modified 如下所示 xff1a 建立机器人模型 th
  • 【OpenFOAM】-interFoam-laminar-算例11-wave

    算例路径 OpenFOAM 8 tutorials multiphase interFoam laminar wave 算例描述 使用 interFoam 求解器的造波功能 学习目标 extrudeMesh 网格操作 了解 setWaves

随机推荐