解微分方程+ode求解器- 碼上快樂

文章推薦指數: 80 %
投票人數:10人

nbsp 該命令中可以用D表示微分符號,其中D 表示二階微分,D 表示三階微分,以此類推。

求精確解.微分方程r dsolve eqn , eqn ,..., cond , cond ,... 碼上快樂 首頁 榜單 標簽 關於 搜索 相關內容   簡體   繁體 解微分方程+ode求解器 本文轉載自   zuiaimiusi   查看原文   2019-08-0920:48   485    數學建模_機器學習   該命令中可以用D表示微分符號,其中D2表示二階微分,D3表示三階微分,以此類推。

求精確解 1.微分方程 r=dsolve('eqn1','eqn2',...,'cond1','cond2',...,'var'). 解釋如下:eqni表示第i個微分方程,condi表示第i個初始條件,var表示微分方程中的自變量,默認為t。

>>dsolve('Dy=3*x^2','y(0)=2','x') ans= x^3+2  2.微分方程組 >>[x,y]=dsolve('Dx=y','D2y-Dy=0','x(0)=2','y(0)=1','Dy(0)=1') x= exp(t)+1 y= exp(t) 3.求解微分方程組在初始條件x(t = 0)= 1, y(t =0 )= 0 下的特解,並畫出解函數的圖像。

>>[x,y]=dsolve('Dx+5*x+y=exp(t)','Dy-x-3*y=0','x(0)=1','y(0)=0','t') x= exp(t*(15^(1/2)-1))*(15^(1/2)-4)*((13*15^(1/2))/330-exp(2*t-15^(1/2)*t)*(15^(1/2)/165+1/22)+1/22)-exp(-t*(15^(1/2)+1))*(exp(2*t+15^(1/2)*t)*(15^(1/2)/165-1/22)+(15^(1/2)*(15^(1/2)-13))/330)*(15^(1/2)+4) y= exp(-t*(15^(1/2)+1))*(exp(2*t+15^(1/2)*t)*(15^(1/2)/165-1/22)+(15^(1/2)*(15^(1/2)-13))/330)+exp(t*(15^(1/2)-1))*((13*15^(1/2))/330-exp(2*t-15^(1/2)*t)*(15^(1/2)/165+1/22)+1/22) >>ezplot(x,y)  ezplot與plot的區別 plot(x,y)以x為橫坐標,y為縱坐標繪制曲線 plot(x,y1,x,y2,...)以x為橫坐標值,以y1,y2...元素為縱坐標值繪制多條曲線 plot中x,y的表達式是已知的或者是形如y=f(x)的表達式 而ezplot是畫出隱函數圖形,是形如f(x,y)=0這種不能寫出像y=f(x)這種函數的圖形,explot無需數據准備,直接畫出函數圖形       求近似解 ode求解器 求解器 問題類型 精度 何時使用 ode45 非剛性 中 大多數情況下,您應當首先嘗試求解器ode45。

ode23 低 對於容差較寬松的問題或在剛度適中的情況下,ode23可能比ode45更加高效。

ode113 低到高 對於具有嚴格誤差容限的問題或在ODE函數需要大量計算開銷的情況下,ode113可能比ode45更加高效。

ode15s 剛性 低到中 若ode45失敗或效率低下並且您懷疑面臨剛性問題,請嘗試ode15s。

此外,當解算微分代數方程(DAE)時,請使用ode15s。

ode23s 低 對於誤差容限較寬松的問題,ode23s可能比ode15s更加高效。

它可以解算一些剛性問題,而使用ode15s解算這些問題的效率不高。

ode23s會在每一步計算Jacobian,因此通過odeset提供Jacobian有利於最大限度地提高效率和精度。

如果存在質量矩陣,則它必須為常量矩陣。

ode23t 低 對於僅僅是剛度適中的問題,並且您需要沒有數值阻尼的解,請使用ode23t。

 ode23t可解算微分代數方程(DAE)。

ode23tb 低 與ode23s一樣,對於誤差容限較寬松的問題,ode23tb求解器可能比ode15s更加高效。

ode15i 完全隱式 低 對於完全隱式問題f(t,y,y’)=0和微分指數為1的微分代數方程(DAE),請使用ode15i。

      1. 求解微分方程初值問題的數值解,求解范圍為區間[0,0.5]。

inline()通俗的來說就是用於定義函數,使用inline定義一個函數 給a,b,x賦值即可得到y >>f=inline('a*x+b','a','b','x'); >>f(1,2,3) ans= 5    求常微分方程的數值解,MATLAB的命令格式為:[t,y]=solver('odefun',tspan,y0,options)其中solver選擇ode45等函數名,odefun為根據待解方程或方程組編寫的m文件名,tspan為自變量的區間[t0,tf],即准備在那個區間上求解,y0表示初始值,options用於設定誤差限制。

命令格式為:options=odeset('reltol',rt,'abstol',at)rt輸入相對誤差,at輸入絕對誤差。

  參考:https://wenku.baidu.com/view/b4a6fecc6aec0975f46527d3240c844768eaa06f.html   × 免責聲明! 本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。

如果侵犯了您的隱私權益,請聯系本站郵箱[email protected]刪除。

猜您在找 ode45求解微分方程(MATLAB) MATLAB求解常微分方程:ode45函數與dsolve函數 用Matlab求解微分方程 Python解微分方程 MATLAB-1個實例-歐拉法、改進歐拉法、ode45求解微分方程 利用python求解微分方程 MATLAB-求解微分方程(組) 求解微分方程的一些方法 Matlab求微分方程的符號解1 MATLAB解微分方程[轉]   粵ICP備18138465號   ©2018-2021CODEPRJ.COM



請為這篇文章評分?