MATLAB建模實例——微分方程

2021-02-19 工科男的Matlab學習日誌

歡迎關注「工科男的Maltab學習日誌」,採用Mardown文本編輯器編寫文章,全新排版升級,內容、代碼更簡潔,同時開通了視頻號,「工科男的日常」歡迎大家關注。 ——工科男

❞1 微分方程的解析解

求微分方程(組)的解析解命令:dsolve(『方程1』,『方程2』,…『方程n』,『初始條件',『自變量』)

記號: 在表達微分方程時,用字母D表示求微分,D2、D3等表示求高階微分.任何D後所跟的字母為因變量,自變量可以指定或由系統規則選定為確省。例如,微分方程 

例1求

dsolve('Du=1+u^2','t')

結果:u = tan(t+c)

例2求

y=dsolve('D2y+4*Dy+29*y=0','y(0)=0,Dy(0)=15','x')

結果為:

例3求微分方程組的通解。

[x,y,z]=dsolve('Dx=2*x-3*y+3*z','Dy=4*x-5*y+3*z','Dz=4*x-4*y+2*z', 't');
x=simple(x) % 將x化簡
y=simple(y)
z=simple(z)

結果為:

2 微分方程的數值解2.1 常微分方程的定義

在生產和科研中所處理的微分方程往往很複雜且大多得不出一般解。而在實際上對初值問題,一般是要求得到解在若干個點上滿足規定精確度的近似值,或者得到一個滿足精確度要求的便於計算的表達式。因此,研究常微分方程的數值解法是十分必要的。

對常微分方程: 

2.2 建立數值解法的一些途徑

設 

[1] 用差商代替導數若步長h較小,則有

故有公式:

此即歐拉法。

[2] 使用數值積分

對方程y'=f(x,y), 兩邊由x_到x_i+1積分,並利用梯形公式,有:

故有公式:實際應用時,與歐拉公式結合使用:對於已給的精確度 

[3] 使用泰勒公式以此方法為基礎,有龍格-庫塔法、線性多步法等方法。[4] 數值公式的精度當一個數值公式的截斷誤差可表示為

2.2 用Matlab軟體求常微分方程的數值解

「注意」

[1] 在解n個未知函數的方程組時,x0和x均為n維向量,m-文件中的待解方程組應以x的分量形式寫成。

[2]使用Matlab軟體求數值解時,高階微分方程必須等價地變換成一階微分方程組。

「例四」

解:令

則微分方程變為一階微分方程組:

[1]   建立m-文件vdp1000.m如下:

 function dy=vdp1000(t,y)
dy=zeros(2,1);
dy(1)=y(2);
dy(2)=1000*(1-y(1)^2)*y(2)-y(1);

[2] 取t0=0,tf=3000,輸入命令:

[T,Y]=ode15s('vdp1000',[0 3000],[2 0]);plot(T,Y(:,1),'-')

[3] 結果如圖

「例五」

解微分方程組 
[1] 建立m-文件rigid.m如下:

function dy=rigid(t,y)
dy=zeros(3,1);
dy(1)=y(2)*y(3);
dy(2)=-y(1)*y(3);
dy(3)=-0.51*y(1)*y(2);

[2] 取t0=0,tf=12,輸入命令:

[T,Y]=ode45('rigid',[0 12],[0 1 1]);
plot(T,Y(:,1),'-',T,Y(:,2),'*',T,Y(:,3),'+')

[3] 結果如圖

圖中,y1的圖形為實線,y2的圖形為「*」線,y3的圖形為「+」線。

3思考題

一個慢跑者在平面上沿橢圓以恆定的速率v=1跑步,設橢圓方程為:  

往期精彩閱讀

點擊即可閱讀原文

「在學習中得到樂趣,在樂趣中收穫學習」歡迎關注和分享該公眾號。如果您有什麼建議可以公眾號直接回復即可。期待您的加入,也希望您分享給您身邊有需要的人,建議直接將該公眾號設為星標記公眾號,以免錯失精內容,該公眾號同時開通了視頻號「工科男的日常」,歡迎掃描下方二維碼關注。

QQ技術交流群:272558566

微信視頻號微信公眾號

相關焦點

  • 用MATLAB巧解微分方程實例分析
    MATLAB巧解微分方程實例分析王少華 西安電子科技大學 微分方程求解難,字母一堆看著煩。寫錯數字一時爽,一直寫錯一直爽。大二選了matlab課,感覺這玩意兒tql(太強了),然後突發奇想,用這軟體不恰可以撫慰我那被微分方程傷害了的幼小得心靈嘛。說弄就弄:解決我們的微分方程就要用到dsolve()這個重要的函數。
  • 時滯微分方程的matlab解法
    有位小夥伴在matlab編程愛好者(群號:531421022)群中問道有關時滯微分方程的matlab
  • Matlab/Simulink建模詳解:一階時變偏微分方程的求解
    >
  • 2019數學建模國賽|Matlab 求解微分方程(組)
    2.函數 dsolve 求解的是常微分方程的精確解法,也稱為常微分方程的符號解.但是,有大量的常微分方程雖然從理論上講,其解是存在的,但我們卻無法求出其解析解,此時,我們需要尋求方程的數值解,在求常微分方程數值解方面,MATLAB 具有豐富的函數,將其統稱為 solver,其一般格式為:           [T,Y]=solver(odefun,tspan,y0)
  • 偏微分方程(組)的數值解法介紹
    一些典型物理方程的構建及解析解法,有興趣的用戶可參考顧樵編著的《數學物理方法》。涉及到多變量或多領域的偏微分方程就存在著變量的耦合,很難用數解析解法或無法用解析解法求得耦合偏微分方程解,此時就需要我們是用數值解法進行求解,本文的主題就放在耦合的偏微分方程組的數值解法介紹上。
  • 帶你用matlab輕鬆搞定微分方程
    考慮大多數讀者對微分方程求解方法比較陌生,所以過冷水本期簡單普及一下微分方程的求解問題。關於微分方程你需要了解:含有未知的函數及其某些階的導數以及其自變量本身的方程稱為微分方程。如果未知函數是一元函數,則稱為常微分方程。如果未知函數是多元函數,則稱為偏微分方程。聯繫一些未知函數的一組微分方程稱為微分方程組。
  • 微分方程有限元解法——有限差分法&加權殘值法
    L.Feli一、偏微分方程(組)的解法介紹引導我們知道物理現象中很多問題可以用偏微分方程描述,例如振動、熱傳導、擴散等。在每個點上將偏微分方程的微分項用合適的差商代替,從而將偏微分方程轉換為代數形式的差分方程,每個節點的差分方程組合在一起就構成了一個代數方程組,我們利用初始值和邊界條件,即可求解代數方程組的解,獲取每個節點的變量值,即偏微分方程的數值解。例如針對如下的橢圓形偏微分方程中偏微分項
  • 想通過視頻自學MATLAB的同學戳這裡!
    MATLAB求解MATLAB數學教學視頻第7章:導數與微分的MATLAB求解MATLAB數學教學視頻第8章:積分的MATLAB求解MATLAB數學教學視頻第9章:級數的MATLAB求解MATLAB數學教學視頻第10章: 代數方程組的MATLAB求解MATLAB數學教學視頻第11章:向量代數與空間解析幾何MATLAB求解MATLAB
  • 微分方程典型題:(070109)微分方程應用——運動規律建模
    「微分方程應用——運動規律建模」,即藉助微分方程模型求解實際問題的基本步驟:(1) 確定模型類型:注意到實際問題中與數學中的導數相關的常用詞語比如運動學、化學反應中的變化率,速度、速率、加速度,經濟學中的邊際,生物學、金融、經濟等領域中的增長,放射性問題中的衰變以及一般提及的改變、變化、增加、減少等,在幾何上則有切線、法線,這樣的問題都可能與導數或微分相關,有可能通過建立微分方程模型來反映其規律。
  • 薛定宇教授大講堂(卷Ⅴ):MATLAB微分方程求解|文末贈書
    第 1章微分方程簡介  11.1微分方程建模簡介 11.1.1電路的建模  11.1.2力學問題的建模 31.1.3社會系統的建模 31.2微分方程發展簡史 51.3本書主要內容  8本章習題  9第 2章常微分方程的解析解  102.1一階微分方程的解析解
  • MATLAB建模實例——差分方程
    「差分方程」,差分方程也叫遞推關係。2 差分方程的解法2.1 常係數線性齊次差分方程的解法形如的差分方程,稱為稱為差分方程(1)的「特徵方程」,其根稱為「特徵根」。 ,參照2.1常微分非齊次方程的解法3 應用實例3.1 問題描述如圖正方形ABCD的四個頂點各有一人。
  • 微分方程VS機器學習,實例講解二者異同
    編輯:小舟微分方程與機器學習作為 AI 領域建模的兩種方法,各自有什麼優勢?微分方程(DE)與機器學習(ML)類數據驅動方法都足以驅動 AI 領域的發展。二者有何異同呢?本文進行了對比。為什麼以上 4 個方程都是微分方程?因為它們都包含某些未知函數的導數(即變化率)。這些未知函數(如 SIR 模型中的 S(t)、I(t) 和 R(t))被稱為微分方程的解。我們再來看一個模型。
  • 含納維-斯託克斯方程(氣象學)實例,微分方程 VS 機器學習
    微分方程與機器學習作為 AI 領域建模的兩種方法,各自有什麼優勢?微分方程(DE)與機器學習(ML)類數據驅動方法都足以驅動 AI 領域的發展。二者有何異同呢?本文進行了對比。差分方程輸出離散的數字序列(例如,每 5 年的人口普查結果),而微分方程則建模連續數值(即持續發生的事件)。上述 5 個模型(微分和差分方程)都是機械模型,我們可以在其中自行選擇系統的邏輯、規則、結構或機制。當然,並不是每次試驗都會成功,反覆試驗在數學建模中非常重要。
  • MATLAB常微分方程
    4.8  微分方程微分方程是數值計算中常見的問題,MATLAB提供了多種函數來計算微分方程的解。
  • MATLAB偏微分方程
    4.8.2  偏微分方程在自然科學的很多領域內,都會遇到微分方程初值問題,特別是偏微分方程,它的定解問題是描述自然界及科學現象的最重要的工具
  • [優化] 《MATLAB高效編程技巧與應用:25個案例分析》源程序+數據
    內容包括:matlab快速入門、重新認識矢量(向量)化編程、matlab處理海量數據、匿名函數類型介紹、嵌套函數類型介紹、積分以及積分方程求解案例、優化及非線性方程(組)求解案例、人臉圖像壓縮與重建案例、有關預測分類的案例、常微分方程(組)求解案例、層次分析法及其matlab實現、定時器及其應用。
  • 高等數學《常微分方程》內容、問題類型與解題思路總結
    以下內容直接點擊內容連結訪問一、一階微分方程的類型及一般求解思路與步驟▪《常微分方程的基本概念》及注意事項小結與課件節選▪《可分離變量的微分方程》與構建微分方程模型的微元法▪《常見一階微分方程》類型及其一般求解思路與步驟  二、一般可降解的微分方程類型及典型問題求解
  • Matlab解常微分方程
    今天梳理一下Matlab中常用的求解微分方程的方法,我們知道計算機是處理不了連續的,所以要求解一個連續的微分方程,我們一般都是先離散化,求的其實是近似解
  • 《歐拉方程及微分方程建模》思路與方法
    【注】歐拉方程其實就是一種線性微分方程的結構,只不過不具有直接的顯性結果,需要換元變換得到。比如運動學、化學反應中的變化率,速度、速率、加速度,經濟學中的邊際,生物學、金融、經濟等領域中的增長,放射性問題中的衰變以及一般提及的改變、變化、增加、減少等,在幾何上則有切線、法線,這樣的問題都可能與導數或微分相關,有可能通過建立微分方程模型來反映其規律。
  • 利用MATLABpdetool解偏微分方程——以數學建模2018A題為例
    PDE Modeler使用方法介紹物理學中的偏微分方程(PDE)無處不在,如熱傳導方程、擴散方程、電磁場方程,甚至量子力學中也能大量遇到偏微分方程——薛丁格方程。偏微分方程的計算十分複雜,而且大部分是沒有解析解的。PDE的數值解法有有限差分法等方法,然而這是需要學習相關的知識,通過編程進行求解。