數學建模之尤拉演算法(求解常微分方程)
阿新 • • 發佈:2021-08-09
目錄
。對於用微分方程解決實際問題來說,數值解法是一個重要的手段。
數學建模演算法補充
常微分方程
尤拉演算法
定義
定義:在數學和電腦科學中,尤拉方法,命名自它的發明者萊昂哈德·尤拉,是一種一階數值方法,用以對給定初值的常微分方程(即初值問題)求解。它是一種解決數值常微分方程的最基本的一類顯型方法(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} \]演算法缺點
尤拉演算法簡單地取切線地端點作為起點來計算,當步數增多時,誤差會因積累而越來越大。因此,尤拉演算法一般不用於實際計算。