一維離散混沌對映Lyapunov指數的計算

2021-08-20 06:01:07 字數 2769 閱讀 8915

這裡選取logistic對映作為例子,給出定義法的計算程式(python 實現)

#-*-coding:utf-8-*-

from sympy import *

n=5000

deflogistic

(x,n):

for i in range(n):

y = 4 * x * (1 - x)

x = y

return x

defle_calculate

(): a = 0.123456789

# 混沌的初始值

count = 0

sum_value = 0

# 初始的求和值為0

x = symbols('x')

expr = 4 * x * (1 - x) # 表示式

diff_expr = diff(expr, x) # 對表示式進行求導,得到導數的表示式。該表示式固定(帶引數)

# 先迭代混沌方程1000次消除初始影響,以第1001次的返回值作為初值

a = logistic(a, 1001)

while (count < n):

diff_value = diff_expr.subs(x, a) # 帶入當前迭代值,得到當前的導數值(數值)

diff_value_ln = ln(abs(diff_value)) # 對當前導數值取絕對值然後取對數

sum_value = sum_value + diff_value_ln # 計算求和值

a = logistic(a, 1) # 每次只迭代一次,獲取當前的迭代值

count = count + 1

le_value = sum_value / n

print(le_value)

if __name__ == '__main__':

le_calculate()

分段線性logistic(plm)的le

from sympy import *

import numpy as np

np.set_printoptions(suppress=true)

# 4.57232016110001

u = 4

n = 64

n=40000

defplm

(x,n):

for z in range(n):

m=float(n)

i=int(x*m)+1

#i是乙個整數,從0-n

k=float(i)

if(x==1):

x1=x-1/(100*m)

elif (i==x*m+1):

x1=x+1/(100*m)

elif(i%2==1):

x1=m*m*u*(x-(k-1)/m)*(k/m-x)

else:

x1=1-m*m*u*(x-(k-1)/m)*(k/m-x)

x=x1

return x

defdiff_expr_calculate

(a):

x = symbols('x')

m = float(n)

i = int(a * m) + 1

k = float(i)

if (a == 1):

expr1 = x - 1 / (100 * m)

diff_expr1 = diff(expr1, x)

return diff_expr1

elif (i == a * m + 1):

expr2 = x + 1 / (100 * m)

diff_expr2 = diff(expr2, x)

return diff_expr2

elif (i % 2 == 1):

expr3 = m * m * u * (x - (k - 1) / m) * (k / m - x)

diff_expr3 = diff(expr3, x)

return diff_expr3

else:

expr4 = 1 - m * m * u * (x - (k - 1) / m) * (k / m - x)

diff_expr4 = diff(expr4, x)

return diff_expr4

defle_calculate

(): a = 0.123456789

# 混沌的初始值

sum_value = 0

# 初始的求和值為0

x = symbols('x')

a = plm(a, 1001)

for i in range(n):

diff_expr=diff_expr_calculate(a) #根據不同的迭代值,得到不同的求導表示式

diff_value = diff_expr.subs(x, a) # 帶入當前迭代值,得到當前的導數值(數值)

diff_value_ln = ln(abs(diff_value)) # 對當前導數值取絕對值然後取對數

sum_value = sum_value + diff_value_ln # 計算求和值

a = plm(a, 1) # 每次只迭代一次,獲取當前的迭代值

print(i)

le_value = sum_value / n

print(le_value)

if __name__ == '__main__':

le_calculate()

幾個離散混沌對映系統 混沌函式

0.背景知識 1 混沌系統是指在乙個確定性系統中,存在著貌似隨機的不規則運動,其行為表現為不確定性 不可重複 不可 這就是混沌現象。2 lyapunov指數是衡量系統動力學特性的乙個重要定量指標,它表徵了系統在相空間中相鄰軌道間收斂或發散的平均指數率,當其指數大於0時,此時系統具有混沌性質。1.lo...

一維離散小波變換過程

小波變換的本質不過是一種數學變換 在這裡僅僅討論小波的小波變換過程中對輸入的訊號進行了怎樣的操作,盡量不涉及內部細節和數學原理 1.一維小波變換的輸入變數是乙個 1 n 的矩陣,你也可以把它理解為訊號 函式等等 2.進行離散小波變換需要預先指定兩個濾波器,乙個是高通濾波器 另乙個是低通濾波器 3.將...

奇怪吸引子 乙個奇妙的四維混沌吸引子

奇怪吸引子是混沌學的重要組成理論,用於演化過程的終極狀態,具有如下特徵 終極性 穩定性 吸引性。吸引子是乙個數學概念,描寫運動的收斂型別。它是指這樣的乙個集合,當時間趨於無窮大時,在任何乙個有界集上出發的非定常流的所有軌道都趨於它,這樣的集合有很複雜的幾何結構。由於奇怪吸引子與混沌現象密不可分,深入...