您所在位置: 网站首页 / MATLAB数值积分解读.ppt / 文档详情
MATLAB数值积分解读.ppt 立即下载
2024-12-12
约2千字
约28页
0
297KB
举报 版权申诉
预览加载中,请您耐心等待几秒...

MATLAB数值积分解读.ppt

MATLAB数值积分解读.ppt

预览

免费试读已结束,剩余 23 页请下载文档后查看

10 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

6MATLAB数值积分定积分:函数f(x)在区间[a,b]上的定积分定义为6.1数值积分基本原理
求解定积分的数值方法多种多样,如简单的梯形法、辛普生(Simpson)法、牛顿-柯特斯(Newton-Cotes)法等都是经常采用的方法。
它们的基本思想都是将整个积分区间[a,b]分成n个子区间[xi,xi+1],i=1,2,…,n,
其中x1=a,xn+1=b。
这样求定积分问题就分解为求和问题。6.2数值积分的实现方法
6.2.1变步长辛普生法
基于变步长辛普生法,MATLAB给出了quad函数来求定积分。该函数的调用格式为:
[I,n]=quad('fname',a,b,tol,trace)
其中fname是被积函数名。a和b分别是定积分的下限和上限。tol用来控制积分精度,缺省时取tol=0.001。trace控制是否展现积分过程,若取非0则展现积分过程,取0则不展现,缺省时取trace=0。返回参数I即定积分值,n为被积函数的调用次数。例1求定积分:

(1)建立被积函数文件fesin.m。
functionf=fesin(x)
f=exp(-0.5*x).*sin(x+pi/6);
(2)调用数值积分函数quad求定积分。
[S,n]=quad('fesin',0,3*pi)6.2.2牛顿-柯特斯法
基于牛顿-柯特斯法,MATLAB给出了quad8函数来求定积分。该函数的调用格式为:
[I,n]=quad8('fname',a,b,tol,trace)
其中参数的含义和quad函数相似,只是tol的缺省值取10-6。该函数可以更精确地求出定积分的值,且一般情况下函数调用的步数明显小于quad函数,从而保证能以更高的效率求出所需的定积分值。例2求定积分:


(1)被积函数文件fx.m。
functionf=fx(x)
f=x.*sin(x)./(1+cos(x).*cos(x));
(2)调用函数quad8求定积分。
I=quad8('fx',0,pi)例3分别用quad函数和quad8函数求定积分
的近似值,并在相同的积分精度下,比较函数的调用次数。
调用函数quad求定积分:
formatlong;
fx=inline('exp(-x)');
[I,n]=quad(fx,1,2.5,1e-10)

调用函数quad8求定积分:
formatlong;
fx=inline('exp(-x)');
[I,n]=quad8(fx,1,2.5,1e-10)6.2.3被积函数由一个表格定义
trapz(x,y)为梯形积分法,x表示积分区间的离散化向量,y是与x同维数的向量,表示被积函数在x处的函数值,z返回积分值。

例4用trapz函数计算定积分。
命令如下:
X=1:0.01:2.5;
Y=exp(-X);%生成函数关系数据向量
trapz(X,Y)
ans=
0.285796824163936.3二重定积分的数值求解
使用MATLAB提供的dblquad函数就可以直接求出上述二重定积分的数值解。该函数的调用格式为:
I=dblquad(f,a,b,c,d,tol,trace)
该函数求f(x,y)在[a,b]×[c,d]区域上的二重定积分。参数tol,trace的用法与函数quad完全相同。a,b
分别为x的上、下限,c,d分别为y上、下限。例5计算二重定积分


(1)建立一个函数文件fxy.m:
functionf=fxy(x,y)
globalki;
ki=ki+1;%ki用于统计被积函数的调用次数
f=exp(-x.^2/2).*sin(x.^2+y);
(2)调用dblquad函数求解。
globalki;ki=0;
I=dblquad('fxy',-2,2,-1,1)
kitriplequad(‘fun’,a,b,c,d,e,f)为三维矩形区域上的三
重数值积分,fun表示被积函数的M函数
名,a,b分别为x的上、下限,c,d分别为
y上、下限,e,f分别为z上、下限。2025/3/72025/3/72025/3/72025/3/72025/3/72025/3/72025/3/72025/3/7解:(1)Matlab代码为
clear;symsx;
int(x^2*sin(x))
运行结果为
ans=-x^2*cos(x)+2*cos(x)+2*x*sin(x)。用int及数值积分命令计算解:(1)先用int命令求精确值,相应的Matlab代码为用quad命令,先编写M文件
%M函数fun1.m
functiony=fun1(x)
y=x.^4;计算数值积分(2)用int命令求解:计算数值积分(2)用int命令求解:
查看更多
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

MATLAB数值积分解读

文档大小:297KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
全场最划算
12个月
199.0
¥360.0
限时特惠
3个月
69.9
¥90.0
新人专享
1个月
19.9
¥30.0
24个月
398.0
¥720.0
6个月会员
139.9
¥180.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用