打靶法求边值问题...docx
本科毕业论文设计J论文设计题目:打靶法求边值问题学院:理学院专业:数学应用数学班级:091学号:0907010228学生姓名:钟玲声指导教师:汪萌萌2013年4月21B打靶法求边值问题目录摘要:弓I言:2第一章常微分方程初值问题的解法3常微分方程的离散化31.2欧拉(Euler)方法41.3 改良的EUler方法61.4 龙格一库塔(RungeKUtta)方法71.5 4阶龙格一库塔公式91.6 线性多步法9第二章边值问题的数值解法U2.1 打靶法112.2 差分法15第三章Matlab数值解1163.1 常微分方程的解法错误!未定义书签。63.2 打靶法的matlab实现23致谢:27主要参考文献27摘要常微分方程在很多领域都有非常重要的应用,然而很多常微分方程的解是无法用解析解写出的,因而要借助于数值方法。本文介绍了常微分方程边值问题的常见解法,例如:欧拉法,龙格一库塔法等。而对于常微分方程边值问题,常见的解法有打靶法、有限差分法和有限元法等。在本文中,我们重点介绍了打靶法,并给出了相关算法,然后结合实例编写程序进行了上机实验。关键i司:常微分方程,初值问题,边值问题,打靶法AbstractOrdinarydifferentialequationsplayanimportantroleindifferentareas.However,mostequationscannotbeexpressedanalytically.Weneedtousenumericalmethods.Inthispaper,Wediscussthemethodsofsolvinginitialvalueproblem(IVP),suchasEulermethodRunge-Kuttamethod.Forboundaryvalueproblem(BVP),shootingmethod,finitedifferencemethod(FDM)andfiniteelementmethod(FEM)arepresented.Wemainlydiscussshootingmethodandgivethealgorithm.Numericalexperimentispresentedintheendofthepaper.KeyWOrdS:°dinarydifferentialequations,initialvalueproblem,boundaryvalueproblem,theshootingmethod引言虽然常微分方程理论开展已经有几百年,但目前仍然在开展中。特别是最近三十年,常微分方程迎来了开展的顶峰。常微分方程边值问题是常微分方程理论的重要组成局部,在众多科学技术领域中有着特别广泛的应用。打靶法是求解常微分方程边值问题的一种数值方法,它的根本思想是将微分方程的边值问题转化为初值问题来求解,它的比拟突出的特点是精度很高,程序很简单,实用性很强。边值问题:对阶常微分方程如果能在不同的两点。和力处,唯一地刻画个附加条件,并且在区间fb上求解,那么称此为边值问题。在微分方程中,所谓的边值问题就是我们给定的一个微分方程和一组被我们称之为边界条件的约束条件。边值问题的解一般情况下是符合特定的约束条件的微分方程的解。我们在求解这个微分方程时,除了给出方程的本身,往往还需要提供一定的定解条件。最常见的就是给出初值问题,也就是说给出的定解条件为初始条件;但是也有一些情况,定解条件要求我们考虑所讨论区域的边界,比方说在一个给定区间讨论时,把定解条件在区间的两个端点给出,给定的这种定解条件就被我们称之为边界条件,与之相应的定解问题我们就称之为边值问题。第一章常微分方程组初值问题的解法1.1 常微分方程的离散化下面主要讨论一阶常微分方程的初值问题,它的一般形式是2=f(x,y)a<x<b<axU/j()=No在下面的讨论中,总假定函数/(x,y)连续,且满足LiPSChitZ条件,也就是存在常数£,使得那么,根据常微分方程理论知,初值问题(1)的解存在并且唯一.所谓数值解法,就是求问题(1)的解y(x)在假设干点处的近似值y“5=l,2,N)的方法,%5=1,2,N)称为问题(1)的数值解,4=X向-%称为由%到Xe的步长今后如无特别说明,我们总取步长为常量h.建立数值解法,首先要将微分方程离散化,一般采用以下几种方法:1.1.1 用差商近似导数如果用向前差商场小的J代替y(%)代入(1)中的微分方程,那么得h化简得如果用y(%)的近似值”代入上式右端,所得结果作为),。向)的近似值,记为3那么有yn+=yn+hf(nyn)5=o,L)这样,问题(1)的近似解可通过求解下面的问题+=÷W,)5=0,l,)JO=)'()得到,按式(3)由初值为可逐次算出切,必,式子(3)是个离散化的问题,称为差分方程初值问题.需要说明的是,用不一样的差商近似导数,将得到不一样的计算公式.1.1.2 用数值积分方法将问题(1)的解表成积分形式,用数值积分方法离散化.例如,对微分方程两端积分,得到)(演+1)-y(n)=J;"a,y*)公(h=o,i)(4)右边的积分用矩形公式或梯形公式计算.1.1.3 Taylor多项式近似将函数y(x)在X”处展开,取一次TayIor多项式近似,那么得再将y(fl)的近似值代入上式右端,所得结果作为j(xm+1)的近似值jz+1,得到离散化的计算公式上面的三种方法都是将微分方程离散化的常用方法,每一类方法又可导出不同形式的计算公式.其中的TayIOr展开法,不仅可以得到求数值解的公式,而且容易估计截断误差.1.2欧拉CEUSQ方法1.2. 1EUIer方法Euler方法就是用差分方程初值问题(3)的解来近似微分方程初值问题(1)的解,即由公式(3)依次算出Ms)的近似值北)。这组公式求问题(1)的数值解称为向前EUler公式.如果在微分方程离散化时,用向后差商代替导数,也就是V3)""G7®),那么得计算公式hJ÷i=+hf(4+,K+1)5=0,1,)JO=y(a)用这组公式求问题(1)的数值解称为向后EUIer公式.向后Euler法与Euler法形式上相似,但实际计算时却复杂得多.向前Euler公式是显式的,可直接求解.向后EUler公式的右端含有为+因此是隐式公式,一般要用迭代法求解,迭代公式通常为<孀=Z,+好(,y)嫖丁=%+妙(K,瑞)()1.2.2EUIer方法的误差估计对于向前EUIer公式我们看到,因为=1,2,时公式右端的/都是近似的,所以用它计算的券包会有累积误差,分析累积误差比拟复杂,这里先讨论比拟简单的所谓局部截断误差.假设用(3)式时右端的先没有误差,即方=y(z),那么由此算出yrt+!=)+hf(xn,y(x,1)17局部截断误差指的是,按(7)式计算由当到与M这一步的计算值与精确值Mx+1)之差y(x*+)-y+i.为了估计它,根据Taylor展开得到的精确值y(xn+1)是h2y(n+i)=y(z)+汗(乙)+耳V'。)+。(3)(8)(7)、18)两式相减(注意到V=(x,y)得到序MZG-yN=5y''(z)+0()0()也就是局部截断误差是力2阶的,而数值算法的精度定义为:如果一种算法的局部截断误差为。(犷”),那么称该算法具有P阶精度.显然P越大,方法的精度越高。式(9)说明,向前EUler方法是一阶方法,因此它的精度不高。1.3 改良的EUIer方法1.3.1 梯形公式利用数值积分方法将微分方程离散化的时候,如果用梯形公式计算式(4)中之右端积分,即并用y,y用代替y6),y(),那么得计算公式这就是求解初值问题(1)的梯形公式.直观上容易看出,用梯形公式计算数值积分要比矩形公式好.梯形公式为二阶方法。梯形公式也是隐式格式,一般需用迭代法求解,迭代公式为yi÷=yn+hf(xn9yn)心<嫖;0=+5"(2,J+/(K,瑞)(10)(A=O,1,2,)由于函数f(x,y)关于y满足Lipschitz条件,容易看出其中L为LiPSChitZ常数.因此,当0<些<1时,迭代收敛.但是这样做计算量2较大.如果实际计算时精度要求不太高,用公式(10)求解时,每步可以只迭代一次,由此导出一种新的方法一改良Euler法.1.3.2 改良EUler法按照式(5)计算问题(1)的数值解时,如果每步只迭代一次,相当于将Euler公式与梯形公式结合使用:先用Euler公式求yf+的一个初步近似值yn+1,称为预测值,然后用梯形公式校正求得近似值乂用,即预测<h_(11)+=+-t(,%)+F(Xn+1,y,1+1)1校正式(三)称为由EUIer公式和梯形公式得到的预测一校正系统,也叫改良EUler法.为了便于编制程序上机,式子(11)常改写成,为=y+/(x十九“)Ve=5(%+%)改良EUIer法是二阶方法.1.4 龙格一库塔(Runge-Kutta方法回到Euler方法的根本思想一用差商代替导数.实际上,按照微分中值定理应有注意到方程y'=f(x,y)就有MX»1)=y(n)÷hf(n+必,y(+%)(13)不妨记K=f(xll+h,y(xn+h),称为区间xn,xn+上的平均斜率.可见给出一种斜率后,13)式就对应地导出一种算法.向前Euler公式简单地取了“,),”)为冗,精度自然很低.改良的Euler公式可理解为后取/(X.,yz),F(X+i,歹+1)的平均值,其中为f+='+,(%”,%),这种处理提高了精度.如上分析启示我们,在区间七,4+J内多取几个点,将它们的斜率加权平均作为后,就有可能构造出精度更高的计算公式.这就是龙格一库塔方法的根本思想.首先不妨在区间内仍取2个点,仿照(13)式用以下形式试一下”+i=K+力(4占+4a),K=(j(14)k2=f(xn+ah,y,+hkj,O<a,<l其中4,4,。,尸为待定系数,看看如何确定它们使(14)式的精度尽量高.为此我们分析局部截断误差W/+1)-Kx,因为齐=y(z),所以(14)可以化为y+i=M/)+-4匕+=后)K=F(Z,ya.)二)''。"),k2=f(n+My*)+hk)(15)=f<tl,y(n)+MA(,y()+hkfy(xfl,y(xn)+。(2)其中&在点(演,y(x,J)作了TayIOr展开.(15)式又可表为注意到中y=f,y,1=fx+ffy可见为使误差y(怎X)”M=Oa3),只须令4+,=l,2a=,2=1(16)2a待定系数满足(16)的(15)式称为2阶龙格一库塔公式.由于(16)式有4个未知数而只有3个方程,所以解不唯一.不难发现,假设令4=>2=g,a=P=,即为改良的EUler公式.可以证明,在怎,七川内只取2点的龙格一库塔公式精度最高为2阶.1.5四阶龙格一库塔公式要进一步提高精度,必须取更多的点,如取4点构造如下形式的公式:÷=K+力(4匕+4&+)占=/(%,/),k2=f(n+a/,y+hk)(17)&=f(xn+。2比yn+lhk+一妹2)女4=/(+4h,yn+0押1+5hk2+民儿3)其中待定系数4,生,月共13个,经过与推导2阶龙格一库塔公式类似、但更复杂的计算,得到使局部误差),(居)-ym=。(炉)的11个方程.取既满足这些方程、又较简单的一组4,%,夕,可得h%+1=2(匕+2k?+2&+3)OK=/(%,")<%2=/"+*%+争(.C,hhk2x&=f(xn+yn+k4=f(xn+htyn+hk3)这就是常用的4阶龙格一库塔方法简称RK方法).1.6线性多步法以上所介绍的各种数值解法都是单步法,这是因为它们在计算y,m时,都只用到前一步的值此,单步法的一般形式是y“+1=y”+力。®,”S=O1,n-i)(i9)其中9(x,y,%)称为增量函数,例如EUIer方法的增量函数为f(x,y),改良EUler法的增量函数为怎么样通过较多地利用前面的信息,如4,y,兄_,来构造高精度的算法计算+i,这就是多步法的根本思想.经常使用的是线性多步法.让我们试验一下r=l,即利用先,y-计算券+1的情况.从用数值积分方法离散化方程的4)式出发,记f(n,yn)fn,f(n-,yrt-)=->式中被积函数f(,y(%)用二节点("),(乙,力)的插值公式得到(因%),所以是外插.AX,ya)=力士五+九Iq-n-lx11-l(20)T(XTI)ZI-Jh此式在区间X,4+J上积分可得于是得到=Zl+(3-A-1)121)注意到插值公式(20)的误差项含因子(X-Zi)(X-Xzj),在区间%,与讨上积分后得出/,故公式(21)的局部截断误差为0(3),精度比向前EUler公式提高1阶.假设取=2,3,可以用类似的方法推导公式,如对于z=3有÷.=÷(55h-5+37A-2-)其局部截断误差为0(炉).如果将上面代替被积函数/(x,y(x)用的插值公式由外插改为内插,可进一步减小误差.内插法用的是方小了”,先/取=1时得到的是梯形公式,取-=3时可以得到h(9A+1+19力一5A-1+A-2)(23)与(22)式相比,虽然其局部截断误差仍为0(川),但因它的各项系数(绝对值)大为减小,误差还是小了.当然,123)式右端的工田未知,需要如同向后EUIer公式一样,用迭代或校正的方法处理.第二章边值问题的数值解法2.1 打靶法解两点边值问题y"=f(x,y,y,).axb-<y<+,(1)的打靶法实质上是把边值问题化为初值问题来解,我们设法确定y'()的值使得初值问题yn=/(x,y,y,)9axb-<y<+,(2)的解y(x/)在X=力的值yS")满足或者是其中£为我们允许的误差界限.这样,我们把ySM看作边值问题(1)的近似解.为此,可以采用逐次逼近的方法来实现.假设y(x)为边值问题的解,我们估计y'()的值为/°之后,求解初值问题(在中令”右).这样得到的解为y(xj°),并且计算得到ySo)=j.一般地,自。夕.但是如果A)=/或饱-川<£,那么把武苍公作为边值问题(1)的t=Az近似解;否那么的话,那么做适当的调整/0,例如取I°,那么在(2)中令t=t,再求解此初值问题.设计算得到它的解为y(,G,yS,G=自,假设用二/或族-川<e,那么y(x,%)作为边值问题(1)的近似解;否那么,再做适当的调整小如此重复计算,直至或|月-<£时,便以y(x,")作为边值问题(1)的近似解,参考下列图:上面的积分曲线(y=y("o)的夕。过大,下面的曲线(y=y(%4)的4过小.我们已经介绍了解常微分方程初值问题的数值方法.现在的问题是怎么样确定参数务当r="时,从初值问题计算得到解y(xjjt).自然地,我们希望Jimy(Z½)=yS)=尸.A因此,确定4的问题可以归纳为求方程y(b,t)-=0的近似根(3)是一个非线性方程.二分法,割线法和牛顿法都可以用来求解方程.假设用弦割法来求解方程(3),我们需要选取初始近似小,%,由公式tk =tk-(yS, )-0(% 一4-2) _ H QyS,%) - yS,g)'(4)生成序列匕.按照的方式求小直到仅S,)-川£为止,其中£为允许的误差界.令人=S-a)/MF=+M(i=L,N-1,N).给定初值小误差容限TO3最大迭代次数z.取r=f0,解初值问题得解y(%Jo)在X=Mi=I,N)的近似值:y(xld,y(J。),y(xN0)(=y(bjt0)如果仅(MZo)-川703那么输出作为初值问题的解在芭,4的近似值;停机令Zi=-2%,解初值问题(2)得解y(x")在x=%(i=l,N)的近似值:Xo)如果仅(/4)一""九,那么输出作为初值问题的解在芭,打的近似值;停机.对Z=2,3,根重复做。由(4)公式计算;令”小解初值问题的解y(x,“)在X=Xja=I,N)的(近似)值:如果Iy(XN,")-向八九,那么输出作为初值问题的解在石,与,"的近似解;停机.对第三边值问题,我们同样可以用打靶法求解.设第三边值问题为y=f(x,y,y'),(5)PIMa)+Qy'3)=a,IPI+MlW°,P2XS)+%y'S)=P+¾打靶法的根本过程如下:选取参数/0,令y'()=f0.设p(),那么可以由(6)式确定y(),从而得到初值问题y"=f(x,Hyf)9axb,<y()=(-q"o),(8)Pl求初值问题(8的解y(xJo)代入(7)式左端得如果4°=/?,那么y(xJo)为所求解的边值问题的近似解;如果用工夕,那么令设y<)=%(以取代野解初值问题(8),求得解y(x)后在代入式左端得从t,t,Bo,l出发,由割线法tk14)(%f-2)次=23(A-1-A-2)产生,2,以t2取代办解决初值问题(8)确定分,如此继续进行下去,求得序列tk,直到为止,TYu为误差容限.如果P=P2=O,那么(5),(6),(7)为第二边值问题,处理方法完全类似.2.2 差分法在这里我们介绍一种求解(1)的简单方法,我们以最简单的二阶常微分方程为例来说明边值问题的数值解法.解法可以用数值微分公式替代导数,将其变成代数方程,然后我们再求解,这种求解的方法我们通常把它叫做差分法./(xa.)=4)+O(2),(即中心差商)Ihy(xJ=丛迤T)-2y()Hxr)+052)即二阶差商)*令并略去y'()和),(王)用差商表示中的二次项,然后代入(1),这样我们就得到:12+-I='2%,%一)2?<%=1,2,一1,(io)y(a)=a=yQ1y(b)=yn.其中力»xa,=x0+kh(k=1,2,),x0=.n从(10)中解出加力,”,即为所求的常微分方程的计算解.一般情况下,(10)是一个非线性方程组,求解也比拟困难.但是,如果微分方程(1)中第一式的右端/为y,y'的线性函数时,那么方程组(IO)就可以转化成线性方程组,求解问题也就简单多了.第三章Matlab数值解3.1 常微分方程的解法3.1.1 .利用MaHab求解一阶方程初值问题在Matlab的工具箱中,给我们提供了很多求解常微分方程的功能函数.如ode45,ode23,odell3,其中。de45采用四五阶RK方法,是解非刚性常微分方程的首选方法,ode23采用二三阶RK方法,odell3采用的是多步法,效率一般比ode45高.Matlab的工具箱中没有Euler方法的功能函数.对简单的一阶方程的初值问题改良的EUIer公式为一阶微分方程初值问题的求解在MatIab中非常简单明了并且容易求解的方法,而且由于MatIab中内嵌的微分方程初值问题的求解方法是变步长的龙格库塔法,故而求解的结果是值得我们相信的.y,=f(x,y)J_yax<b)对于微分方程Um)二%,直接利用Matlab语言的内嵌函数ode45,按照调用格式x,y=ode45(即可求出最终的结果.其中工指函数名或所建立的M文件的文件名,X为离散节点向量,尤为初值.例:求解一阶微分方程初值问题:,2xy=y<y(Oi)J(O)=I先编写M文件fun.m:Functionf=fun(x,y)f=y-2*xy;命令窗口写入:x=0:0.2:l;x,y=ode45(fun,x,l)求解结果为:x,y=0.00001.00000.20001.18320.401.34160.601.48320.801.61251.00001.7321这个结果与四阶龙格库塔法求解结果相同,比改良欧拉法求解结果要精确得多.运用内嵌函数直接求解最大的优点是简洁方便,只要依照函数的调用格式调用即可,但是对于理解函数值解法的思想没有太大的帮助,故而要表达数值解法的具体思想,可以通过编写程序来实现.3.1.2 根据数值解法的思想编程实现对于一阶微分方程的初值问题y= .y(0) = 2(0x5)运用改良欧拉法和四阶龙格库塔法求解程序如下:(1)改良欧拉法建立如下M文件:a=0;b=5;n=120;xn=O;yn=2;h=(b-a)n;fori=l:nyp=yn-h*xn*yn*yn;xn=xn+h;yc=yn-h*(xn*yp*yp);yn=(yp+yc)2;end迭代次数n=120时求解结果:yn=0.07694733409450;假设n=5000时,求解结果yn=0.07692309052101.标准四阶龙格库塔法对于上述初值问题建立如下M文件:a=0;b=5;n=20;xn=0;yn=2;h-(b-a)/h;fori=l:n;kl-h*xn*yn*yn;xn=xn+h2;k2=-h*xn*(yn+kl/2)*(yn+kl/2);k3=-h*xn*(yn+k22)*(yn+k22);xn=xn+h2;k4=-h*xn*(yn+k32)*(yn+k3);yn=yn+(kl+2*k2+2*k3+k4)/6;end当迭代次数n二120的时候,获得计算结果:yn=0.07692668513821,比运用改良欧拉法迭代120步的效果都要好的多;儿当迭代次数n二120时,迭代结果yn=O.07692307941295根本已经到达精确解.3.1.3 结果分析对问题(1)的求解简单方便,但难于表达求解的具体思想:对于问题12)的求解运用变成实现,从实验角度帮助理解理论知识,不仅可以深入掌握求解方法的思想,而且还可以提高实践动手能力.问题(2)中,初值问题的精确解为yn=O.07692307,改良欧拉法在迭代到120步的时候误差还较大,迭代到5000步的时候误差较小,但是与精确解的误差仍然有出入,而且从迭代过程来看,迭代次数n越大,收敛速度越慢,效果不明显.而四阶龙格库塔法迭代20步的结果远远好于改良欧拉法120步的结果,当迭代到120步时已经跟精确解非常接近.故而龙格库塔法迭代不仅得到的解比改良欧拉法准确得多,而且收敛速度非常快,确实是一种很好的算法.但是唯一缺乏的是计算量大,这一矛盾很难解决.3.2 打靶法的Matlab实现3.2.1打靶法算法我们考虑两个边界条件的二阶常微分方程'yn=f(,y,y,)9a<x<b«y()=a,y(b)=其中,b,/是给定的常数,y是关于X的未知的函数,/是一个函数的微分方程的指定者,实现了y与X之间的关系.这是一个两点之间的边值问题.初始值问题需要两个条件被给定在相同的X值下,例如,y()=和y'()=y.因为两个独立的边界条件,上述两点边值问题是比拟难解决的问题.“打靶法”是一个初始值问题代替上述问题的根本思想.当然,我们并不知道在x=时),的导数值,但是我们可以猜想,然后进一步完善猜想的迭代.更确切的说是,我们对y'3)为未知,并使用割线法或者牛顿法(或者其他的方法求解非线性方程组)来确定y'()我们引入一个函数U,这是X的函数,但是它取决于一个参数t.即=U(Xj).我们使用/和表示"相对于X的偏导数.我们希望y是准确的,如果f是正确的选择.通过以下定义:当给定t的值,然后就可以求解上述关于"的初始值问题.一般与y是不等的,由于'()=r=y'3).但是如果r等于y'("),那么我们认为=y.因为我们不知道y'3),我们确定它在X=力边界条件.即,我们要求解/使得:(t)=u(b,t)-/3=O.如果我们找到了/使得阿)=0,这意味着SJ)=尸.因此,在X=。和x=8,满足两个相同的边界条件,换句话说,=y.因此,。)=0的解,必须满足t=y'().如果我们可以写出初始值问题(任意,)的解析式,我们可以写一个公式OQ)=(",)-/.当然,这一般是不可能的.然而,没有一个解析公式,我们仍然可以求解阿)=0的数值.对任何,初始值问题的数值方法可以用来找到一个近似解(ZM)(因此。).最简单的方法是使用割线法.为了到达这个目的,我们需要两个初始猜想:f。和力.我们也可以使用牛顿法:我们需要一种方法来计算导数。,由于¢(/)=USJ)-我们有“=孚Sj)-O=.tt如果我们定义了v(x,t)=ut,我们有一下的初始值问题y:在这里,对于”,/和-是y的第一和第二阶偏导数方程的上面设置是从偏导数相对于系统X获得.链式法那么是用来获得V的微分方程.现在,我们设t)=v(b.t).这是打靶法的方法,其中包括牛顿法求解的算法阿)=0:forj=0,1,2,.求解如下的微分方程系统,求解区间从广。到户人wff=f(x,u,w')Vff=fu(x,W,u,)v+fu.(x,u,u,)v,VLa二。M"令如果我们想使用在前面解决了的上述系统中的两个第二阶方程和U的方法,我们需要引入一个向量2=(,心匕1/)7和微分方程为2'二尸(九,2)的向量产.初始条件是z()=(j,0J)T.打靶法也使用于特征值问题:在/满足条件/(X,0,0,4)=0或者跟普遍,/在y是均匀的,即,对于任何常数c.注意y=0总是一个上述边值问题的解.事实上,一个特征值问题是一个特殊的边界值问题满足y=0始终是一个解决方案,有一个称为4的方程参数(或边界条件).特征值问题是确定非零解为4的特殊价值而存在的.特征值问题的解决方案是对4y(),其中丸是y特征值问题的特征.通常,有许多可能是无限的)的特征值和本征函数.利用打靶法,我们考虑初始值问题其中4为参数.由于该解决方案依赖于4,我们用符号"=。,田,但'和/代表第一和第二阶导数取决于x对于任何给定的4,我们可以解决上述的初始值问题.现在假设2满足条件那么y(x)=(x")是我们正在寻找的特征函数,4是相应的特征值.因此,我们只需要使用割线法或者牛顿法求解4的方程4(y)=0.如果使用割线法,我们只需要解决不同的迭代器的4初值问题.如果用牛顿法,我们必须得到关于),的”(y).因此,我们需要v(x,2)=-(x,2).我们需要一个初始值问题的y.这可以通过偏导数相对于的出数值问题,得到.我们有请注意,我们已经使用链式法那么微积分)为U得到方程.现在,你可以解决初始值问题(和一起),然后评估阳为任何给定的,3.2.2实例(1)用打靶法算法编写程序上机求解下面的实例:解编写算法如下(我们用D2u表示U的2阶导数,用DU表示U的一阶导数;用D2v表示V的2阶导数,用DV表示V的一阶导数):t0=0.forj=0,1,2,solvethefollowingsystemnumericallyfromx=-ltox=lD2u=f(x,u,Du)U(X=-I)=IDu(x=-l)=t(j)D2v=fu(x,u,Du)v+fDu(x,u,Du)DvV(X=T)=ODv(X=T)=Lsett(j+l)=t(j)-(u(x=l)-l)v(x=l).plot(t,y)用上面的程序上机进行测试,就会得到一个很接近精确解的一个解.(2)用打靶法算法编写程序上机求解下面的实例:解编写算法如下(我们用D2u表示U的2阶导数,用DU表示U的一阶导数;用D2v表示V的2阶导数,用DV表示V的一阶导数):to=o.forj=0,1,2,.solvethefollowingsystemnumericallyfromx=0tox=/4D2u=f(x,u,Du)U(X=O)=ODU(X=O)=t(j)D2v=fu(x,u,Du)v+fDu(x,u,Du)DvV(X=O)=ODv(x=0)=l.sett(j÷l)=t(j)-(u(x=4)-0)v(x=/4).plot(t,y)(3)用打靶法算法编写程序上机求解下面的实例:解编写算法如下(我们用D2u表示U的2阶导数,用DU表示U的一阶导数;用D2v表示V的2阶导数,用DV表示V的一阶导数):t0=0.forj=0,1,2,.solvethefollowingsystemnumericallyfromx-0tox-1D2u=f(x,u,Du)U(X=O)=ODU(X=O)=t(j)D2v=fu(x,u,Du)v+fDu(x,u,Du)DvV(X=O)=ODv(X=O)=Lsett(j÷l)=t(j)-(u(x=l)-0)v(x=l).plot(t,y)(4)用打靶法算法编写程序上机求解下面的实例:解编写算法如下(我们用D2u表示U的2阶导数,用DU表示U的一阶导数;用D2v表示V的2阶导数,用DV表示V的一阶导数):tO=O.forj=0,1,2,.solvethefollowingsystemnumericallyfromx-0tox=lD2u=f(x,u,Du)U(X=O)=ODu(x=0)=t(j)D2v=fu(x,u,Du)v+fDu(x,u,Du)DvV(X=O)=ODv(X=O)=Lsett(j+l)=t(j)-(u(x=l)-1)v(x=l).plot(t,y)(5)用打靶法算法编写程序上机求解下面的实例:解编写算法如下(我们用D2u表示U的2阶导数,用DU表示U的一阶导数;用D2v表示V的2阶导数,用DV表示V的一阶导数):t0=0.forj=0,1,2,.solvethefollowingsystemnumericallyfromx-0tox-1D2u=f(x,u,Du)U(X=O)=IDU(X=O)=t(j)D2v=fu(x,u,Du)v+fDu(x,u,Du)DvV(X=I)=ODv(x=l)=l.sett(j+l)=t(j)-(u(x=l)-2)v(x=l).plot(t,y)(6)用打靶法算法编写程序上机求解下面的实例:解编写算法如下(我们用D2u表示U的2阶导数,用DU表示U的一阶导数;用D2v表示V的2阶导数,用DV表示V的一阶导数):tO=O.forj=0,1,2,.solvethefollowingsystemnumericallyfromx=ltox=2D2u=f(x,u,Du)U(X=I)=ODU(X=I)=t(j)D2v=fu(x,u,Du)v+fDu(x,u,Du)DvV(X=I)=ODv(X=I)=Lsett(j+l)=t(j)-(u(x=2)-2)v(x=2).plot(t,y)(7)用打靶法算法编写程序上机求解下面的实例:t0=0.forj=0,1,2,.solvethefollowingsystemnumericallyfromx=ltox=2D2u=f(x,u,Du)u(x=l)=-0.5DU(X=I)=t(j)D2v=fu(x,u,Du)v+fDu(x,u,Du)DvV(X=I)=ODv(X=I)=Lsett(j÷l)=t(j)-(u(x=2)-ln2)v(x=2).plot(t,y)致谢:在本论文完成之际,我要由衷感谢汪萌萌老师在课题设计和论文写作上的精心指导,同时对所有帮助过我的老师以及同学致以最真诚的感谢。主要参考文献:1施吉林,刘淑珍,陈桂芝.计算机数值方法(M).北京.高等教育出版社.2009.165.2安乐.打靶法在常微分方程边值问题中的一些应用J.科技广场.2011年.05期.3夏必腊;王金山.自共飘常微分方程边值问题与变分问题的等价性JL大学数学.2011(03)4王国栋.常微分方程中数学建模思想的教学探讨J.中国科教创新导刊.2011年.22期.5王国栋.常微分方程中数学思想方法教学探讨J.科教新报(教育科研).2011年.22期.6朱美玲.常微分方程在数学建模中的应用J.太原城市职业技术学院学报.2011.05期.7吴德林.常微分方程教学探索J.读与写(教育教学刊).2011年04期.8张建龙.常微分方程教学改革的探索J.才智.2011.16期.19李培峦.几类非线性微分方程边值问题解的存在性及多解性研究D.中南大学.2010年.10连海强.几类非线性微分方程边值问题的解及应用D.曲阜师范大学.2010年.