某大学计算方法课件-第七章常微分方程边值问题数值解法.pdf
《某大学计算方法课件-第七章常微分方程边值问题数值解法.pdf》由会员分享,可在线阅读,更多相关《某大学计算方法课件-第七章常微分方程边值问题数值解法.pdf(63页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第七章常微分方程边值问题数值解法一个由常微分方程及其边界条件构成的定解问题称为常微分方程边值问题,其常常出现在流体力学、材料力学、波动力学、电磁学及现代控制理论等学科中。一般而言,常微分方程边值问题的解析求解是非常困难的。为了解决这类实际问题,人们通常采用数值解法。本节将主要介绍71维常微分方程边值问题f,(力)=/(力。(力),i C(Q 2),的打靶法、有限差分法及有限元法。7.1打靶法从形式上看边值问题与初值问题之间的差别仅在于定解条件的不同,毫无疑问这两类问题有着紧密的关联。事实上,基于同一微分方程的边值问题与初值问题有着共同的通解形式。因此,借助于初值问题数值算法来构造边值问题的数值
2、算法是一个很直接的思路,而前者有很多有效的数值算法可供选择。打靶法的基本思想是从不同的初值出发用已知的初值问题数值算法解相同的微分方程直到解的轨迹“打”到给定的右边界点。为简单起见,本节我们仅考虑如下几维线性边值问题f yr=A(t)y+q(t),t G (Q,6),BaM +Bby(b)=7 7,()其中4 以和场为X T Z的矩阵q和为几维向量,而所用方法也可拓展到非线性边值问题。7.1.1简单打靶法对于一个常微分方程而言,不同的初值条件对应于不同的解的轨线,即解是依赖于初始条件的。令沙依。)为 方 程/=力,)满足初值条件g(Q)=。的解,若g(力;。)同时也满足边值问题(2)的边界条件
3、,那么g(1;c)正好就是边值问题(2)的解。简单打靶法要做的工作正是如何寻求这样的初值c,使得BQC+Bby(b c)=q(3)根据常微分方程理论,我们知道线性边值问题的解可表示为y(t)=Y(t)c+v(t),t e(a,6),(4)其中Y ),。分别为基解矩阵及特解,为一参数向量,且满足Y,=4 K 力 G (Q,b),Y(Q)=/;(5)v =A(t)v+q,O(Q)=a,(6)这里/为级单位矩阵,a G史通常可取为零向量。通过计算初值问题(5)-(6),我们可以得到边值问题的解的表达式(4)。为了确定参数向量c,将(4)代入问题的边界条件可得Q c=力,(7)其中Q :=Ba+B6y
4、(5),r j :=r j-Bav(a)-Bhv(b).若边值问题(2)存在唯一解,则Q 是非奇异的,因此c 是存在唯一的。当a 为零向量时,。正好为边值问题的初值条件,在程序中算出c 后,我们再次计算一次初值问题得到原边值问题的数值解。_简单打靶法的计算程序如下,其中bas说上八和par税 分 别 表示函数4 1汝和4“g+q(,B a,6b与况a表示边鼻参数,t s p a n 为求解区间。算法7.1 简单打靶法_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _t,Y=shooting(basisfun,partifun,Ba
5、,Bb,tspan,e ta)n=Iength(Ba);I=eye(n);T=zeros(n);t,y =ode45(partifun,tspan,zeros(n,1 );e ta 1 =e ta Bb*y(length(t),:)for j=1:nt,y=ode45(basisfun,tspan,1(:,j);T(:,j)=y(length(t),:)5;endQ=Ba+Bb*T;c=Qe ta 1 ;t,Y=ode 45(partifun,tspan,c);例7.1试分别取X=1,7,15,3 0,应用简单打靶法求解 0,1上的边值问题/0 1 0/00 0 1 什 02A3 A2 2A/
6、(7r3+A27r)s i n(7rZ)+(2A3+2A7r2)COS(TT)/I 0 0/0 0 0/(e-2A+2e-A+3)/(e-A+2)0 0 0 7/(0)+1 0 0 7/(1)=00 0 0/0 1 0/(A(3 -e-A)/(e-A+2)要 求 画 出 数 值 解 和 精 确 解 的 对 比 图,方程精确解为g=(,”,(力)丁,其中=g A(i-l)+e2A(i 1)+ext2+e-x+COS(7T力).解 分 别 取1,7,1 5,3 0,直接应用简单打靶法7.1可计算出相应的数值解。Z521.510.50-0.500.5 1t图 7.1a A =1.21.51n 0.5
7、0-0.5-10 0.2 0.4 0.6 0.8 1t图 7.1b A=7.20151050-50 0.2 0.4 0.6 0.8 1t图 7.1c A =15.43210.八20 x 105n0 0.2 0.4 0.6 0.8 1t图 7.1d A =30.从上图可见,随着M直的增大,打靶法的误差也增大,出现该现象的原因在于:一方面,相应的矩阵Q=&+石 万 越 来 越 病态;另一方面,直愈大,相应初值问题的刚性也愈强,从而导致数值解在人取相对大的值时会出现较大误差。7.1.2多重打靶法如果初值问题的积分区间较长,简单打靶法的计算效果将会降低。为克服简单打靶法的这一缺点,下面我们介绍多重打靶
8、法,其基本思想是首先将求解区间作网格分划:a=力 N_i =A然后在每个小区间比T 句上构造微分方程的逼近解,最后由解的连续性及边界条件可将这些数值解修补在一起得到一个全局解。考虑线性问题(2),在区间期_ 1,切上,边值问题的解可以表示为y(t;Ci-i)=匕Q 1 +4,。=1,2,,N,(8)其中匕(力),3分别为基解矩阵及特解,其满足Y:=4 1)匕,匕(力I)=I,(9)3 9 i)=0.(10)计 算 初 值 问 题(9)-(10)得区间比_i,句上边值问题的解的表达式(8)。为了确定参数向量c:=(%c f,,C(1)T,将(8)代入问题的边界条件得g 匕(幻4一1=%(切,1
9、Z?/-1,(11)Bac o +BIYNCN-X=T)B i)V N(b).(12)(11)-(12)可写成如下线性系统Lc =r,(13)其中/-H(力 i)I B(力 2)/L=.,.,YN-ID N-I)I BQ BIYN Jr =(。1(右)2(力2),,n -B wN(b).解线性系统(13)即得网格点力上的数值解纳=Q。多重打靶法求解线性边值问题的计算程序如下,其中输入量表示意义与简单打靶法基本相同,差别仅在力帆es/i为求解区间上的全体网格点。算法7.2 多重打靶法_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
10、Y=multishooting(basisfun,parti fu n,Ba,Bb,tmesh,eta)n=length(Ba);I=eye(n);T=zeros(n);N=length(tmesh)1;L=zeros(N*n);r=zeros(N*n,1);Y=zeros(N+1,n);for k=1 :Nt,y J=ode45(partifun,tmesh(k),tmesh(k+l),zeros(n,1);r(n*(k l)+l:n*i)=y(length(t)for j=1:nt,y J=ode45(basisfun,tmesh(k),tmesh(k+1),1(:,j);T(:,j)=y
11、(length(tendL(n*(kl)+l:n*k,n*(k 1)+1:n*k)=T;if k小L(n*(k l)+l:n*k,n*k+l:n*(k+l)=I;endendL(n*(N-l)+l:n*N,1 :n)=Ba;L(n*(N-1)+1:n*N,n*(N1)+1:n*N)=Bb*T;v=r(n*(N1)+1:n*N);r(n*(N-1 )+1 :n*N)=eta Bb*v;c=Lr;for i=1 :NY(i,:)=c(n*(i l)+l:n*i)endY(N+1,:)=(T*c(n*(Nl)+l:n*N)+v)将多重打靶法应用于例7.1中1=30的情形,可计算出相应的数值 解(见图
12、7.2)。由图7.2可见,在计算精度方面,多重打靶法比简单打靶法具有明显的优势。21n 0.50-0.51.5-10 0.2 0.4 0.6 0.8 1t图7.2例7.1。=30)的精确解(虚线)及其多重打靶解(点戈IJ线).7.2有 限 差 分 法有限差分法也是一种基于初值问题数值方法的边值问题方法,但其不同于打靶法,有限差分法在利用初值问题数值方法离散边值问题后,将求解区间上所有网格点处的数值解作为离散格式的未知量,从而通过求解表征该格式的线性或非线性代数方程组而获得边值问题的数值解。在本节,我们仍然考虑一阶微分方程系统的边值问题(1)-(2)。为了获得边值问题的系列离散格式,我们对求 解
13、 区 间 作 如 下 剖 分:n :Q=力1 1 2力N _ 1 且记步长h i =t j 纳为g(切的逼近值。7.2.1中点法与梯形法在本节,我们先考虑简单的有限差分格式,即中点法和梯形法。分别应用中点法和梯形法到非线性边值问题(1)-(2),我们依次可得其问题的离散格式yt yi-i(友 一1/2,1(%+Vi-1,Q =1,2,.,N),g(y0,yN)=0(14)产t =如+/佐1,统 一1)(分=1,2,,N),。(如,yN)=0.(15)上 述 计 算 格 式 可 视 为 以 向 量J=(端,端,弧)T为未知量的(N +1)维非线性方程组,其可用Ne wt o n迭代法求解。为叙述
14、简单见,这里我们仅给出梯形法的Ne wt o n迭代格式,中点法的Ne wt o n迭代格式类似可得。记Nh Vi:=纳 统)+/侑1,%1),i=l,2,,NF:=(Mg即式,N h曲g g 加丁)丁,则中点法的Ne wt o n迭代格式为卜 旷)E=-F 铲),r+1=r +,m =0,l,2,.-,M(16)其中尸(。为歹。的Ja c o b i 矩阵,加为迭代次数。若引入记号:e=(品 ,册,4 切=力2 n&=&(鳄,第),Bb=次 端 第)则迭代格式(16)可进一步写成(幻金 +4 1 一1后一1 =N hg.N tol)for j=1 :Nhj=tmesh(j+1)tmesh(j
15、);A=feval(prfun,tmesh(j)+hj/2,(y(j,:)+y(j+l,:)/2);L(n*(j l)+l:n*j,n*(j 1)+1:n*j)=1/hj*1 A/2;L(n*(j l)+l:n*j,n*j+l:n*(j+1 )=1 /hj*1 A/2;r(n*(j-l)+l:n*j)=(y(j+1 y(j,:)/hj+feval(rfun,tmesh(j)+hj/2,(y(j,:)+y(j+1 ,:)/2);endL(n*N+l:n*(N+l),l:n)=feval(pgfu nl,y(l,:)5,y(N+l,:)5);L(n*N+l:n*(N+l),n*N+l:n*(N+l
16、)=feval(pgfun2,y(1,:)5,y(N+lr(n*N+l:n*(N+1)=feval(gfun,y(1,:)5,y(N+1 ,:)*);xi=Lr;for k=1 :N+1y(k,:)=y(k,:)+x i(n*(k l)+l:n*k);endend end上 述 程 序 中,输 入量rfu n和p r f u n分 别 表 示 函 数g f un,p g f un l,p g f un 2 分别表示函数 q(%o),呼 2迦 弗t m e s h 表示求解区间上所有网格点同工1,.工N,y O表示网格点上的初始迭代值。例7.2试取步长九=1/(10*2Z)(i=0,1,2,3)
17、,分别应用中点法和梯形法求解非线性两点边值问题力oQ,_一O,),康e?-=+)/-/O(1X要求给出数值解的全局误差及收敛阶,其方程的精确解为解 令u(t)2 Incosh(11/2)6*/2cosh(8/4),0 =1.5171646.则其边值问题可转化为一阶形式yr=O 力 IB a y 6+牖 =0.取步长九=1/(10*2,)(,=0,1,2,3),初始迭代值为零,分别应用中点法和梯形法求解该边值问题可计算出其数值解的全局误差及收敛阶(见表7.1),其中全局误差及收敛阶的表达式依次为/八 、I 1 err(h)err(ri):=max (七 一%,p logo-J oi;v1 k 小
18、 82 167 Td/2)表7中点法和梯形法解例7.2的数值结果.h中点法梯形法err(h)Perr(h)P1/10 6.3341e-4-5.8442e-4-1/201.5938e-41.99071.4632e-41.99791/40 3.9867e-51.99923.6594e-51.99941/80 9.9698e-61.9996 9.1516e-61.9995由表7.1可见,中点法和梯形法均只有2阶精度,并且二者的计算效果相近。7.2.2 Runge-Kutta方法由上可知,中点法和梯形法是二种低精度方法。为获得高精度的边值问题方法,我们考虑修改求解初值问题的Runge-Kutta方法,
19、使其适再于边值问题-(2)。将Runge-Kutta方法应用于边值问题可得Nhfi3:=/o-f=0,l i N,1 j s,SNhVi:=%Vi-i-hi bjfij=0,1 i N g(y&yN)=0,)=1(18)这里玲=+吗。该方程组中的未知向量y:=(诵J f,对,届 ,不,我)fi:=(总 虑 ,忌),可通过Ne wton迭代法获得,其计算格式为F (=F句 ym+1=r+,m=(19)其中尸为9 3的Jacobi矩阵,机为迭代次数,且尸:=(N/J。Nh V,N h f Nh 状、,Nh代,Nh V g 0,VNY、人 r r-i r r r r r r iNdi=(Nhf l
20、N麻,,明博)丁.若进一步引入记号:=(品 源 卓 ,苏8)7=(4,脸T,Q =-此人sB a =g y:y那,为=心 以,或),Ag)=弘 熄 +儿 口,1=1(4(力 )(。114/讥),%=:,用=f :T4(友 s)J QS1A(力 谢)则迭代格式(19)可写成 Q1S4(力 讥)、:,。=(瓦/,C LssA.(tis I(%=Q?:,1 i N,&-1 h,Da,=0,1 S,S N)&a+&切=-g(鳄,。口 一+1 =y+&-0 2 T V,,承+1=印 +%I i T V.(20)既然(20)中的第一个方程可写为口=叱一十%1+叱一崂力1 2 N,因此将其代入(20)中的第
21、二个方程可得&-1=陌,i i N,其中八 口=1+h i D W V i,n =h i D W Q i.从而迭代格式(20)可写成&一-1=片,1 z A,rBa&+1+B b&N=-g(y/,y用,=r+6:,o z 7 v,)举+1=优+叱-1%1 +用一七力l i tol)for i=1 :Nh _i=tme sh(i+1)tme sh(i);for j=1:st _ i j=tme sh(j)+h _ i*rh o(j);y_ij=y(i+h _i*kron(alpha(j,:),I)*f(s*n*(il)+l:s*n*i);A _ij=fe val(prfun,t_ij,y _i
22、j);V_i(n*(j-1)+1:n*j,:)=A_ij;W_i(n*(j-1)+1:n*j,:)=kron(alpha(j,:),A_ij);Q_ij=feval(rfun,t_ij,y _ij)f(s*n*(i l)+n*(j 1)+.1:s*n*(i l)+n*j);Q_i(n*(j-l)+l:n*j,l)=Q _ij;endwu e y e(s*n)h1i*w i)uuw(1)*V;p TW i(l)*Q i;U(二i)H U i;p(:i;r-(n*(i l)+l:n*i。n*(il)+=n*ill(I+hL.*k r o n(b e f a。I)*w i(l)*v i)L(n*(i
23、 L)+l:n*i.n.i+lIn A i+cvI-r oA i 1)+1-n*ihli*k r o n(b e f a,I)*w i(l)*Q i;e n dL(n*N+l:n*(N+l),一:n)u f e v a l(p g f u nl“y(一:),y(N+l“:)”);L(n*N+l-n*z+l),n*N+l:n*z+l)=f e v a l(p g f u n5,y(l,y(N+l:.);r(n*N+1n*z+l)nf e v a l(g f u n“y(l,:)r yz+lJ)xiuL-r”f o r k u l:NyQ lTy.:)+x i(n*(k l l)+=n*k)二f(
24、s*n*(k l l)+l-s*n*k n f(s*n*(k l l)+l:s*n*k)+:.u(r:,k)*x i(n*(k l l)+=n*k)+p(:.k);e ndy(N+l.)u y(N+l.)+x i(n*N+l j n*(N+l);e nde nd分别取步长九=1/(10*2,)(,=0,1,2,3),应用二级RadauIA方法和RadauIIA方法于例7.2,可获得其数值解。在表7.2中,我们给出了数值解的整体误差e rr=maxQi:f (i+j,Vi+j),i=ki,.,N k2,(22)j=-ki j=ki其中 A;1+k2=k,to=a,ti=t i-1 +h,h=(b
25、-a)/N,y,为 y g的逼近。为 了 求 解 方 程 组(2 2),我 们 仍 需 要k个 逼 近值班加,1,以-%+1,以,其可由k-1个与(22)同阶的线性多步公式ki kif y i+j =hf吃J gj,%+/),,=1,岛 一 1,(23)j=i j=ik ikii+jl/N-k+i+j=h f (tN-k+i+j l/N-k+i+j,=N 一 卷+1,.,Nj=T j=-i(24)及边界条件g o,U N)=O(25)给出。至此,我们即得到求解边值问题(1)-(2)的线性多步法(22)-(25)。为实现格式(22)-(25)的计算,我们将(22)-(24)写成矩阵形式其中y=(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 某大学 计算方法 课件 第七 微分方程 边值问题 数值 解法
限制150内