用MATLAB巧解微分方程實例分析

2021-02-19 考研競賽數學

MATLAB巧解微分方程實例分析

王少華 西安電子科技大學

 微分方程求解難,

字母一堆看著煩。

寫錯數字一時爽,

一直寫錯一直爽。

還記得那是大一第一學期快結束了,學到微分方程那了,學時挺高興的,看老師那刷刷地,那麼長的方程半個黑板就解完了,黑板上那叫一個主次分明,結構清晰,什麼特徵方程,齊次通解,非齊次特解,然後倆一加就是非齊次通解。心想挺簡單的嘛。(後來自己算時才知道什麼叫「真香」)

回去有作業題,第一道是齊次微分方程,立刻換元,化成可分離變量的微分方程,一會兒結果就出來了。然後就是一道二階非齊次常係數線性微分方程,那不就是死套路嘛,照著解不就行了。提筆算來,算起雖然繁瑣,但好歹多半張演算紙還是算出來了,一對答案,不對。emmmm,頓時眉頭一皺,提筆再算一遍。一會兒,對答案,不僅和答案不一樣,和第一次算出來得也不一樣,這就有點酸爽了,算第三遍時,心就有點著急了,這怎麼就算不對呢?越想越著急,越著急,式子寫得越亂,然後那兩個小時就基本上沒幹其他事了。

大二選了matlab課,感覺這玩意兒tql(太強了),然後突發奇想,用這軟體不恰可以撫慰我那被微分方程傷害了的幼小得心靈嘛

說弄就弄:

解決我們的微分方程就要用到dsolve()這個重要的函數。其完整形式為:

dsolve(『eqn』,』cond』,』var』)

沒接觸過matlab的小兄弟可能看著有點懵,這是啥。暫且聽我慢慢道來:eqn代表微分方程,cond代表初始條件(無初始條件可以預設),var代表微分方程中的自變量(默認為t)。

對了,重要的一階導,二階導,等高階導怎麼表示呢?別著急,也很簡單。該命令中可以用D表示倒數符號,其中D2表示二階導數,D3表示三階導數,以此類推。

說了這麼多,來看一個實例,來求求下面這個式子的通解:

你只需要在命令行窗口輸入

dsolve('D2y=Dy+x','x')

然後輕點回車鍵答案就出來了。 

圖1-1

讓我們更進一步,如果我們要求特解,那麼我們在函數中加上初始條件就可以嘍。讓我們再看一個實例:

你只需要在命令行窗口輸入

dsolve('D2y=Dy+x','y(1)=1','Dy(1)=0','x')

然後輕點回車鍵答案就出來了。

圖1-2

相信,掌握了dsolve()這個函數,大部分的微分方程都會迎刃而解的。

~~~~~~~~~~~~~~~~~~~~~~~~~

挖坑一時爽,

填坑火葬場。

不是我不填,

坑多填不完

填坑一:如果你沒有用過matlab這個軟體,那麼可以參考網上教程先安裝一個。

參考教程:https://blog.csdn.net/LeonSUST/ article/details/ 84038216

