matlab解常微分方程——數值解法?

Tags: 解法, 數值, 解常,

由於一些數學方程,如果用符號表示很複雜或者根本用現有的數學符號無法給出解析解。而且人們往往關心的只是某些具體值的解。於是數值解應運而生,而matlab中可以很好地給出數值解。你只需要知道怎麼用就行,不需要知道用什麼方法解決的。畢竟人們只有站在巨人的肩膀上,才能看得更遠。

工具/原料

matlab

方法/步驟

matlab中解常微分方程的數值解常用的命令有兩個,一個是ode23,一個是ode45.兩個解法都是基於龍格-庫塔公式。詳細的就不說了,否則有點顯得喧賓奪主了。其中常用的是ode23命令。

命令形式為[t,y]=ode23('fun',ts,y0,options)。

其中[t,y]為輸出矩陣,分別表示自變數t和因變數y的取值。

fun為待解方程寫成的m函式檔名。

ts為自變數的取值範圍。

y0為函式的初值。

options用於設定誤差限,可以預設。

下面用一個例項說明。初始條件為y(0)=1.

matlab解常微分方程——數值解法

首先建立m函式檔案。

該檔案的輸入為自變數與因變數,輸出為因變數的一階導數。(如果方程中有二階導數及以上的,需要增加變數轉換為一階導數)

matlab解常微分方程——數值解法

然後再主程式中呼叫已有的數值積分函式進行積分。

matlab解常微分方程——數值解法

matlab解常微分方程——數值解法

相關問題答案