混沌系统在图像加密中的应用(一维离散logistic混沌映射)

混沌系统在图像加密中的应用(一维离散logistic混沌映射)

一、logistic混沌映射

Logistic混沌映射,也叫虫口模型,表达式简单且性能优良,是最常用的混淹映射之一,表达式如下:

x n + 1 = f ( x n ) = μ ⋅ x n ⋅ ( 1 − x n ) 0 < x n < 1 , n = 1 , 2 , ⋯ {{x}_{n+1}}=f\left( {{x}_{n}} \right)=\mu \cdot {{x}_{n}}\cdot \left( 1-{{x}_{n}} \right) \\ 0<{{x}_{n}}<1,n=1,2,\cdots \\ xn+1=f(xn)=μxn(1xn)0<xn<1,n=1,2,
其中 [ x n ∈ ( 0 , 1 ) ] , [ x n + 1 ∈ ( 0 , 1 ) ] [{{x}_{n}}\in (0,1)],[{{x}_{n+1}}\in (0,1)] [xn(0,1)][xn+1(0,1)]
[ 3.57 ≤ μ ≤ 4 ] [3.57\le \mu \le 4] [3.57μ4]
系统进入混沌状态。

二、logistic特性分析

1.时序图

通过N次迭代方程,描绘出每一步的轨迹,称之为时序图,这里我们迭代公式1000次,当μ=3.5时,Logistic混沌映射时序图如下,时序图并不是乱序的,因此不是混沌状态。
在这里插入图片描述
当μ=3.8时,Logistic混沌映射时序图如下,时序图是乱序的,因此是混沌状态。
在这里插入图片描述

2.分插图

混沌系统的分岔图(Bifurcation diagram)是一种用于可视化系统演化过程中的稳定性和周期性的工具。在混沌系统中,微小的参数变化可能会导致系统的行为发生显著变化,从而产生分岔现象。
混沌系统的分岔图通常使用系统参数作为横坐标,而系统状态、稳定点或周期轨道的值作为纵坐标。通过系统参数的逐步改变,我们可以观察到纵坐标上的分岔现象。每一个参数值对应一个系统状态,而分岔图显示了这些状态的演化。

在Logistic分岔图中,我们会看到分岔形成。当参数μ处于[3.57,4]这个范围内时,系统状态突然分叉,导致系统同时存在多个稳定状态或周期状态。这些分支以分岔的方式延伸,形成了分岔图上的特征结构。
分岔图可以提供对混沌系统行为的直观理解。它展示了系统状态随参数变化而发生的相变现象,包括稳定状态、周期状态和混沌状态。通过观察分岔图,我们可以研究系统的动力学行为,如周期倍增、周期减半和混沌吸引子的特征。

3.李亚普洛夫指数图

李亚普洛夫指数和分岔图是对应的,当分岔图出现混沌时,李亚普洛夫指数会大于0,当分岔图没出现混沌时,李亚普洛夫指数会小于0。李亚普洛夫指数通常用 λ 表示。一个动力系统可能存在多个李亚普洛夫指数,每个指数对应系统在不同方向上的指数增长或指数衰减。
李亚普洛夫指数可以用于判断一个动力系统的混沌特性。如果系统的至少一个李亚普洛夫指数大于零,那么系统就是混沌的。此外,李亚普洛夫指数还可以用于测量系统的敏感性依赖性,即初始条件的微小变化可能会导致系统演化出完全不同的轨道。

求解一维离散混沌映射的李亚普洛夫指数需要使用以下公式:

李亚普洛夫指数 (λ) = lim (n → ∞) [1/n * Σ log(|f’(x_i)|)]

其中,
λ 是李亚普洛夫指数。
n 表示迭代次数,将其趋近于无穷以获得准确结果。
f’(x_i) 是混沌映射函数在点 x_i 处的导数值。
Σ 表示求和符号,对所有 i 进行求和。
log 表示以自然对数为底的对数函数。

对于Logistic混沌映射,我们需要按照以下步骤计算李亚普洛夫指数:
(1)初始化初始条件 x_0。
(2)迭代计算混沌映射函数的值 f(x_i) 并记录每一次的值。
(3)计算导数值 f’(x_i)。
(4)对于每一次迭代记录的 f’(x_i) 值,计算 log(|f’(x_i)|)。
(5)将所有 log(|f’(x_i)|) 的值进行累加求和。
(6)将累加求和的值除以迭代次数 n。
得到的结果即为李亚普洛夫指数 (λ)。可以看出,当我们n=1000次时,μ处于[3.57,4]这个范围内时,λ是大于0的。
在这里插入图片描述

三、python代码

这里我给出logistic相图的python代码

import matplotlib.pyplot as plt

def logistic(x,n):
    for i in range(n):
        x1 = u*x*(1-x)
        x = x1
        listx.append(x)
        listt.append(i)

if __name__ == '__main__':
    listx = []
    listt = []
    u = 3.8  # 系统参数
    logistic(0.1, 1000)
    fig1 = plt.figure()
    plt.scatter(listt, listx, c="b", s=0.75)
    plt.grid()
    plt.xlabel(r'$t$')
    plt.ylabel(r'$x$')
    plt.show()

1维混沌映射 logistic LE指数图代码链接:
https://download.csdn.net/download/weixin_42207434/88270027?spm=1001.2014.3001.5501

1维混沌映射logistic分岔图python代码链接
https://download.csdn.net/download/weixin_42207434/88270002?spm=1001.2014.3001.5501

  • 2
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Owl City、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值