MATLAB实验二定积分的模拟计算_第1页
MATLAB实验二定积分的模拟计算_第2页
MATLAB实验二定积分的模拟计算_第3页
MATLAB实验二定积分的模拟计算_第4页
MATLAB实验二定积分的模拟计算_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、q 问题背景和实验目的实验二、定积分的近似计算u 定积分计算的基本公式是牛顿莱布尼兹公式。但当被积函数的原函数不知道时,如何计算?这时就需要利用近似计算。特别是在许多实际应用中,被积函数甚至没有解析表达式,而是一条实验记录曲线,或一组离散的采样值,此时只能用近似方法计算定积分。u 本实验主要研究定积分的三种近似计算算法:矩形法、梯形法和抛物线法。同时介绍 Matlab 计算定积分的相关函数。q 矩形法u 定积分的定义:实验二、定积分的近似计算badxxf)(,1iiixx0 x1x2x1nxnx 1x2x1ix ix nx,)(iixf ,1iiixxxiixxmax0limxnixni 1矩

2、形法1( )(), nbiiaif x dxfx n 充分大,x 充分小u 定积分的近似:l 通常我们取nxxx21nabh左点法右点法中点法l 点 可以任意选取,常见的取法有: 左端点 ,右端点 和中点 。,1iiixx1ixix2/ )(1iixx()/ixhban, 1 2ixaihi, ,n步长节点u 右点法:11( )()()nnbiiaiif x dxfxhf xixu 中点法:1111( )()22(nnbiiiaiixxf x dxfxhfiixx111( )()()nnbiiaiif x dxfxhf x-1ixu 左点法:左点法、右点法和中点法相应的 Matlab 程序见

3、fuluA.m解:矩形法举例h =1/100=0.01, xi = i*h, a=0, b=1, n=100 u 例:用不同的矩形法计算下面的定积分 ( 取 n=100 ), 并比较这三种方法的相对误差。1021xdxl 左点法:niiniixhxfhxdx1121110211 )(1 0.78789399673078l 右点法:1201()1niidxhf xx 0.78289399673078 0.78540024673078niiixxfhxdx11102)2(1l 中点法:(i = 0,1,2,.,100)11020arctan1dxxx40.78789399673078/4/40.0

4、03178l 理论值:l 左点法相对误差:0.78289399673078/4/40.0031880.78540024673078/4/4 -62.65310 u 误差分析矩形法举例l 右点法相对误差:l 中点法相对误差:不同的方法有不同的计算精度有没有更好的近似计算定积分的方法 ?)(xfab1ixixxyobadxxfS)(1S2SiSnSniibaSdxxfS1)(定积分几何意义iSiiiixyyS21nixfyii, 2 , 1 ),(u 曲边小梯形的面积可以由直边小梯形的面积来近似u 整个曲边梯形的面积:badxxfS)(iniiiniixyyS1112梯形法u 如果我们 n 等分区

5、间 a,b,即令:badxxfS)(niiiiniiiniiyyhxyyS1111122nxxx21nabh则22)(110nnbayyyyhdxxf梯形公式梯形法梯形公式与中点公式有什么区别 ?Matlab 程序见 fuluB.m解:101120122nndxyyhyyx 0.78539399673078u 例:用梯形法计算下面定积分 ( 取 n=100 ), 并计算相对误差梯形法举例1021xdxa=0, b=1, n=100, f (x) = 1/( 1+x2 ) h =1/100=0.01, xi = i*h, yi = f (xi) l 相对误差:0.78539399673078/4

6、/4-65.30510 u 2n 等分区间 a,b ,得该直线用抛物线代替,计算精度是否会更好?11, , 0,1,22ibahxihinnu 计算每个节点上的函数值:nixfyii2 , 1 , 0 ),(抛物线法u 在区间 x0, x2 上,用过以下三点),( ),( ),(222111000yxPyxPyxP的抛物线来近似原函数 f (x) 。u 设过以上三点的抛物线方程为:则在区间 x0, x2 上,有y = x2 + x + = p1(x) 2020)()(1xxxxdxxpdxxf20) (2xxdxxx20 2 3 23xxxxx20012 (4)6xxyyy012 (4)6ba

7、yyyn抛物线法3322202020()()()32xxxxxx 22200022()()6xxxxxx 22020()2 ()4xxxx u 同理可得:)4(6)( )4(6)(2122243222242nnnxxxxyyynabdxxfyyynabdxxfnnu 相加即得:2221222121( )( ) (4) 6iinbxaxiniiiif x dxf x dxbayyyn抛物线法u 整理后可得:)(2 )(46 )(2242123120nnnbayyyyyyyynabdxxf或辛卜生 (Simpson) 公式抛物线法公式抛物线法Matlab 程序见 fuluC.m)(46112312

8、0102nnyyyyynabxdx 0.78539816339745)(22242nyyyu 例:用抛物线法计算下面定积分 ( 取 n=100 ), 并计算相对误差1021xdx解:a=0, b=1, n=100, yi = f (xi) = 1/( 1+xi2 ) 0.78539816339745/4/4-162.82710 l 相对误差:抛物线法u 梯形法:trapztrapz(x,y)x 为分割点(节点)组成的向量,y 为被积函数在节点上的函数值组成的向量。22)(110nnbayyyynabdxxf,x10nxxx01y (),(),()nf xf xf xq Matlab 近似计算定

9、积分的相关函数Matlab 计算定积分函数介绍前面的做法u 例:用梯形法计算下面定积分 ( 取 n=100 1021xdx解:a=0, b=1, n=100, yi = f (xi) = 1/( 1+xi2 ) x=0:1/100:1; y=1./(1+x.2); trapz(x, y)trapz函数1012120122nndxbayyyyyxntrapz(x,1./(1+x.2)trapz 举例quad(f,a,b,tol)f = f(x) 为被积函数,a,b 为积分区间,tol 为计算精度将自变量看成是向量badxxf)(u 抛物线法:quadl 不用自己分割积分区间l 可以指定计算精度,

10、若不指定,缺省精度是 10-6l 精度越高,函数运行的时间越长l 此处的函数 f 是数值形式,应该使用数组运算,即 点运算:.*,./ ,. ,. 注:抛物线法1021xdx解: quad(1./(1+x.2),0,1) quad(1./(1+x.2),0,1,1e-10) quad(1./(1+x.2),0,1,1e-16)函数表达式一定要用 单引号 括起来!涉及的运算一定要用 数组运算!u 例:用 quad 计算定积分:quad 举例q 抛物线法计算二重积分: dblquaddblquad(f,a,b,c,d,tol)u tol 为计算精度,若不指定,则缺省精度为 10-6( , )dbc

11、af x y dxdy u f(x,y) 可以由 inline 定义,或通过一个函数句柄传递u a,b 是第一积分变量的积分区间,c,d 是第二积分变量 的积分区间按字母顺序,大写字母排在小写字母的前面二重积分的计算21201(43)Ixyydxdy f=inline(4*x*y+3*y2); I=dblquad(f,-1,1,0,2)u f(x,y) 中关于第一自变量的运算是数组运算, 即把 x 看成是向量,y 看成是标量。 也可以全部采用数组运算例2:计算二重积分 20112)34(dxdyxxy dblquad(inline(4*x*y+3*x2),-1,1,0,2) dblquad(i

12、nline(4*x*y+3*x.2),-1,1,0,2)X例1:计算二重积分dblquad 举例例:计算二重积分 20112)34(dxdyxxy dblquad(x,y)4*x*y+3*x.2 , -1, 1, 0, 2)指定 x、y 分别是第一和第二积分变量 dblquad(inline(4*x*y+3*x.2) ,-1, 1, 0, 2)q 被积函数 f (x,y) 的另一种定义方法:匿名函数 dblquad(y,x)4*x*y+3*x.2 , -1, 1 , 0, 2 )下面的命令运行结果和上面的一样吗?dblquad 举例int(f,a,b) 计算 f 关于默认自变量 的定积分,积分

13、区间为a,b。int(f) 计算 f 关于默认自变量 的不定积分。int(f,v,a,b) 计算函数 f 关于自变量 v 的定积分,积分区间为 a, bint(f,v) 计算函数 f 关于自变量 v 的不定积分badvvf)( )f v dvfindsym(f,1)q 符号积分: int符号积分 syms x y; f=y*sin(x); int(f,x) int(f,y) int(f) int(a+b)ans=-y*cos(x)ans=1/2*y2*sin(x)ans=-y*cos(x)ans=a*b+1/2*b2u 例:指出下面各条语句的输出结果int 举例u 例:用 int 函数计算定积

14、分:解: syms x; f=1/(1+x2); int(f,x,0,1) f=sym(1/(1+x2); int(f,x,0,1) int(1/(1+x2),x,0,1)或 int(1/(1+x2),0,1)1021xdx或或int 举例double(a) 将 a 转化为双精度型,若 a 是字符,则取对应的 ASCII 码 a=3; double(a) double(a)例:ans = 3ans = 97其它相关函数221dxex x=1:0.001:2; y=exp(x.(-2); trapz(x,y)l 梯形法:l 抛物线法: quad(exp(x.(-2),1,2,10e-10)l 符

15、号积分法: syms x int(exp(x(-2),x,1,2)例 1:用 Matlab 函数近似计算积分数值实验20112)(dyyxdxl 抛物线法: dblquad(inline(x+y2),0,2,-1,1)l 符号积分法: f=int(x+y2,y,-1,1); int(f,x,0,2)数值实验例 2:用 Matlab 函数近似计算二重积分u 教材第 75 页:2、3、6q 作业(要求写实验报告)上机作业l 没有提到使用Matlab函数的题必须使用编程完成l 要求使用Matlab函数或命令的必须使用函数或命令u 做题时要注意题目的要求:)(xfab1ixixxyobadxxfS)(

16、1S2SiSnSniibaSdxxfS1)(定积分几何意义u 设过以上三点的抛物线方程为:则在区间 x0, x2 上,有y = x2 + x + = p1(x) 2020)()(1xxxxdxxpdxxf20) (2xxdxxx20 2 3 23xxxxx20012 (4)6xxyyy012 (4)6bayyyn抛物线法3322202020()()()32xxxxxx 22200022()()6xxxxxx 22020()2 ()4xxxx u 整理后可得:)(2 )(46 )(2242123120nnnbayyyyyyyynabdxxf或辛卜生 (Simpson) 公式抛物线法公式抛物线法M

17、atlab 程序见 fuluC.mq 抛物线法计算二重积分: dblquaddblquad(f,a,b,c,d,tol)u tol 为计算精度,若不指定,则缺省精度为 10-6( , )dbcaf x y dxdy u f(x,y) 可以由 inline 定义,或通过一个函数句柄传递u a,b 是第一积分变量的积分区间,c,d 是第二积分变量 的积分区间按字母顺序,大写字母排在小写字母的前面二重积分的计算21201(43)Ixyydxdy f=inline(4*x*y+3*y2); I=dblquad(f,-1,1,0,2)u f(x,y) 中关于第一自变量的运算是数组运算, 即把 x 看成是向量,y 看成是标量。 也可以全部采用数组运算例2:计算二重积分 20112)34(dxdyxxy db

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论