第十讲-数值积分和微分方程数值解课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第十讲-数值积分和微分方程数值解课件.ppt》由用户(ziliao2023)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第十 数值 积分 微分方程 课件
- 资源描述:
-
1、第十讲第十讲 数值积分和微分方程数值积分和微分方程数值解数值解一数值定积分求面积一数值定积分求面积【例例5-4-1】用数值积分法求由 ,y=0,x=0与x=10围成的图形面积,并讨论步长和积分方法对精度的影响。解:原理 用矩形法和梯形法分别求数值积分并作比较,步长的变化用循环语句实现。MATLAB中的定积分有专门的函数QUAD,QUADL等实现。为了弄清原理,我们先用直接编程的方法来计算,然后再介绍定积分函数及其调用方法。设x向量的长度取为n,即将积分区间分为n-1段,各段长度为 。算出各点的,则矩形法数值积分公式为:2115yx(1,2,1)ix in(1,2,1)iy in11niiisy
2、x矩形和梯形定积分公式 梯形法的公式为:比较两个公式,它们之间的差别只是 。在MATLAB中,把向量中各元素叠加的命令是sum。把向量中各元素按梯形法叠加的命令是trapz。梯形法的几何意义是把被积分的函数的各计算点以直线相联,形成许多窄长梯形条,然后叠加,我们把两种算法都编入同一个程序进行比较。11111222nniiniiiiiyyyyqxyx10.5nyy求面积的数值积分程序exn541for dx=2,1,0.5,0.1%设不同步长x=0:.1:10;y=-x.*x+115;%取较密的函数样本 plot(x,y),hold on%画出被积曲线并保持 x1=0:dx:10;y1=-x1.
3、*x1+115;%求取样点上的y1%用矩形(欧拉)法求积分,注意末尾去掉一个点 n=length(x1);s=sum(y1(1:n-1)*dx;q=trapz(y1)*dx;%用梯形法求积分 stairs(x1,y1);%画出欧拉法的积分区域 hold on;plot(x1,y1);%画出梯形法的积分区域 dx,s,q,pause(1),hold off;end 程序exn541运行结果程序运行的结果如下:步长dx 矩形法解s 梯形法解q2 9108101 865815 .5841.25816.25.1821.65816.65 用解析法求出的精确解为2450/3=816.6666.。dx=2时
4、矩形法和梯形法的积分面积见图5-4-1.。在曲线的切线斜率为负的情况下,矩形法的积分结果一定偏大,梯形法是由各采样点联线包围的面积,在曲线曲率为负(上凸)时,其积分结果一定偏小,因此精确解在这两者之间。由这结果也能看出,在步长相同时,梯形法的精度比矩形法高。矩形法数字积分的演示程序rsums MATLAB中有一个矩形法数字积分的演示程序rsums,可以作一个对比。键入rsums(115-x.2,0,10)就得到右图。图中表示了被积函数的曲线和被步长分割的小区间,并按各区间中点的函数值构成了各个窄矩形面积。用鼠标拖动图下方的滑尺可以改变步长的值,图的上方显示的是这些矩形面积叠加的结果。02468
5、10020406080100115-x.2 :816.99218816MATLAB内的数值定积分函数 在实际工作中,用MATLAB中的定积分求面积的函数quad和quadl可以得到比自编程序更高的精度,因为quad函数用的是辛普生法,即把被积函数用二次曲线逼近的算法,而quadl函数采用了更高阶的逼近方法。它们的调用格式如下:Q=QUADL(FUN,A,B,TOL)其中,FUN是表示被积函数的字符串,A是积分下限,B是积分上限。TOL是规定计算的容差,其默认值为1e-6 例如,键入S=quad(-x.*x+115,0,10)得到S=8.166666666666666e+002二求两条曲线所围图
6、形的面积二求两条曲线所围图形的面积【例例5-4-2】。设计算区间0,4上两曲线所围面积。解:原理:先画出图形,dx=input(dx=);x=0:dx:4;f=exp(-(x-2).2.*cos(pi*x);g=4*cos(x-2);plot(x,f,x,g,:r)2(2)cos(),()4cos(2)xxf xeg xx得到右图。从图上看到,其中既有f(x)g(x)的区域,也有f(x)g(x)的区域,求两条曲线所围图形的面积求两条曲线所围图形的面积(1)若要求两曲线所围总面积(不管正负),则可加一条语句 s=trapz(abs(f-g)*dx,在dx=0.001时,得到s=6.4774399
7、6919702若要求两曲线所围的f(x)g(x)的正面积,则需要一定的技巧.方法一。先求出交点x1,再规定积分上下限。x1=fzero(exp(-(x-2).2.*cos(pi*x)-4*cos(x-2),1)%把积分限设定为0 x1,求出积分结果再乘以2:x=0:dx:x1;f=exp(-(x-2).2.*cos(pi*x);g=4*cos(x-2);s1=2*trapz(abs(f-g)*dx在设定dx=0.001时,得到s1=2.30330486000857求两条曲线所围图形的面积求两条曲线所围图形的面积(2)方法二。调用MATLAB中求面积函数quad。这里的关键是建立一个函数文件,把
8、e1=f(x)-g(x)0的部分取出来。利用逻辑算式(e10),它在e10处取值为1,在e10)与e1作元素群乘法,正的e1将全部保留,而负的e1就全部为零。因此编出子程序exn542f.m如下:function e=exn542f(x)e1=exp(-(x-2).2.*cos(pi*x)-4*cos(x-2);e=(e1=0).*e1;将它存入工作目录下。于是求此积分的主程序语句为:s2=quad(exn542f,0,4)得到的结果为:s2=2.30330244952618三求曲线长度三求曲线长度【例【例5-4-3】设曲线方程及定义域为:用计算机做如下工作:(a)按给定区间画出曲线,再按n=
9、2,4,8份分割并画出割线。(b)求这些线段长度之和,作为弧长的近似值。(c)用积分来估算弧长,并与用割线计算的结果比较。解:原理:先按分区间算割线长度的方法编程,然后令分段数不断增加求得其精密的结果,最后可以与解析结果进行比较。因此编程应该具有普遍性,能由用户设定段数,并在任何分段数下算出结果。2()1,11f xxx 求曲线长度的程序exn543n=input(分段数目n=),%输入分段数目x=linspace(-1,1,n+1);%设定x向量y=sqrt(1-x.2);%求y向量plot(x,y),hold on%绘图并保持Dx=diff(x);%求各段割线的x方向长度%x向量长度为n+
10、1,Dx是相邻x元素的差,其元素数为nDy=diff(y);%Dy是相邻两个y元素的差Ln=sqrt(Dx.2+Dy.2);%求各割线长度L=sum(Ln)%求n段割线的总长度程序exn543的运行结果 程序运行后得到图5-32,在不同的n下,其数值结果为:n=2,L=2.82842712474619 n=4,L=3.03527618041008 n=8,L=3.10449606777484 n=1000L=3.14156635621648 我们已经可以大致猜测出它将趋向于,精确的极限值可用下列符号数学语句导出。x=syms x,y=sqrt(1-x2),L=int(sqrt(1+diff(y
展开阅读全文