实验6 数值积分.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验6 数值积分.doc

实验六 数值积分(Quadrature) 6.1 实验目的 掌握数值积分的代数精度与收敛阶的含义,会利用matlab求解符号积分和数值积分,并会借助数学软件Matlab求解一些简单的实际问题。 6.2 实验内容 1、Matlab中求解符号积分和数值积分的方法; 2、建立飞船的轨道周长和手的面积等实际问题的数学模型,并借助数学软件Matlab求解. 6.3 实验步骤 6.3.1 函数表达式已知时的积分 Matlab中求积分的方法包括符号积分(精确计算)和数值积分两种。前者只有一个命令int(注:求导数的命令为diff),后者命令较多,详见表1。 表1 Matlab中数值积分函数一览表 函数名 调用格式 方法说明 适应范围(详见Help) quad q=quad(fun,a,b,tol) 自适应Simpson 法 被积函数不光滑,低精度要求 quadl q=quadl(fun,a,b,tol) 自适应 Lobatto 法 被积函数光滑,高精度要求 quadgk [q,errbnd]= quadgk(fun,a,b,tol) 自适应Gauss- Kronrod 法 震荡型被积函数,高精度要求,积分限可为无穷 trapz q=trapz(X,Y) 梯形法 离散数据点积分 dblquad q = dblquad(fun, xmin,xmax,ymin,ymax) 调用一维数值积分方法 矩形区域上的二重积分 quad2d q = quad2d(fun,a,b,c,d) 平面区域上的二重积分 triplequad triplequad(fun,xmin,xmax,ymin,ymax,zmin,zmax) 调用一维数值积分方法 三维长方形区域上的三重积分 教师示范1:符号积分 int是matlab中符号工具箱的一个命令,它能精确计算不定积分和定积分,微积分教材中的积分一般均可用该种方法积出。 例1 求不定积分。 Matlab命令序列为: syms x s=int(-2*x/(1+x^2)^2) 运行结果为:1/(x^2 + 1),即 。 验算所得结果,即验证 , Matlab命令为:diff(s),运行结果为:-(2*x)/(x^2 + 1)^2. 其余见文件:integrate_symbolic.m。 教师示范2:数值积分 例2 求不定积分 Matlab命令为: format long q1 = quad(@(x) exp(-x.^2/2),0,2) q2 = quadl(@(x) exp(-x.^2/2),0,2) q3 = quadgk(@(x) exp(-x.^2/2),0,2) 结果分别为1.196288044999181,1.196288103140270和1.196288013322608。实际上, 由此,函数quadgk比quad、quadl的计算精度要高。 6.3.2 离散数据的数值积分 当函数的表达式未知,但已知函数在一系列节点处的函数值时,的计算有三种方法。方法1,利用表1中的梯形法;方法2,先用样条插值函数逼近未知函数,然后利用表1中的命令求该样条函数的积分;方法3,如果所求的图形可视为以点为顶点的多边形,则可利用多边形的面积公式(1) (1) 直接求解。 具体见例3。 例3 用不同方法计算不定积分,比较不同方法的精度。 程序如下。 %% 比较不同方法求定积分的精度 a = 0; b = 10; syms x; exact = vpa( int(cos(x),a,b), 20); % 符号定积分,小数点20位的精确值 q = zeros(7,1); q(1) = quad(@cos,a,b); q(2) = quadl(@cos,a,b); q(3) = quadgk(@cos,a,b); % 离散数据后,用梯形法求积分 t = a:0.1:b; y = cos(t); q(4) = trapz(t, y); % 用三次样条近似函数后,求积分 pp = spline( t, y ); q(5) = quad(@(t)ppval(pp,t),a,b); q(6) = quadl(@(t)ppval(pp,t),a,b); q(7) = quadgk(@(t)ppval(pp,t),a,b); % disp(精确值) disp(exact) format long; disp(近似值) disp(q); disp(各种方法的误差) for i = 1:7 fprintf(1,%12.10e\n,double( q(i)-exact ) ); end 以上程序运行结果见表2。 表2 Matlab中不同数值积分方法精度比较 函数 结果 方法说明 误

文档评论(0)

资料 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档