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

PWLCM分段线性混沌映射

混沌映射是生成混沌序列的一种方法,常见的混沌映射方式有 Logistic映射、Tent映射、Lorenz映射,而PWLCM(Piecewise Linear Chaotic Map,分段线性混沌映射)作为混沌映射的典型代表,数学形式简单,具有遍历性和随机性。其公式定义描述如下:


x ( t + 1 ) = { x ( t ) p , p ≤ x ( t ) < p x ( t ) − p 0.5 − p , p ≤ x ( t ) < 0.5 1 − p − x ( t ) 0.5 − p , 0.5 ≤ x ( t ) < 1 − p 1 − x ( t ) p , 1 − p ≤ x ( t ) < 1 \begin{equation} x(t+1)=\left\{ \begin{array}{lr} \frac{x(t)}{p}, p \le x(t) \lt p \\ \frac{x(t)-p}{0.5-p}, p \le x(t) \lt 0.5 \\ \frac{1-p-x(t)}{0.5-p}, 0.5 \le x(t) \lt 1-p \\ \frac{1-x(t)}{p}, 1-p \le x(t) \lt 1 \end{array} \right . \end{equation} x(t+1)= px(t),px(t)<p0.5px(t)p,px(t)<0.50.5p1px(t),0.5x(t)<1pp1x(t),1px(t)<1
其中, p是该映射的控制参数, p ∈ [ 0 , 1 ] p \in [0,1] p[0,1] ; x(t) 为产生的随机迭代值, x ( t ) ∈ [ 0 , 1 ] x(t) \in [0,1] x(t)[0,1]

下图是PWLCM混沌系统产生的伪随机序列的分布图,从图中可以看出PWLCM混沌映射产生的伪随机序列非常均匀。

在这里插入图片描述

python代码
import sys
import matplotlib.pyplot as plt
import cv2
import numpy as np


def pwlcm(x0, p, T):
    x = np.array([])
    y = np.array([])
    for i in range(T):
        if x0 >= 0 and x0 < p:
            x0 = x0 / p
        elif x0 >= p and x0 < 0.5:
            x0 = (x0 - p) / (0.5 - p)
        elif x0 >= 0.5 and x0 < 1 - p:
            x0 = (1 - p - x0) / (0.5 - p)
        elif x0 >= (1 - p) and x0 < 1:
            x0 = (1 - x0) / p
        x = np.append(x, i)
        y = np.append(y, x0)
    return x, y


def main():
    # 设置迭代次数
    T = 10000
    p = 0.3456789012
    x0 = 0.1234567890
    x, y = pwlcm(x0, p, T)
    # 绘制图像
    plt.rcParams['font.sans-serif'] = ['SimHei']  # 中文乱码
    plt.scatter(x, y, s=10, marker='.')
    plt.xlabel("t", fontdict={'fontsize': 20})
    plt.ylabel("x(t)", fontdict={'fontsize': 20})
    plt.rcParams.update({'font.size': 20})
    plt.xticks(fontsize=20)
    plt.yticks(fontsize=20)
    plt.show()


if __name__ == '__main__':
    main()


http://www.kler.cn/news/17465.html

相关文章:

  • 日语学习(一)
  • flink-on-yarn两种提交模式及其区别
  • 【Linux问题合集001】Linux中如何将用户添加到sudo组中的步骤
  • 武忠祥老师每日一题||不定积分基础训练(六)
  • Lattics ——一款简单易用、好看强大的知识管理工具
  • 【Spring Security第一篇】初始Spring Security、表单认证、认证与授权
  • Docker安全最佳实践
  • 算法的时间复杂度和空间复杂度(友友们专属限定版)
  • linux常用操作
  • Java ---比较器
  • 武忠祥老师每日一题||定积分基础训练(五)
  • java基础:接口的定义与实现
  • 今日事务java所感
  • 深入源码理解redis数据结构(一)
  • 从 Elasticsearch 到 Apache Doris,10 倍性价比的新一代日志存储分析平台
  • IronOCR 2023.4.13 Crack
  • 【移动端网页布局】流式布局案例 ⑥ ( 多排按钮导航栏 | 设置浮动及宽度 | 设置图片样式 | 设置文本 )
  • JDK17新特性之--新的Compact Strings(JEP 254)
  • 以两分钟了解Python之SQLAlchemy框架的使用
  • 腾讯云的cdn怎么配置|腾讯云CDN配置教程
  • ps磨皮插件专用智能磨皮插件 AI算法美颜 提高P图效率
  • 如何在Emacs中设置字体大小?- 探索Emacs的设置字体大小方法
  • 微信小程序——自定义组件
  • 关于数据倾斜
  • 【Linux】基础IO——库函数与系统调用的关系
  • 牛客刷SQL题Day5
  • Golang中sync.Pool详解及使用方法
  • ( “ 图 “ 之 拓扑排序 ) 210. 课程表 II ——【Leetcode每日一题】
  • 服务器中了勒索病毒,malox勒索病毒的加密方式及如何应对勒索病毒攻击
  • 【刷题笔记】二维数组地址计算+算法分析+进制转换