1. 程式人生 > 其它 >數學建模之尤拉演算法(求解常微分方程)

數學建模之尤拉演算法(求解常微分方程)

目錄

數學建模演算法補充

常微分方程

尤拉演算法

定義

定義:在數學和電腦科學中,尤拉方法,命名自它的發明者萊昂哈德·尤拉,是一種一階數值方法,用以對給定初值的常微分方程(即初值問題)求解。它是一種解決數值常微分方程的最基本的一類顯型方法(Explicit method)。

尤拉法是常微分方程的數值解法的一種,其基本思想是迭代。其中分為前進的EULER法、後退的EULER法、改進的EULER法。所謂迭代,就是逐次替代,最後求出所要求的解,並達到一定的精度。誤差可以很容易地計算出來。

非線性方程都是所謂“解不出來”的,即使是\(\frac{\mathrm{ d}y}{\mathrm{d}x}=y^2+x^2\)

。對於用微分方程解決實際問題來說,數值解法是一個重要的手段。

公式推導

設微分方程為

\[\begin{cases} \frac{\mathrm{ d}y}{\mathrm{d}x}=f(x_n,y(x_n)),&a\leq x \leq b\\ y(a)=y_0 \end{cases} \]
  • 差商近似導數

    若用向前差商\(\frac{y(x_{n+1})-y(x_n)}{h}\)代替\(y'(x_n)\)帶入微分方程\(\frac{\mathrm{ d}y}{\mathrm{d}x}=f(x_n,y(x_n))\)中,可得

    \[\frac{y(x_{n+1})-y(x_n)}{h} \approx f(x_n,y(x_n))\\ y(x_{n+1})=y(x_n)+hf(x_n,y(x_n)) \]

如果用\(y(x_n)\)的近似值\(y_n\)代入上式右端,所得結果作為\(y(x_{n+1})\)得近似值,記為\(y_{n+1}\),則有

\[y_{n+1}=y_n+hf(x_n,y_n),n=0,1,\cdots,N-1 \]

這樣,微分方程的近似解可以通過求解下述式子來獲得

\[\begin{cases} y_{n+1}=y_n+hf(x_n,y_n),& n=0,1,\cdots,N-1\\ y_0=y(a) \end{cases} \]

演算法缺點

尤拉演算法簡單地取切線地端點作為起點來計算,當步數增多時,誤差會因積累而越來越大。因此,尤拉演算法一般不用於實際計算。