填坑二:其實有的常微分方程用dslove()這個函數是無法求出解析解的。(//小編已經逃到你打不到地方嘍)解釋一下原因:函數dsolve()是求常微分方程的精確解法(求出來的是解析解),但是有大量的常微分方程雖然從理論上講,其解是存在的,但實際上我們卻無法用matlab求出來。

填坑三:那對於那些求不出來解析解的常微分方程,我們該怎麼辦呢?其實我們還可嘗試求其數值解。至於怎樣用matlab求數值解,大家可以自行百度哦。(//在作死邊緣瘋狂試探)

填坑四:對於要考高數的「難兄難弟」們,認真總結各種微分方程的解法是必要的,切記:投機取巧一時爽,卷子下來火葬場。

下圖為小編自己的筆記,雖然醜,但是對小編背誦各種方程的解法還是有用的。

圖1-3

填坑四:下面補充一些用matlab解微分方程的例子供大家參考。

(1) 可分離變量型

Matlab解法

圖1-4

Ps:咱們需要對原方程進行適當的變換。

 

(2) 齊次方程

Matlab解法: 

圖1-5

Ps:無解析解,所以還是乖乖按老師講的方法做吧。

 

(3) 一階線性微分方程

Matlab解法

圖1-6

Ps:matlab中的ln()使用log()表示。

 

(4) 伯努利方程

Matlab解法

圖1-7

(5) 可降階的高階微分方程

Matlab解法

圖1-8

Ps:大家可以自己用筆算算對對答案嘛。

 

(6) 常係數齊次線性微分方程

Matlab解法

圖1-9

 

(7) 常係數非齊次線性微分方程

Matlab解法

圖1-10

Ps:exp()代表e的多少次方。

 

(8) 歐拉方程

Matlab解法

 圖1-11

聲明:作者只是一名大二學生,學識有限,如有錯誤,請評論出來,咱會及時糾正;如有建議,也可以評論出來,咱會擇優採納;如想吐槽,也可評論出來,咱看了也不會生氣。

~~~~~~~~~~~~~~~~~~~~~~~

最後,「難兄難弟」們

道路千萬條,

上課第一條。

上課不規範,

大四兩行淚。

相關焦點

  • 帶你用matlab輕鬆搞定微分方程
    考慮大多數讀者對微分方程求解方法比較陌生,所以過冷水本期簡單普及一下微分方程的求解問題。關於微分方程你需要了解:含有未知的函數及其某些階的導數以及其自變量本身的方程稱為微分方程。如果未知函數是一元函數,則稱為常微分方程。如果未知函數是多元函數,則稱為偏微分方程。聯繫一些未知函數的一組微分方程稱為微分方程組。
  • 時滯微分方程的matlab解法
    有位小夥伴在matlab編程愛好者(群號:531421022)群中問道有關時滯微分方程的matlab
  • MATLAB建模實例——微分方程
    ❞1 微分方程的解析解求微分方程(組)的解析解命令:dsolve(『方程1』,『方程2』,…『方程n』,『初始條件',『自變量』)記號: 在表達微分方程時,用字母D表示求微分,D2、D3等表示求高階微分.任何D後所跟的字母為因變量,自變量可以指定或由系統規則選定為確省。
  • 偏微分方程(組)的數值解法介紹
    >我們知道物理現象中很多問題可以用偏微分方程描述,例如振動、熱傳導、擴散等。一些典型物理方程的構建及解析解法,有興趣的用戶可參考顧樵編著的《數學物理方法》。涉及到多變量或多領域的偏微分方程就存在著變量的耦合,很難用數解析解法或無法用解析解法求得耦合偏微分方程解,此時就需要我們是用數值解法進行求解,本文的主題就放在耦合的偏微分方程組的數值解法介紹上。
  • 2019數學建模國賽|Matlab 求解微分方程(組)
    2.函數 dsolve 求解的是常微分方程的精確解法,也稱為常微分方程的符號解.但是,有大量的常微分方程雖然從理論上講,其解是存在的,但我們卻無法求出其解析解,此時,我們需要尋求方程的數值解,在求常微分方程數值解方面,MATLAB 具有豐富的函數,將其統稱為 solver,其一般格式為:           [T,Y]=solver(odefun,tspan,y0)
  • Matlab中ode45函數的使用(常微分方程求解)
    在學習中,經常會遇到求解常微分方程的問題。數值分析這門課上面對求解理論進行了大量的講解,這裡暫且不談這些晦澀難懂的理論。
  • 微分方程有限元解法——有限差分法&加權殘值法
    L.Feli一、偏微分方程(組)的解法介紹引導我們知道物理現象中很多問題可以用偏微分方程描述,例如振動、熱傳導、擴散等。在每個點上將偏微分方程的微分項用合適的差商代替,從而將偏微分方程轉換為代數形式的差分方程,每個節點的差分方程組合在一起就構成了一個代數方程組,我們利用初始值和邊界條件,即可求解代數方程組的解,獲取每個節點的變量值,即偏微分方程的數值解。例如針對如下的橢圓形偏微分方程中偏微分項
  • 考研數學:線性微分方程解的線性組合分析
    微分方程是考研數學的一個必考點,並且還常常出兩道題,佔十幾分,因此大家一定重視這一章,掌握好其基本知識和解題方法。微分方程中最重要的是線性微分方程,主要包括一階和二階線性微分方程,而線性微分方程又可分為線性齊次和非齊次線性微分方程,它們的解的線性組合是否仍為其方程的解?
  • MATLAB常微分方程
    4.8  微分方程微分方程是數值計算中常見的問題,MATLAB提供了多種函數來計算微分方程的解。
  • [優化] 《MATLAB高效編程技巧與應用:25個案例分析》源程序+數據
    內容包括:matlab快速入門、重新認識矢量(向量)化編程、matlab處理海量數據、匿名函數類型介紹、嵌套函數類型介紹、積分以及積分方程求解案例、優化及非線性方程(組)求解案例、人臉圖像壓縮與重建案例、有關預測分類的案例、常微分方程(組)求解案例、層次分析法及其matlab實現、定時器及其應用。
  • MATLAB偏微分方程
    4.8.2  偏微分方程在自然科學的很多領域內,都會遇到微分方程初值問題,特別是偏微分方程,它的定解問題是描述自然界及科學現象的最重要的工具
  • 熱導方程的Matlab數值解方法
    過冷水今天就和大家分享一下一維熱傳導方程特別案例的具體求解方法。熱傳導是一個很常見的現象。當物體內部的溫度分布不均勻時,熱量就會從溫度較高的地方流動,這個過程中,溫度是空間和時間的函數。熱傳導方程就是溫度所滿足的偏微分方程,它的解給出任意時刻物體內的溫度分布。
  • Matlab/Simulink建模詳解:一階時變偏微分方程的求解
    Matlab/Simulink建模詳解:一階時變偏微分方程的求解 這一次日篤小編來教大家如何在simulnk裡面,求解偏微分方程(Partial Differential Equation-PDE)。646128.400323336    650767.764378679    654999.936793652]上述三個方程式代表的是有限體積法中一個小單元的方程,小編把很多個小單元依次連接起來,重複求解上述方程就能夠得到解。
  • 偏微分方程:作用、分析與數值求解
    報告題目:偏微分方程:作用、分析與數值求解 報 告 人:江松 研究員 北京應用物理與計算數學研究所 報告時間:2020年9月27日9:00 報告地點:數學學院二樓報告廳 校內聯繫人:張然zhangran@jlu.edu.cn 報告摘要: 科學與工程技術
  • 常微分方程:線性微分方程解的三個重要特徵
    前一篇《帶你走進微積分的堂學習:一階線性微分方程式的基礎原理》詳細討論了線性微分方程的結構以及通解特性,本篇我們藉此機會指出一階線性微分方程解的三個重要特徵1)有一階線性微分方程,線性微分方程(1)的一切解在α<x<β上存在,面對非線性微分方程,一般就沒有這種解的全局存在性,例如非線性微分方程關於x的定義域為-∞<x<+∞,而它的解,例如y=tanx的存在區間只是-π/2<x<π/2,這就表明,非線性微分方程解的存在區間一般是局部的,而不像線性微分方程的解那樣是全局的。
  • Matlab解常微分方程
    今天梳理一下Matlab中常用的求解微分方程的方法,我們知道計算機是處理不了連續的,所以要求解一個連續的微分方程,我們一般都是先離散化,求的其實是近似解
  • 常微分方程的級數解
    在科學研究中,經常需要解含有未知函數的導數的方程,這就是微分方程。
  • 微分方程VS機器學習,實例講解二者異同
    為什麼以上 4 個方程都是微分方程?因為它們都包含某些未知函數的導數(即變化率)。這些未知函數(如 SIR 模型中的 S(t)、I(t) 和 R(t))被稱為微分方程的解。我們再來看一個模型。在數學建模中,我們需要考慮模型的複雜性:簡單的模型易於分析,但可能缺乏預測能力;複雜的模型具有現實性,但嘗試弄清楚模型背後的原理也很重要。因此,我們需要在簡單性和可分析性之間進行權衡,正如統計學家 George Box 所說:所有的模型都是錯誤的,但其中一些是有用的。
  • MATLAB的ezplot函數繪製隱函數圖像
    GUI界面計算MATLAB《自動控制原理》相關編程MATLAB的switch選擇語句和input輸入語句MATLAB的switch選擇語句和input輸入語句視頻MATLAB實例講解—求二元函數的極值MATLAB實例講解—求二元函數的極值視頻MATLAB的ode45函數實例求常微分方程數值解MATLAB
  • 含納維-斯託克斯方程(氣象學)實例,微分方程 VS 機器學習
    為什麼以上 4 個方程都是微分方程?因為它們都包含某些未知函數的導數(即變化率)。這些未知函數(如 SIR 模型中的 S(t)、I(t) 和 R(t))被稱為微分方程的解。差分方程輸出離散的數字序列(例如,每 5 年的人口普查結果),而微分方程則建模連續數值(即持續發生的事件)。上述 5 個模型(微分和差分方程)都是機械模型,我們可以在其中自行選擇系統的邏輯、規則、結構或機制。當然,並不是每次試驗都會成功,反覆試驗在數學建模中非常重要。