Matlab求解边值问题方法+例题ppt课件.ppt

上传人:牧羊曲112 文档编号:2002420 上传时间:2022-12-30 格式:PPT 页数:10 大小:209.50KB
返回 下载 相关 举报
Matlab求解边值问题方法+例题ppt课件.ppt_第1页
第1页 / 共10页
Matlab求解边值问题方法+例题ppt课件.ppt_第2页
第2页 / 共10页
Matlab求解边值问题方法+例题ppt课件.ppt_第3页
第3页 / 共10页
Matlab求解边值问题方法+例题ppt课件.ppt_第4页
第4页 / 共10页
Matlab求解边值问题方法+例题ppt课件.ppt_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《Matlab求解边值问题方法+例题ppt课件.ppt》由会员分享,可在线阅读,更多相关《Matlab求解边值问题方法+例题ppt课件.ppt(10页珍藏版)》请在三一办公上搜索。

1、把待解的问题转化为标准边值问题 因为边值问题可以多解,所以需要为期望解指定一个初始猜测解。该猜测解网(Mesh)包括区间a, b内的一组网点(Mesh points)和网点上的解S(x)根据原微分方程构造残差函数利用原微分方程和边界条件,借助迭代不断产生新的S(x),使残差不断减小,从而获得满足精度要求的解,Matlab求解边值问题方法:bvp4c函数,solinit=bvpinit(x,v,parameters)生成bvp4c调用指令所必须的“解猜测网”sol=bvp4c(odefun,bcfun,solinit,options,p1,p2,)给出微分方程边值问题的近似解sxint=deva

2、l(sol,xint)计算微分方程积分区间内任何一点的解值,Matlab求解边值问题的基本指令,solinit=bvpinit(x,v,parameters)x指定边界区间a,b上的初始网络,通常是等距排列的(1M)一维数组。注意:使x(1)=a,x(end)=b;格点要单调排列。v是对解的初始猜测solinit(可以取别的任意名)是“解猜测网(Mesh)”。它是一个结构体,带如下两个域:solinit.x是表示初始网格有序节点的(1M)一维数组,并且solinit.x(1)一定是a,solinit.x(end)一定是b。M不宜取得太大,10数量级左右即可。solinit.y是表示网点上微分方

3、程解的猜测值的(NM)二维数组。solinit.y(:,i)表示节点solinit.x(i)处的解的猜测值。,初始解生成函数:bvpinit(),sol=bvp4c(odefun,bcfun,solinit,options,p1,p2,)输入参数:odefun是计算导数的m函数文件。该函数的基本形式为:dydx=odefun(x,y,parameters,p1,p2,),在此,自变量x是标量,y,dydx是列向量。bcfun是计算边界条件下残数的m函数文件。其基本形式为:res=bcfun(ya,yb,parameters,p1,p2,),文件输入宗量ya,yb是边界条件列向量,分别代表y在a

4、和b处的值。res是边界条件满足时的残数列向量。注意:例如odefun函数的输入宗量中包含若干“未知”和“已知”参数,那么不管在边界条件计算中是否用到,它们都应作为bcfun的输入宗量。输入宗量options是用来改变bvp4c算法的控制参数的。在最基本用法中,它可以缺省,此时一般可以获得比较满意的边值问题解。如需更改可采用bvpset函数,使用方法同odeset函数。输入宗量p1,p2等表示希望向被解微分方程传递的已知参数。如果无须向微分方程传递参数,它们可以缺省。,边值问题求解指令:bvp4c(),输出参数:输出变量sol是一个结构体sol.x是指令bvp4c所采用的网格节点;sol.y是

5、y(x)在sol.x网点上的近似解值;sol.yp是y(x)在sol.x网点上的近似解值;sol.parameters是微分方程所包含的未知参数的近似解值。 当被解微分方程包含未知参数时,该域存在。,边值问题求解指令:bvp4c(),原方程组等价于以下标准形式的方程组:,solinit=bvpinit(linspace(0,1,10),1 0);sol=bvp4c(ODEfun,BCfun,solinit);x=0:0.05:0.5;y=deval(sol,x);xP=0:0.1:0.5;yP=0 -0.41286057 -0.729740656. -0.95385538 -1.0874332

6、5 -1.13181116;plot(xP,yP,o,x,y(1,:),r-)legend(Analytical Solution,Numerical Solution)% 定义ODEfun函数function dydx=ODEfun(x,y)dydx=y(2);y(1)+10;% 定义BCfun函数function bc=BCfun(ya,yb)bc=ya(1);yb(1);,求解两点边值问题:,令:,边界条件为:,边值问题的求解,原方程组等价于以下标准形式的方程组:,solinit=bvpinit(linspace(0,1,10),0 1);sol=bvp4c(ODEfun,BCfun,s

7、olinit);x=0:0.1:1;y=deval(sol,x);xP=0:0.1:1.0;yP=1 1.0743 1.1695 1.2869 1.4284. 1.5965 1.7947 2.0274 2.3004 2.6214 3;plot(xP,yP,o,x,y(1,:),r-)legend(Analytical Solution,Numerical Solution,.location,Northwest)legend boxoff% 定义ODEfun函数function dydx=ODEfun(x,y)dydx=y(2);(1+x2)*y(1)+1;% 定义BCfun函数functio

8、n bc=BCfun(ya,yb)bc=ya(1)-1;yb(1)-3;,求解:,令:,边界条件为:,边值问题的求解,c=1;solinit=bvpinit(linspace(0,4,10),1 1);sol=bvp4c(ODEfun,BCfun,solinit,c);x=0:0.1:4;y=deval(sol,x);plot(x,y(1,:),b-,sol.x,sol.y(1,:),ro)legend(解曲线,初始网格点解)% 定义ODEfun函数function dydx=ODEfun(x,y,c)dydx=y(2);-c*abs(y(1);% 定义BCfun函数function bc=B

9、Cfun(ya,yb,c)bc=ya(1);yb(1)+2;,求解:,令:,边值问题的求解,solinit=bvpinit(linspace(0,pi,10),1;1,lmb);opts=bvpset(Stats,on);sol=bvp4c(ODEfun,BCfun,solinit,opts);lambda=sol.parametersx=0:pi/60:pi;y=deval(sol,x);plot(x,y(1,:),b-,sol.x,sol.y(1,:),ro)legend(解曲线,初始网格点解)% 定义ODEfun函数function dydx=ODEfun(x,y,lmb)q=15;dy

10、dx=y(2);-(lmb-2*q*cos(2*x)*y(1);% 定义BCfun函数function bc=BCfun(ya,yb,lmb)bc=ya(1)-1;ya(2);yb(2);,求解:,边界条件:,本例中,微分方程与参数的数值有关。一般而言,对于任意的值,该问题无解,但对于特殊的值(特征值),它存在一个解,这也称为微分方程的特征值问题。对于此问题,可在bvpinit中提供参数的猜测值,然后重复求解BVP得到所需的参数,返回参数为sol.parameters,边值问题的求解,infinity=6;solinit=bvpinit(linspace(0,infinity,5),0 0 1);options=bvpset(stats,on);sol=bvp4c(ODEfun,BCfun,solinit,options);eta=sol.x;f=sol.y;fprintf(n);fprintf(Cebeci ,求解:,边界条件:,如果取1,计算结果如何?,边值问题的求解,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号