微分方程数值解 陈文斌 www scicomput com Multigrid@scicomput com
微分方程数值解 陈文斌 www.scicomput.com Multigrid@scicomput.com
Euer方法 考虑常微分方程: l=f(t,u)2to<t≤7 令tn1=tn+bn1,m=01,N-1,有如下Eler方法 Jum+=um+hf(fm, um),m=0,1,.,N-1 uo =u(to)=a
Euler方法 = = u t a u f t u t t T ( ) ' ( , ), , 0 0 考虑常微分方程: 令t m+1 = t m + hm+1 ,m = 0,1,...,N −1,有如下Euler方法 = = + = + = − u u t a um um hf t m um m N ( ) ( , ), 0,1,..., 1 0 0 1
Euler方法的三种解释 数值微分:用差商来代替导数 (t+h)au(t)+ hf(t, u(t)) 数值积分:把微分方程变成积分方程 (+b)-()=f(,()dr≈/(c() 幂级数展开:将u(t+h)在t做 Taylor展开 h L(t+h)=t()+h'(t)+t"'(t)+ 2! ≈t(t)+hf(t,(t))
Euler方法的三种解释 数值微分:用差商来代替导数 数值积分:把微分方程变成积分方程 幂级数展开:将u(t+h) 在t 做Taylor展开 (t + h) u(t) + hf (t,u(t)) u(t h) u(t) f ( ,u( ))d hf (t,u(t)) t h t + − = + ( ) ( , ( )) ''( ) ... 2! ( ) ( ) '( ) 2 u t hf t u t u t h u t h u t hu t + + = + + +
单步方法和多步方法 单步方法:利用h,tm和Um即可算出un+1 m+1≈lmn+h(tm,lmn;h) 多步方法:要用到h,tmtm+1…,tm+k1和 Um u+1x…,Um+1才能求出um+k ∑a1um=b∑月,fm =0
单步方法和多步方法 单步方法:利用h,tm和um即可算出um+1 多步方法:要用到h, tm, tm+1,…, tm+k-1和 um, um+1,…, um+k-1才能求出 um+k ( , ; ) um+1 um + h t m um h = = + = + k j k j j m j j m j u h f 0 0
显式和隐式方法 显式格式:un+1通过递推可以直接求得 隐式格式:Um+1需要求解代数方程才能求 得,例如改进的Euer方法 umi=um+ff(tm,um)+f(tmAL,umDI m=o, 1,.,N-1
显式和隐式方法 显式格式:um+1通过递推可以直接求得 隐式格式: um+1需要求解代数方程才能求 得,例如改进的Euler方法 = = + = + + + + = − u u t a f t u f t u m N h um um m m m m ( ) ( , ) ( , ) , 0,1,..., 1 2 0 0 1 1 1