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

微信視頻號微信公眾號

相關焦點

  • 2019數學建模國賽|Matlab 求解微分方程(組)
    2.函數 dsolve 求解的是常微分方程的精確解法,也稱為常微分方程的符號解.但是,有大量的常微分方程雖然從理論上講,其解是存在的,但我們卻無法求出其解析解,此時,我們需要尋求方程的數值解,在求常微分方程數值解方面,MATLAB 具有豐富的函數,將其統稱為 solver,其一般格式為:           [T,Y]=solver(odefun,tspan,y0)
  • 偏微分方程(組)的數值解法介紹
    一些典型物理方程的構建及解析解法,有興趣的用戶可參考顧樵編著的《數學物理方法》。涉及到多變量或多領域的偏微分方程就存在著變量的耦合,很難用數解析解法或無法用解析解法求得耦合偏微分方程解,此時就需要我們是用數值解法進行求解,本文的主題就放在耦合的偏微分方程組的數值解法介紹上。
  • 帶你用matlab輕鬆搞定微分方程
    考慮大多數讀者對微分方程求解方法比較陌生,所以過冷水本期簡單普及一下微分方程的求解問題。關於微分方程你需要了解:含有未知的函數及其某些階的導數以及其自變量本身的方程稱為微分方程。如果未知函數是一元函數,則稱為常微分方程。如果未知函數是多元函數,則稱為偏微分方程。聯繫一些未知函數的一組微分方程稱為微分方程組。
  • 微分方程VS機器學習,實例講解二者異同
    選自Medium作者:Col Jung機器之心編譯編輯:小舟微分方程與機器學習作為 AI 領域建模的兩種方法,各自有什麼優勢?請注意 Murray-Gottman「愛情模型」實際上是一個差分方程(微分方程的一種姊妹模型)。差分方程輸出離散的數字序列(例如,每 5 年的人口普查結果),而微分方程則建模連續數值(即持續發生的事件)。上述 5 個模型(微分和差分方程)都是機械模型,我們可以在其中自行選擇系統的邏輯、規則、結構或機制。
  • Matlab解常微分方程
    今天梳理一下Matlab中常用的求解微分方程的方法,我們知道計算機是處理不了連續的,所以要求解一個連續的微分方程,我們一般都是先離散化,求的其實是近似解
  • 《歐拉方程及微分方程建模》思路與方法
    將原歐拉方程中xky(k)全部用上式代入,則可以將原方程轉化為以y為函數,u為自變量的常係數線性微分方程 【注】歐拉方程其實就是一種線性微分方程的結構,只不過不具有直接的顯性結果,需要換元變換得到。 (4) 建立微分方程:分析問題中所涉及的原理或物理定律,根據已有變化率描述;或者藉助微元分析法,給自變量一個增量,建立因變量增量與自變量增量相關的等式,並由平均變化率取關於自變量增量趨於0的極限,得到包含待求函數導數的相關等式,即微分方程描述形式。
  • 系列14 解微分方程
    freexyn編程實例視頻教程系列14Matlab解微分方程1.主要內容(1)運用Matlab編程求解微分方程
  • Matlab求解微分代數方程 (DAE)
    周末有位同學請教了一個問題,他要求解一個微分方程組,但微分方程變量之間還有個線性方程組關係,這個就是典型的微分代數方程 ,Matlab裡面有專門的求解方法
  • 一文解構神經常微分方程
    這篇文章的重點將介紹神經常微分方程的實際用途、應用這種所需的神經網絡類型的方式、原因以及可行性。為什麼需要關注常微分方程?首先,快速回顧一下什麼是常微分方程。有了充足的理論後,現在來看看一些實例。學習動力學系統正如之前所展示的,微分方程廣泛應用於描述複雜的連續過程。當然,在現實生活中,我們把它們看成是離散的過程,最重要的是,在時間步長 t_i 中,很多觀察結果可能會被忽略。假設想用一個神經網絡來模擬這樣一個系統。在經典的序列建模範例中,將如何處理這種情況?
  • MATLAB常微分方程數值求解
    有一類常微分方程,其解的分量有的變化很快,有的變化很慢,且相差懸殊,這就是所謂的剛性問題 (Stiff) 。對於剛性問題,數值解算法必須取很小步長才能獲得滿意的結果,導致計算量會大大增加。解決剛性問題需要有專門方法。
  • 「神經常微分方程」提出者之一:如何利用深度微分方程模型處理連續...
    David Duvenaud 與微分方程的羈絆David Duvenaud 的主要研究方向是連續時間模型、隱變量模型和深度學習。近年來,他的工作和微分方程產生了緊密聯繫。深度學習能夠與微分方程相結合?是的。
  • 偏微分方程:作用、分析與數值求解
    報告題目:偏微分方程:作用、分析與數值求解 報 告 人:江松 研究員 北京應用物理與計算數學研究所 報告時間:2020年9月27日9:00 報告地點:數學學院二樓報告廳 校內聯繫人:張然zhangran@jlu.edu.cn 報告摘要: 科學與工程技術
  • 熱導方程的Matlab數值解方法
    熱傳導方程就是溫度所滿足的偏微分方程,它的解給出任意時刻物體內的溫度分布。為了建立熱導方程,我們首先介紹熱導系統置於x軸,考查系統在任意x處的橫截面上的一個單位面積,設熱流沿x軸方向傳遞,x處的溫度為u(x),溫度梯度為du(x)/dx。傅立葉指出:在單位面積內流經該單位面積的熱量q與該處的溫度梯度成正比即:
  • 求解微分方程,用seq2seq就夠了,性能遠超 Mathematica、Matlab
    這篇論文提出了一種新的基於seq2seq的方法來求解符號數學問題,例如函數積分、一階常微分方程、二階常微分方程等複雜問題。其結果表明,這種模型的性能要遠超現在常用的能進行符號運算的工具,例如Mathematica、Matlab、Maple等。
  • 微分方程重點一:常係數齊次線性微分方程
    微分方程前面的都是一些基礎,如果是一些和其他題型結合在一起的題目的話,可能會考前面的微分方程內容,比如說求知道函數的全微分,讓求原函數這類的。但是如果微分方程考大題的話,就是考二階常係數非齊次線性微分方程了。之前講的微分方程解的結構是基礎,主要是為了說明做題時我們需要求什麼。
  • AI攻破高數核心,1秒內求解微分方程、不定積分,性能遠超Matlab
    這裡有,積分數據集和常微分方程數據集的製造方法:函數,和它的積分首先,就是要做出「一個函數&它的微分」這樣的數據對。一階常微分方程,和它的解從一個二元函數F(x,y)說起。有個方程F(x,y)=c,可對y求解得到y=f(x,c)。
  • 微分方程篇:為你構建微分方程框架
    本章主要講解部分微分方程的解法。接下來的複習依次開始。微分方程的概念:1.定義:凡表示未知函數、未知函數的導數與自變量之間的關係的方程,叫做微分方程。2.階數:微分方程中所出現的最高階導數的階數,叫做微分方程的階。3.通解:微分方程的解中含有任意常數,且任意常數的個數與微分方程的階數相同(任意常數是獨立的,它們不能合併是的任意常數個數減少),就可推導得一個微分方程的解至少有一個任意常數。
  • 最簡單的常微分方程:變量分離微分方程
    常微分方程是微積分學方程中常見的,應用非常廣泛的方程,下面就來討論常微分方程中最簡單的變量分離微分方程。設一階微分方程式:其中f(x,y)是給定的函數,我們要做的工作是求微分方程的解y=y(x),可是一般不能用初等方法來解出這個微分方程,但是當微分方程的右端f(x,y)取某幾種特殊的類型時,就可用初等積分法求解。本篇講一個重要的特殊情形此時開篇中的微分方程就變成了這樣的方程稱之為變量分離的方程。
  • 常微分方程
    >(3)n解齊次線性微分方程的所有解構成一個n維的線性空間(4)基本解組的以任意常數為係數的線性組合構成齊次線性微分方程的通解(5)非齊次線性微分方程的通解可以表示為它的一個特解與它對應的齊次線性微分方程的通解之和(6)線性微分方程的通解包含了這個方程的所有解2.
  • 從代數方程、函數方程到微分方程
    代數方程,是要求計算出滿足條件的數。相當於由結果導出原因。直線思考的時候,計算一般得到一個明確的結果。但是,知道結果計算原因的話可能的情況比較多。無解、一解、多解或者無限多的解。這時是轉換學生思考的第一階段。跳過這個檻已經拉開大半的人。記得,小學時候難以理解一元二次方程的求解。2.函數方程:函數相對於靜態的數,有一種動態的味道。我們中學時將其上升為「代數」。