日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > 循环神经网络 >内容正文

循环神经网络

matlab 极限环,ODE in MATLAB

發布時間:2024/3/24 循环神经网络 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 matlab 极限环,ODE in MATLAB 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

寫此文的目的是要想要以最簡單易懂的語言來總結一下MATLAB中求解微分方程的思路和步驟。固然,網上很多關于此類的技術型文章,但往往一看下來發現,文章中的友情鏈接比文章字數還多,要了解這一篇文章,你要先了解那個;要了解那個,你又要了解那個那個;以此類推。了解完了,花都謝了。我在這里要寫的是娛樂型文章,即試圖用最少的字數陳述出MATLAB的求解微分方程方法,看完后可以記得清楚且不亦樂乎。其實個人十分推薦MATLAB中的幫助文件,內容實在是特別給力,簡明的不能再簡明了。可惜了是英文寫的,即使是天天要面對英語的我,也頗為頭疼。那么以下我將結合我對MATLAB中幫助文檔的理解,提出我對求解最簡單微分方程的方法的總結。以求解一個經典的非線性方程為例。

做一個最基本的假設:你們都看過高數。

一。老濕發話了:童鞋們,求解一下這個方程,判斷她是否穩定。要是穩定,那么她是否存在極限環:

一看明白了,這不就是傳說中的范德普方程。地球人都知道她穩定并有極限環。現在我們就看看如何用MATLAB求解她的軌跡。

二。一般的計算機求解方程的方法無外乎是這樣:首先把該方程改寫成一個規范的形式,一般使用狀態空間表示法;而后調用已有的算法進行求解;最后對得出的結果進行處理,比如畫圖之類的。接下來就對這三大步分別作出解釋。

三。輸入待求解的方程。

首先我們知道,狀態空間的標準形式(自由系統)是:

這里X是列向量,F是作用于列向量的函數,可以是線性也可以是非線性。范德普方程可以改寫成這樣的標準形式:

MATLAB中關于輸入輸入待解方程的語句特別簡單。需要先定義一個普通函數,函數名任意,姑且叫做myFcn,格式如下

function xdot = myFcn (t,

x)

需要注意的是,函數必須含有t,

x兩個參數,名稱可以自己任意定。xdot是這個函數本身的返回值,只出現在這個函數內部,因此也可以任意定。

定義中的x被視為是一個列向量,x(i)表示列向量中的第i個分量。那么F函數的每一個分量即簡單地用表達時給出即可。其中的自變量可以引用x(i)。以范德普方程為例:

xdot = [x(2) ;

u(1-x(1)^2)*x(2)-x(1)]

于是,這兩句話便構成了待解函數。

四。調用MATLAB函數進行求解

通常人工求解微分方程需要知道初始值,計算機求解也不例外。另外,由于非線性方程一般只有數值解,故計算精度也可以調整。這些都是可以自己調整的參數。

調用MATLAB計算求解常微分方程的模式很簡單,格式為:

[t, x] = ode45(@myFcn, [開始時間結束時間],

[初始值列向量],

options)

注意到求解出來的結果是[t,

x]即一堆數,所以需要我們進行后處理比如畫圖之類的。

ode45表示了MATLAB中的一種內置計算微分方程的算法,最為常用,出于娛樂目的,就先用這個。

@表示待求解的方程,如myFcn。

[開始時間結束時間]表示求解的時間段,不必定義間隔。

[初始值列向量]就不用多說了。通常在求解之前定義一個變量x0列向量表示初始值,然后輸入起來就方便多了。

options本身是一個變量。注意,她的名稱不固定,但是他是一個以結構體為類型的變量。options很重要,稍后討論。

五。進行后處理。在得到[t,

x]后可以自己用plot神馬的進行畫圖。不過我一般不這樣,各位看官不必驚慌。

六。options的用法。

options在MATLAB幫助中是這樣定義格式的:

options

= odeset (“Name”, Value, “Name”, Value, …)

意思是,options這個變量要用到odeset這個函數來對他進行賦值。而odeset這個函數的參數必須是成對出現的:一個名稱對應一個數值。

我們要用到的是這樣的:

options=

odeset(“OutputFcn”, @odephas2, “reltol”, 1e-5);

注意,odeset中的參數名稱不可任意定,因為都是預定義好的。”OutputFcn”使用預定義的函數進行輸出,而與定義的函數有好幾種,使用@進行選擇,我們選odephas2即畫相平面圖(phase

portrait)。之后的那個參數表示相對誤差的最大允許值,不說也明白。

有一個問題,用odephas2畫出的圖圖不好看,因為上面打了好多圈圈。解決辦法是找到該文件,修改其中所有的plot語句即可,把那個”-o”去掉就行了。

七。就是這個樣了。總結一下,求解范德普方程可以用如下語句:

首先是函數定義:

function xdot = myFcn (t, x)

xdot = [x(2) ; u(1-x(1)^2)*x(2)-x(1)]

其次是主程序:

% Solving options predetermined

options=odeset('OutputFcn',@odephas2,'reltol',1e-5);

% Solving vdp equation withdifferent ini

conditions

for a = -3 : 0.1 :

3

b1=sqrt(25-a^2);

b2=-sqrt(25-a^2);

%

Solve the problem

[t,y]=ode45(@myFcn,

[0 20], [a b1], options);

hold

on

[t,y]=ode45(@myFcn,

[0 20] ,[a b2], options);

hold

on

end

grid on

附一張圖圖,即范德普方程求解曲線:

總結

以上是生活随笔為你收集整理的matlab 极限环,ODE in MATLAB的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。