取餘運算的Lyapunov指數

2021-07-09 02:51:37 字數 1811 閱讀 4133

一、取餘運算

1、  畫出取餘運算的運動軌跡

n=100;              %給定迭代次數

x=ones(1,n)*0.6; %對x賦初值

for i=2:n

x(i)=mod(2*x(i-1),1);

endplot(x(2:n)) %從第二個點開始畫圖

問題:在50多步的時候,輸出的結果與我們想象的有出入,並且導致之後的結果全為0。

原因:下圖是x變數值的變化:

從表中可以發現在第43步時,已經產生了錯誤的結果,繼而導致最終為0.

錯誤結果的產生與matlab中小數的儲存方式有關

解決方案:為了消除有儲存方式帶來的誤差,可以通過兩種方式解決這個問題:

1、 通過使用取整函式roundn,對x進行百分位取整

2、 將資料擴大乙個數量級,即令x為1-9之間的整數,在取余時,對10取餘。

n=100;              %給定迭代次數

x=ones(1,n)*0.6; %對x賦初值

for i=2:n

x(i)=roundn(mod(2*x(i-1),1),-2);%利用roundn函式取整到x的百分位

endplot(x(2:n)) %從第二個點開始畫圖

2、計算lyapunov指數(**方式)

取n=100,x0=0.6,∆x=0.1,則x1=0.7,

n=100;              %給定迭代次數

delta=0.1;

x0=ones(1,n)*0.1; %對x賦初值

x1=ones(1,n)*(0.1+delta);

for i=2:n

x0(i)=roundn(mod(2*x0(i-1),1),-2);%利用roundn函式取整到x的百分位

x1(i)=roundn(mod(2*x1(i-1),1),-2);

endl=log(abs(x1(n)-x0(n))/delta)/(n-1)

l =0.0070

當n取的很大時,lyapunov指數越來越小。

二、用lyapunov第一方法求區域性穩定性

與第一題無關

syms x y

f=[y-x*(x^2+y^2);-x-y*(x^2+y^2)];

v=[x,y];

r=jacobian(f, v); %求雅克比矩陣

r=subs(r,[x,y],[0,0]);

eig(r) %雅克比矩陣的特徵值

ans =

-i i

特徵值是一對實部為0的共軛復根,所以系統平衡狀態0在李雅普諾夫意義下穩定。

取餘運算規則

今天遇到乙個在as3,js裡面顯示int64 問題。js,as只有number型別,最大能支援的整數是 2 53 及 9007199254740992 到9007199254740992 當數字超過限度時,只能直接顯示對應的字串,無法用number來轉化。網上找了乙個開源的庫,將int64分成2個3...

(分治)取餘運算

題目描述 輸入b,p,k的值,求b p mod k的值。其中b,p,k k為長整型數。輸入 輸入b,p,k的值。輸出 求b p mod k的值。樣例輸入 2 10 9 樣例輸出 2 10 mod 9 7 餘數公式 b的p次方可以拆著來算,遞推公式 p 0 1 p 2 0 f p f p 2 f p ...

1497 取餘運算

時間限制 1 s 空間限制 128000 kb 題目等級 鑽石 diamond 題解輸入b,p,k的值,程式設計計算bp mod k的值。其中的b,p,k k為長整型數 2 31範圍內 輸入描述 input description b p k 輸出描述 output description 輸出b ...