null数学实验数学实验实验二
定积分的近似计算 问题背景和实验目的 问题背景和实验目的实验二、定积分的近似计算 定积分计算的基本公式是牛顿-莱布尼兹公式。但当被积函数的原函数不知道时,如何计算?这时就需要利用近似计算。特别是在许多实际应用中,被积函数甚至没有解析表达式,而是一条实验记录曲线,或一组离散的采样值,此时只能用近似方法计算定积分。 本实验主要研究定积分的三种近似计算算法:矩形法、梯形法和抛物线法。同时介绍 Matlab 计算定积分的相关函数。 矩形法 矩形法 定积分的定义:实验二、定积分的近似计算矩形法矩形法n 充分大,△x 充分小 定积分的近似:左点法右点法中点法左点法、右点法和中点法步长节点左点法、右点法和中点法矩形法举例解:矩形法举例a=0, b=1, n=100 (i = 0,1,2,...,100)矩形法举例 理论值: 左点法相对误差: 误差
分析
定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析
矩形法举例 右点法相对误差: 中点法相对误差:不同的方法有不同的计算精度定积分几何意义定积分几何意义梯形法 曲边小梯形的面积可以由直边小梯形的面积来近似 整个曲边梯形的面积:梯形法梯形法 如果我们 n 等分区间 [a,b],即令:则==>梯形公式梯形法梯形法举例解:==> 例:用梯形法计算下面定积分 ( 取 n=100 ), 并计算相对误差梯形法举例a=0, b=1, n=100, f (x) = 1/( 1+x2 ) 抛物线法 2n 等分区间 [a,b] ,得该直线用抛物线代替,计算精度是否会更好? 计算每个节点上的函数值:抛物线法 在区间 [x0, x2] 上,用过以下三点的抛物线来近似原函数 f (x) 。抛物线法 设过以上三点的抛物线方程为:则在区间 [x0, x2] 上,有y = x2 + x + = p1(x) 抛物线法抛物线法 同理可得: 相加即得:抛物线法抛物线法 整理后可得:或辛普森 (Simpson) 公式抛物线法公式抛物线法抛物线法==> 例:用抛物线法计算下面定积分 ( 取 n=100 ), 并计算相对误差解:a=0, b=1, n=100, yi = f (xi) = 1/( 1+xi2 ) 抛物线法Matlab 计算定积分函数介绍 梯形法:trapztrapz(x,y) x 为分割点(节点)组成的向量, y 为被积函数在节点上的函数值组成的向量。 Matlab 近似计算定积分的相关函数Matlab 计算定积分函数介绍trapz 举例前面的做法 例:用梯形法计算下面定积分 ( 取 n=100) 解: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函数trapz(x,1./(1+x.^2))trapz 举例抛物线法quad(f,a,b,tol)
f = f(x) 为被积函数,[a,b] 为积分区间,tol 为计算精度将自变量看成是向量 抛物线法:quad抛物线法quad 举例解:>> quad('1./(1+x.^2)',0,1)>> quad('1./(1+x.^2)',0,1,10e-10)>> quad('1./(1+x.^2)',0,1,10e-16)函数表达式一定要用 单引号 括起来!
涉及的运算一定要用 数组运算! 例:用 quad 计算定积分:quad 举例二重积分的计算 抛物线法计算二重积分: dblquaddblquad(f,a,b,c,d,tol) tol 为计算精度,若不指定,则缺省精度为 10-6 f(x,y) 可以由 inline 定义,或通过一个函数句柄传递 [a,b] 是第一积分变量的积分区间,[c,d] 是第二积分变量 的积分区间按字母顺序,大写字母排在小写字母的前面二重积分的计算dblquad 举例>> f=inline('4*x*y+3*y^2');
>> I=dblquad(f, -1,1,0,2) f(x,y) 中关于第一自变量的运算是数组运算, 即把 x 看成是向量,y 看成是标量。
也可以全部采用数组运算例2:计算二重积分>> dblquad(inline('4*x*y+3*x^2'),-1,1,0,2)>> dblquad(inline('4*x*y+3*x.^2'),-1,1,0,2)X例1:计算二重积分dblquad 举例dblquad 举例例:计算二重积分>> 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) 被积函数 f (x,y) 的另一种定义方法:匿名函数dblquad 举例int 符号积分int(f,a,b)
计算 f 关于默认自变量 的定积分,积分区间为[a,b]。int(f) 计算 f 关于默认自变量 的不定积分。int(f,v,a,b)
计算函数 f 关于自变量 v 的定积分,积分区间为 [a, b]int(f,v)
计算函数 f 关于自变量 v 的不定积分findsym(f,1) 符号积分: intint 符号积分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*y^2*sin(x)ans=-y*cos(x)ans=a*b+1/2*b^2 例:指出下面各条语句的输出结果int 举例int 举例 例:用 int 函数计算定积分:解:>> syms x;
>> f=1/(1+x^2);
>> int(f,x,0,1)>> f=sym('1/(1+x^2)');
>> int(f,x,0,1)>> int('1/(1+x^2)',x,0,1)或>> int('1/(1+x^2)',0,1)或或int 举例其它相关函数double(a)
将 a 转化为双精度型,若 a 是字符,则取对应的 ASCII 码>> a=3;
>> double(a)
>> double('a')例:ans = 3ans = 97其它相关函数数值实验>> x=1:0.001:2;
>> y=exp(x.^(-2));
>> trapz(x,y) 梯形法: 抛物线法:>> quad('exp(x.^(-2))',1,2,10e-10) 符号积分法:>> syms x
>> int('exp(x^(-2))',x,1,2)例 1:用 Matlab 函数近似计算积分数值实验数值实验 抛物线法:>> dblquad(inline('x+y^2')),0,2,-1,1) 符号积分法:>> f=int('x+y^2','y',-1,1);
>> int(f,0,2)数值实验例 2:用 Matlab 函数近似计算二重积分上机作业 教材第 75 页:2、3、6 作业(要求写实验报告)上机作业