好文档 - 专业文书写作范文服务资料分享网站

(整理)实验6数值积分.

天下 分享 时间: 加入收藏 我要投稿 点赞

精品文档

实验六 数值积分(Quadrature)

6.1 实验目的

掌握数值积分的代数精度与收敛阶的含义,会利用matlab求解符号积分和数值积分,并会借助数学软件Matlab求解一些简单的实际问题。 6.2 实验内容

1、Matlab中求解符号积分和数值积分的方法;

2、建立飞船的轨道周长和手的面积等实际问题的数学模型,并借助数学软件Matlab求解. 6.3 实验步骤

6.3.1 函数表达式已知时的积分

Matlab中求积分的方法包括符号积分(精确计算)和数值积分两种。前者只有一个命令int(注:求导数的命令为diff),后者命令较多,详见表1。

表1 Matlab中数值积分函数一览表 函数名 quad 调用格式 q=quad(fun,a,b,tol) 适应范围(详见Help) 被积函数不光自适应Simpson 滑,低精度要法 求 方法说明 自适应 Lobatto 滑,高精度要法 求 被积函数光quadl q=quadl(fun,a,b,tol) quadgk [q,errbnd]= quadgk(fun,a,b,tol) 震荡型被积函自适应Gauss- 数,高精度要Kronrod 法 求,积分限可为无穷 梯形法 离散数据点积分 trapz q=trapz(X,Y) q = dblquad(fun, xmin,xmax,ymin,ymax) dblquad 调用一维数矩形区域上的值积分方法 二重积分 平面区域上的二重积分 quad2d q = quad2d(fun,a,b,c,d) triplequad(fun,xmin,xmtriplequad ax,ymin,ymax,zmin,zmax) 精品文档

三维长方形区调用一维数域上的三重积值积分方法 分 精品文档

教师示范1:符号积分

int是matlab中符号工具箱的一个命令,它能精确计算不定积分和定积分,微积分教材中的积分一般均可用该种方法积出。

例1 求不定积分??2xdx。

(1?x2)2Matlab命令序列为: syms x

s=int(-2*x/(1+x^2)^2) 运行结果为:1/(x^2 + 1),即

?2x1dx?。 2?(1?x2)21?x验算所得结果,即验证

d?1??2x?, ??dx?1?x2?(1?x2)2Matlab命令为: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。实际上,

1.960e?x22dx

?1.960e?x22dx?1.19628801332260820293142377047

由此,函数quadgk比quad、quadl的计算精度要高。

6.3.2 离散数据的数值积分

当函数的表达式未知,但已知函数在一系列节点处的函数值时,?f(x)dx的

ab计算有三种方法。方法1,利用表1中的梯形法;方法2,先用样条插值函数逼

精品文档

精品文档

近未知函数,然后利用表1中的命令求该样条函数的积分;方法3,如果所求的图形可视为以点(xi,yi)为顶点的多边形,则可利用多边形的面积公式(1)

1?n?1?A????xkyk?1?xk?1yk??xny1?x1yn? (1)

2?k?1?直接求解。

具体见例3。

例3 用不同方法计算不定积分?cosxdx?sin10,比较不同方法的精度。

010程序如下。

%% 比较不同方法求定积分的精度 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)

精品文档

(整理)实验6数值积分.

精品文档实验六数值积分(Quadrature)6.1实验目的掌握数值积分的代数精度与收敛阶的含义,会利用matlab求解符号积分和数值积分,并会借助数学软件Matlab求解一些简单的实际问题。6.2实验内容1、Matlab中求解符号积分和数值积分的方法;2、建立飞船的轨道周长和手的面积等实际问题的
推荐度:
点击下载文档文档为doc格式
6mqpi5712g2xzhu2kzn0175lm26knl009zd
领取福利

微信扫码领取福利

微信扫码分享