已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
在Matlab中使用ode45簡介Matlab中常微分方程常用的函數(shù)是ODE45,這個函數(shù)能夠利用-龍哥庫塔法-有效求解帶時間變量步長的計(jì)算。Ode45用于求解如下的一般問題:(1)其中,時間t是獨(dú)立變量,x為時間相關(guān)矢量,是時間t和x的函數(shù)。當(dāng)(1)右邊的是固定的,且給定x的初始值,那么問題的解是唯一的。在ME175中,解法是不完整的,但是只要你解決了問題,就可以獲得ODE代表的系統(tǒng)運(yùn)動趨勢。這有利于得到一個直觀的印象,看起來很復(fù)雜的常微分方程,代表的質(zhì)點(diǎn)運(yùn)動軌跡確實(shí)簡單明了的。以下簡要解釋如何得到運(yùn)動軌跡:第一步:對給定的ODE方程進(jìn)行降階處理,得到一系列一階方程這就是你要做的第一步,在一張草稿紙上處理。例如,給定ODE方程如下:(2)對本問題,矢量x有兩個組成分量:y和,或(3)且(4)其中,用(3)中的式子代表了y,于是把(2)改寫為(4)。如果求解的問題有更多階數(shù)更多變量呢?例如,我們除了有上面的方程(2),同時還有以下的方程:(5)那么,我們可以通過構(gòu)造更大的矢量x同時求解y,z: (6)然后 (7)以及(8)其中,y變量和z變量的放置位置對求解不造成影響。實(shí)際上,任意次序都是有效的,例如 和但是重要的是,在整個計(jì)算過程中,你使用的順序都必須和一階ODE方程中定義的變量順序相同。之后,如果你使用的是(7)中給定的的式子,那么系統(tǒng)的一階ODE方程,由以下方程組組成。(10)而涉及的表征變量結(jié)果如下:(11)基本上,可以處理任意數(shù)量的高階ODE方程。重要的是把它們處理成多個一階的ODE方程,并且確保記住被求解的矢量X中,不同變量所分配的順序。第二步 編寫代碼既然你已經(jīng)有所求解問題的一階格式,在你編程的主要代碼中,將會用到以下的命令fname是函數(shù)的M文件名用于求解方程(1)右邊代數(shù)式的值。這個函數(shù)將被輸入一階ODE系統(tǒng)中,并且被積分(見(10),(11)。后面,將會更詳細(xì)的解釋。注:當(dāng)然關(guān)于ODE45如何積分給定的方程有細(xì)微的差別,但是對于簡單的問題,不分先后次序的積分,是可以接受的。tspan 是矢量定義了積分的起始點(diǎn)和終點(diǎn),同時也定義了時間步長。例如,我們需要積分t=0到t=10,希望步數(shù)是100步,那么tspan=0:0.1:10或者tspan=linspace(0,10,100).xinit是初始條件矢量。確保初始值的順序和給定的x中變量和它倒數(shù)的順序是一致的。同時注意如果x有5個變量,那么同時要輸入5個初始值。option這個在matlab的幫助文件中有很好的說明。對于大部分的問題,使用默認(rèn)值就可以滿足計(jì)算要求。t是獨(dú)立變量,計(jì)算數(shù)組x在時間點(diǎn)t的數(shù)值。這個矢量不必等于tspan,ODE45自動調(diào)節(jié)步數(shù)以取得最大的效率和精確度。(在快速變化部分采用小步長,在變化緩慢部分采用大步長)。x相關(guān)內(nèi)容如下。X是數(shù)組或矩陣,大小為length(t)*length(xinit)。每一列x代表不同的因變量。例如,為簡單假定t=0,1,2.,10,將會計(jì)算函數(shù)在11個點(diǎn)的值。(12)如果是x的第四個變量,那么得到了在t=0時候的值,得到了在t=6時候的值,得到了t=10時候的值。簡而言之,代表x的第k個變量,k=1與變量y相關(guān),k=2與變量相關(guān)。計(jì)算所有變量在某一時間點(diǎn)j的數(shù)值注:在產(chǎn)生hokey pokey舞蹈前,史前兒童圍坐在篝火前齊唱:You put your left foot inYou put your left foot outYou put your left foot in And you shake it all about當(dāng)你使用matlab函數(shù)ODE45及時完成作業(yè)時,x就是要做得全部內(nèi)容。不幸的是由于缺乏matlab軟件,使得這本書過時了。命令的作用是重新定義變量。、,然后,如果使用變量順序?yàn)?,?yīng)該這么寫程序:當(dāng)然,也不應(yīng)該認(rèn)為定義y,ydot麻煩。直接表達(dá)為x的形式(例如,使用代表y),清晰的定義方式有利于后面的調(diào)試。以下,你將以(或是被要求)繪圖的形式描述感興趣的軌跡:質(zhì)點(diǎn)隨時間運(yùn)動軌跡,在平面中表示角度和徑向關(guān)系等。繪圖和繪制子圖的命令在matlab幫助文件中有清晰的說明,這里不再詳細(xì)說明。記住如果你想在一張圖中放多個圖,應(yīng)該使用子圖的概念,當(dāng)然在一張圖片中畫多個圖,不是一個好主意。別忘記給圖加標(biāo)簽:包括標(biāo)題,x軸,y軸的含義,如果多條曲線應(yīng)該分別標(biāo)明。最后,請注意在中包含的僅僅是變量而已,依據(jù)自己的喜好使用字母,T替換t,x0替換xinit都是可以的。只有記住使用新變量名,之后的每個引用都用一樣的名稱。另一個普遍的錯誤在于,同一變量的重復(fù)定義。例如,定義,如果足夠幸運(yùn)的話,會有錯誤警告;不幸的話,這種錯誤很難發(fā)現(xiàn),要花數(shù)小時時間檢查您的程序以解決問題。此外,fname是什么呢?回憶下,我們還沒有告訴matlab程序應(yīng)該對什么函數(shù)進(jìn)行積分,是吧?這就是為什么需要fname文件,fname文件含有所有之前在稿紙上重寫的ODE一階函數(shù)。你可以對這個文件起任意的名稱,只要與中使用的fname一致。例如,你對fname取名superman那么是對的,而就不正確了。更進(jìn)一步說,函數(shù)不必須像在原始代碼中寫的在同一個m文件中,一些人喜歡在程序末尾書寫子程序,特別是代碼不長,比較簡單的時候。例如,你的代碼名稱ME175example文件,那么m文件將如下:Function dxdt=ME175example(t,x)%這里 t,x 和 dxdt are 只是變量而已。你可以起任意名稱%只要 t 是獨(dú)立變量,而X是因變量%dxdt 是推到的一階因變量% 定義常數(shù)m= 1;%定義變量使之清晰易懂%Recall that x = y, ydot, z, zdot, zdotdoty=x(1);ydot=x(2);z=x(3);zdot=x(4);zdotdot=x(5);%注意x僅僅是1列五行的數(shù)組%t,x = ode45(fname, tspan, xinit, options)%數(shù)組dxdt與x的大小相同dxdt = zeros(size(x);dxdt(1) = ydot;dxdt(2) = 1/m(5 x(2)exp(y) +y2); %This is ydotdotdxdt(3) = zdot;dxdt(4) = zdotdot;dxdt(5) = t-zdotdot+sin(z); %This is zdotdotdot%Note that the input arguments must be t and x (in that order) even in the case where t is notexplicitly used in the function.基本模板以下是基本模板,當(dāng)你想對一個高階常微分方程進(jìn)行積分時,把它復(fù)制黏貼到Matlab中Function 任何你想要的名字%定義起始時間tstat,終止時間tend,時間步數(shù)nTstart=?;Tend=?;N=?;Tspan=linspace(Tstart, Tend, N);%定義初始值,確保正確的順序Xinit=.; .; .; .;.;%獲得矢量x。把option設(shè)置為默認(rèn)值即可%定義輸出變量.%所需要畫圖的函數(shù) Subplot(?, ?, ?)Plot(需要的圖像)%plot3()畫3D圖Title( )Xlabel( )Ylabel( )Zlabel( )-%積分函數(shù),可以作為獨(dú)立m文件,或在本程序底部,語法如下Function dxdt=積分函數(shù)(t,x)%定義積分中使用的常數(shù)%定義新變量;%也可以不定義,這樣的好處是,便于其他人閱讀你的程序%寫下你得到的一階ODE方程dxdt=zeros(size(x)dxdt(1)=?;dxdt(2)=?;dxdt(3)=?;Etc.小結(jié):如果所有的步驟都對了,方程也是正確的。你將發(fā)現(xiàn)你的到的關(guān)系圖是很優(yōu)美的,不用你艱難的推到。干的好!最后,同樣地問題又多種不同的解法。多用matlab嘗試,你將有所發(fā)現(xiàn),比起其他算法有些算法非常有效率。我使用Matlab三年了,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學(xué)五年級數(shù)學(xué)整數(shù)小數(shù)四則混合運(yùn)算和應(yīng)用題教案示例
- 《新工傷保險》課件
- 2025年中考語文文言文總復(fù)習(xí)-教師版-專題02:文言文閱讀之虛詞意義和用法(講義)
- 《放射治療的護(hù)理》課件
- 石油工程師在油田開采中的作用
- 土木工程師工作總結(jié)
- 醫(yī)療行業(yè)技術(shù)工作總結(jié)
- 點(diǎn)心店服務(wù)員工作總結(jié)
- 高一班主任期中工作總結(jié)呵護(hù)成長點(diǎn)滴培育之心
- 嬰幼兒科護(hù)理工作總結(jié)
- 10《吃飯有講究》教學(xué)設(shè)計(jì)-2024-2025學(xué)年道德與法治一年級上冊統(tǒng)編版
- 2024年中考數(shù)學(xué)二輪復(fù)習(xí)二次函數(shù)綜合(含答案)
- 拆除鋁合金門窗及附窗安全協(xié)議書
- 體外診斷試劑-C反應(yīng)蛋白(CRP)測定試劑盒(膠乳增強(qiáng)免疫比濁法)臨床評價報告-血清
- 八年級物理上冊(滬粵版2024)新教材解讀課件
- 人教版數(shù)學(xué)四上《大數(shù)的認(rèn)識》說課稿
- 氣胸講課課件
- 2024年典型事故案例警示教育手冊15例
- 沖突影響和高風(fēng)險區(qū)域礦產(chǎn)負(fù)責(zé)任供應(yīng)鏈的盡職調(diào)查指南
- 《植物營養(yǎng)學(xué)》課件
- 河南省鄭州市鄭東新區(qū)2023-2024學(xué)年五年級上學(xué)期期末語文試卷
評論
0/150
提交評論