2012-06-29 46 views
0

UPDATE 我在試圖找到在鏈接LE中給出的Lyapunov指數。我試圖通過採取以下方案來理解我的情況。這些都是一組常微分方程(這些只是用於測試如何與COS和sin作爲ODE工作)常規微分方程式表示中的誤差

f(1)=ALPHA*(y-x); 
f(2)=x*(R-z)-y; 
f(3) = 10*cos(x); 

x=X(1); y=X(2); cos(y)=X(3);

F1裝置dx/dt; F2 dy/dt和f3在這種情況下將是-10sinx。然而,當表達爲x = X(1); y = X(2);我不確定如何表達cos。這只是一個試驗性的例子,我正在這樣做,以便知道如何使用方程式,我們有一個cos,sin等術語作爲另一個變量的函數。

當使用ODE45解決這些方程

[T,Res]=sol(3,@test_eq,@ode45,0,0.01,20,[7 2 100 ],10); 

它引發以下錯誤

???試圖訪問(2);索引必須是正整數或邏輯。

Error in ==> Eq at 19 
x=X(1); y=X(2); cos(x)=X(3); 
  1. 是我代表x=X(1); y=X(2); cos(y)=X(3);好嗎?
  2. 如何解決錯誤? 謝謝

回答

1

沒有您的表示是完全錯誤的。 你不可能以這種方式設置值! 首先,您嘗試將X(3)的值分配給函數

第一我不知道您瞭解

x=4 

4=x 

,這是完全不同的含義之間的區別。如果你明白這一點,你會發現你不可能使用cos(x)=X(3)進行分配。

第二:你打的功能是什麼sol()?你有沒有定義它?

第三,要解決或評估ODE,您應該在matlab中使用devalsolve函數。他們的幫助文件應該給你的例子。

+0

謝謝你的答覆。好吧,我正在嘗試做這樣的事情給這個鏈接http://www.mathworks.com/matlabcentral/fileexchange/4628-calculation-lyapunov-exponents-for-ode SO鏈接,作者使用ode_45並設置了這樣的值。在我的情況下,問題是餘弦函數,因爲它依賴於x變量,因此如何區分和分配值?請幫助。 –

+0

您鏈接的頁面似乎是用於查找lyapunov指數。那是你正在嘗試做什麼?如果不是,你想做什麼?上面陳述中的'f'是否意味着'X'的導數,即。 DX/dt的?如果是這樣,請發佈完整的函數定義(以'function'開頭)和'sol'的完整定義。沒有這個,我們不能幫助! –

+0

我試圖找到lyapunov指數和f1確實意味着dx/dt;在這種情況下f2 dy/dt和f3將是-10sinx。但是,當表達爲x = X(1); y = X(2); i我不確定如何表達cos。這只是一個試驗性的例子,我知道如何處理方程式,其中有cos,sin等術語作爲另一個變量的函數。 –