第7章--MATLAB数值积分与数值微分PPT课件

合集下载

2024版matlab教程(全)资料ppt课件

2024版matlab教程(全)资料ppt课件

进行通信系统的建模、仿真和分析。
谢谢聆听
B
C
变量与赋值
在MATLAB中,变量不需要事先声明,可以 直接赋值。变量名以字母开头,可以包含字 母、数字和下划线。
常用函数
MATLAB提供了丰富的内置函数,如sin、 cos、tan等三角函数,以及abs、sqrt等数 学函数。用户可以通过help命令查看函数的
D
使用方法。
02 矩阵运算与数组操作
错误处理
阐述try-catch错误处理机制的语法、 执行流程及应用实例。
04
函数定义与调用
函数概述
阐述函数的概念、作用及分类,包括内置函数和 自定义函数。
函数调用
深入剖析函数的调用方法,包括直接调用、间接 调用及参数传递等技巧。
ABCD
函数定义
详细讲解自定义函数的定义方法,包括函数名、 输入参数、输出参数及函数体等要素。
拟合方法
利用已知数据点构造近似函数,如最小二乘法、多项 式拟合、非线性拟合等。
插值与拟合的比较
插值函数经过所有数据点,而拟合函数则追求整体上 的近似。
数值积分与微分
01
数值积分方法
利用数值技术计算定积分的近似 值,如矩形法、梯形法、辛普森 法等。
02
数值微分方法
通过数值技术求解函数的导数或 微分,如差分法、中心差分法、 五点差分法等。
02
01
矩阵运算
加法与减法
对应元素相加或相减,要求矩阵 大小相同
乘法
使用`*`或`mtimes`函数进行矩阵 乘法,要求内维数相同
点乘与点除
使用`.*`、`./`进行对应元素相乘或 相除,要求矩阵大小相同
特征值与特征向量

第7章 MATLAB数值积分与数值微分PPT教学课件

第7章 MATLAB数值积分与数值微分PPT教学课件
第7章 MATLAB数值积分与数值微分
MATLAB数值积分 MATLAB数值微分
2020/12/10
1
7.1 数值积分
7.1.1 数值积分基本原理 求解定积分的数值方法多种多样,如简单方法:
梯形法、辛普生(Simpson)法、牛顿-柯特斯 (Newton-Cotes)法等方法。它们的基本思想都是 将整个积分区间[a,b]分成n个子区间[xi,xi+1], i=1,2,…,n,其中x1=a,xn+1=b。求定积分问题就分 解为求和问题。
其中,fname是被积函数名。a和b分别是定积分的下 限和上限。tol用来控制积分精度,默认时取tol=10-6。 trace控制是否展现积分过程,若取非0则展现积分过 程,取0则不展现,默认时取trace=0。返回参数I即 定积分值,n为被积函数的调用次数。
2020/12/10
3
例7-1 求定积分。
2020/12/10
10
例7-4 用trapz函数计算定积分。 命令如下:
X=1:0.01:2.5; Y=exp(-X); %生成函数关系数据向量 trapz(X,Y) ans =
0.2858
2020/12/10
Байду номын сангаас11
7.1.3 多重定积分的数值求解
MATLAB提供的dblquad函数用于求二重积分的数值 解,triplequad函数用于求三重积分的数值解。函 数的调用格式为
2020/12/10
2
7.1.2 数值积分的实现方法
1.变步长辛普生法
基于变步长辛普生法,MATLAB给出了quad函数和 quadl函数来求定积分。函数的调用格式为:
[I,n]=quad(@fname,a,b,tol,trace)

matlab ppt课件

matlab ppt课件
02
它提供了大量的内置函数和工具箱,用于支持各种 领域的科学研究、工程设计和数据分析。
03
Matlab具有简单易学的语法和强大的计算能力,使 得非专业的编程人员也能够轻松地使用。
Matlab的发展历程
01 Matlab最初是由MathWorks公司于1980年代开 发的,作为一款商业数学软件。
02 经过多年的发展,Matlab的功能不断扩大和完善 ,逐渐成为一款成熟的科学计算软件。
1 2
矩阵运算
Matlab提供了丰富的矩阵运算功能,如矩阵乘 法、转置、逆等。
特征值与特征向量
Matlab可以方便地计算矩阵的特征值和特征向 量。
3
线性方程组求解
Matlab提供了多种求解线性方程组的方法,如 高斯消元法、LU分解等。
概率统计
随机数生成
01
Matlab可以生成各种散布的随机数,如正态散布、均匀散布、
最优化问题求解
最优化问题求解
Matlab提供了优化工具箱,可以对最优化问题进行求解,如线性 计划、非线性计划、束缚优化等。
最优化算法
Matlab支持多种最优化算法,如梯度降落法、牛顿法、遗传算法 等,可以根据问题类型选择合适的算法进行求解。
最优化应用
在生产调度、资源分配、金融优化等领域,Matlab广泛应用于最 优化问题的求解和分析。
数据分析
Matlab提供了各种数据分析工 具和机器学习算法,支持数据 发掘和猜测分析。
金融分析
Matlab在金融领域也得到了广 泛应用,支持风险评估和投资 组合优化等。
02
Matlab基础操作
变量与数据类型
01
变量命名规则
数据类型
02
03

MATLAB经典教程(全)PPT课件

MATLAB经典教程(全)PPT课件

THANKS FOR WATCHING
感谢您的观看
信号时域分析和频域分析
时域分析
研究信号随时间变化的规律,包括波形、幅度、频率、相位等。
频域分析
将信号转换为频域表示,研究信号的频谱结构和频率特性,包括幅 度谱、相位谱、功率谱等。
时域与频域关系
时域和频域是信号分析的两个方面,它们之间存在对应关系,可以 通过傅里叶变换相互转换。
数字信号处理基础
数字信号表示
MATLAB工作环境与界面
MATLAB工作环境
包括命令窗口、工作空间、命令历史窗口、当 前文件夹窗口等。
界面介绍
详细讲解MATLAB界面的各个组成部分,如菜 单栏、工具栏、编辑器窗口等。
基本操作
介绍如何在MATLAB环境中创建、保存、运行脚本和函数,以及如何进行基本 的文件操作。
基本数据类型与运算
数据统计描述性分析
描述性统计量
介绍均值、中位数、众数、方差、标准差等常见 描述性统计量的计算方法和意义。
数据分布形态
通过直方图、箱线图等图形展示数据的分布形态 ,帮助用户了解数据的整体特征。
数据间关系
探讨协方差、相关系数等统计量在揭示数据间关 系方面的应用。
数据可视化方法
二维图形绘制
详细讲解MATLAB中二维图形的绘制方法,包括线图、散点图、 柱状图等。
特征值与特征向量
特征值与特征向量的定义
设A为n阶方阵,若存在数λ和n维非零向量x,使得Ax=λx ,则称λ为A的特征值,x为A的对应于特征值λ的特征向量 。
特征值与特征向量的性质
包括特征值的和等于方阵对角线元素之和、特征值的积等 于方阵的行列式等性质。
MATLAB求解
使用MATLAB内置函数`eig`求解方阵的特征值和特征向量 。

matlab在微积分中的应用PPT课件

matlab在微积分中的应用PPT课件

湖北师范学院数学与统计学院数学建模实验电子教案
22
命令形式4:solve(s1,s2, …,sn,v1,v2, …,vn) 功能:对n个方程的制定变量v1,v2, …,vn求解。
命令形式5:[x1,x2, …,xn]=solve (s1,s2, …,sn,v1,v2, …,vn) 功能:将n个方程的指定变量v1,v2, …,vn求解的结果赋给 x1,x2, …,xn
注意:fun可以是字符串,内联函数或M函数文件名。
湖北师范学院数学与统计学院数学建模实验电子教案
19
例14.计算 xydxdy,其中D是y=1,x=4,x=0,y=0所围
成的区域。 D
解:dblquad('x*y',0,4,0,1)
例15.计算
1
dy
1
x2 y
dx
0
0
ff=inline('x.^2+y','x','y'); dblquad(ff,0,1,0,1)
x0054xminfvalfminsearchmyfunx0湖北师范学院数学与统计学院数学建模实验电子教案34湖北师范学院数学与统计学院数学建模实验电子教案35湖北师范学院数学与统计学院数学建模实验电子教案36湖北师范学院数学与统计学院数学建模实验电子教案37湖北师范学院数学与统计学院数学建模实验电子教案38湖北师范学院数学与统计学院数学建模实验电子教案39湖北师范学院数学与统计学院数学建模实验电子教案40湖北师范学院数学与统计学院数学建模实验电子教案41湖北师范学院数学与统计学院数学建模实验电子教案lnsinlimsincos43湖北师范学院数学与统计学院数学建模实验电子教案44湖北师范学院数学与统计学院数学建模实验电子教案45数学建模种常用的线性代数知识在matlab中的实现线性方程组的迭代求解法湖北师范学院数学与统计学院数学建模实验电子教案46数组运算指令说明指令说明非共轭转置相当于conja两数组对应元素相乘不左式相同湖北师范学院数学与统计学院数学建模实验电子教案47数组运算指令说明指令说明按线性代数的矩阵乘法xab的解湖北师范学院数学与统计学院数学建模实验电子教案inv求矩阵的逆矩阵

第7章 MATLAB数值积分与数值微分 ppt课件

第7章  MATLAB数值积分与数值微分  ppt课件
I= 1.5745
ppt课件
13
如果使用inline函数,则命令如下: f=inline('exp(-x.^2/2).*sin(x.^2+y)','x','y'); I=dblquad(f,-2,2,-1,1) I= 1.5745
ppt课件
14
例7-6 计算三重定积分 命令如下: fxyz=inline('4*x.*z.*exp(-z.*z.*y-x.*x)','x','y','z'); triplequad(fxyz,0,pi,0,pi,0,1,1e-7) ans= 1.7328
ppt课件
3
例7-1 求定积分。
(1) 建立被积函数文件fesin.m。
function f=fesin(x)
f=exp(-0.5*x).*sin(x+pi/6); (2) 调用数值积分函数quad求定积分。
[S,n]=quad(@fesin,0,3*pi)
S=
0.9008
n=
77
ppt课件
4
也可不建立关于被积函数的函数文件,而使用语句函数 (内联函数)求解,命令如下:
MATLAB提供的dblquad函数用于求二重积分的数值 解,triplequad函数用于求三重积分的数值解。函 数的调用格式为
dblquad(@fun,a,b,c,d,tol)
triplequad(@fun,a,b,c,d,e,f,tol) 其中,fun为被积函数,[a,b]为x的积分区域,[c,
I=trapz(X,Y)
其中,向量X,Y定义函数关系Y = f(X)。
ppt课件

数值积分和数值微分ppt课件

数值积分和数值微分ppt课件

5.2.2 数值微分
设函数 f(x)在[a,b]上可导,已知 f(x)在 x j 的函数 值 y j f (x j ) ( j 0,1,, n) , a x0 x1 xn b . 如果 f(x)的解析表达式未知,问如何近似计算 f(x)在 某点 x=c 处的导数?特别是如何近似计算 f(x)在 x0, x1,, xn 的导数?
y4
未 知 函 数 f(x)
y3
已知结点
线 性 插 值 函 数 S41(x)
y2
y1
y0
y
0
x0
x1
x2
x3
x4
x
图5.9 复化梯形求积公式示意图
5.2.1 数值积分
容易求得
b a
Sn1
(
x)dx
的值为
1 n
Tn 2 j1 x j x j1 y j1 y j
(5.2.1)
如果划分 a x0 x1 xn b 将区间[a,b] n 等分,
b]为n等分,分点为 xk x0 kh k = 0, 1, 2,…, n
2)在区间 [xk, xk+1]上使用以上求积公式求得Ik 3)取和值,作为整个区间上的积分近似值。 这种求积方法称为复化求积方法。
j
值 y j f (x j ) ( j 0,1,, n) , a x0 x1 xn b ,
5.2.2 数值微分
先考虑简化的问题:设划分 a x0 x1 x2 b 将 区间[a,b]二等分,记 h (b a) 2 ,已知 f(x)在 x j 的函
数值 y j f (x j ) (j=0,1,2). 记
L2 (x) c1(x x1)2 c2 (x x1) c3 是由结点 (x j , y j ) (j=0,1,2)确定的至多二次插值多项

Matlab与工程计算 第七章 数值积分、微分

Matlab与工程计算 第七章  数值积分、微分
oad wind div = divergence(x,y,z,u,v,w); slice(x,y,z,div,[90 134],[59],[0]); shading interp daspect([1 1 1]) camlight
Xiamen University
Matlab and Engineering Calculation
dx=diff(f([x,3.01]))/0.01; %直接对f(x)求数值导数 gx=g(x); %求函数f的导函数g在假设点的导数
plot(x,dpx,x,dx,'.',x,gx, 'r-'); %作图
Xiamen University
Matlab and Engineering Calculation
f ' ( x) =
f ( x + h) − f ( x ) h
Xiamen University
Matlab and Engineering Calculation
例6-6 生成以向量V=[1,2,3,4,5,6]为基础的范得蒙矩阵,按列 进行差分运算。 命令如下: V=vander(1:6) DV=diff(V) %计算V的一阶差分
7.1.2 数值积分的实现方法(Quadrature)
1.自适应辛普生法 基于变步长辛普生法,MATLAB给出了quad函数来 求定积分。该函数的调用格式为: [I,n]=quad(fun,a,b,tol,trace) fun是被积函数名、句柄或内联函数对象; a和b分别是定积分的下限和上限; tol用来控制积分精度,缺省时取tol=10-6; trace控制是否展现积分过程,若取非0则展现积分过 程,取0则不展现,缺省时取trace=0 I即定积分值,n为被积函数的调用次数。

Matlab数值积分与数值微分

Matlab数值积分与数值微分

Matlab数值积分与数值微分M a t l a b数值积分与数值微分Matlab数值积分1.⼀重数值积分的实现⽅法变步长⾟普森法、⾼斯-克朗罗德法、梯形积分法1.1变步长⾟普森法Matlab提供了quad函数和quadl函数⽤于实现变步长⾟普森法求数值积分.调⽤格式为:[I,n]=Quad(@fname,a,b,tol,trace)[I,n]=Quadl(@fname,a,b,tol,trace)Fname是函数⽂件名,a,b分别为积分下限、积分上限;tol为精度控制,默认为1.0×10-6,trace控制是否展开积分过程,若为0则不展开,⾮0则展开,默认不展开.返回值I为积分数值;n为调⽤函数的次数.--------------------------------------------------------------------- 例如:求∫e0.5x sin(x+π)dx3π的值.先建⽴函数⽂件fesin.mfunction f=fesin(x)f=exp(-0.5*x).*sin(x+(pi/6));再调⽤quad函数[I,n]=quad(@fesin,0,3*pi,1e-10)I=0.9008n=365--------------------------------------------------------------------- 例如:分别⽤quad函数和quadl函数求积分∫e0.5x sin(x+π6)dx3π的近似值,⽐较函数调⽤的次数.先建⽴函数⽂件function f=fesin(x)f=exp(-0.5*x).*sin(x+(pi/6));formatlong[I,n]=quadl(@fesin,0,3*pi,1e-10)I=n=198[I,n]=quad(@fesin,0,3*pi,1e-10)I=n=365--------------------------------------------------------------------- 可以发现quadl函数调⽤原函数的次数⽐quad少,并且⽐quad函数求得的数值解更精确.1.2⾼斯-克朗罗德法Matlab提供了⾃适应⾼斯-克朗罗德法的quadgk函数来求震荡函数的定积分,函数的调⽤格式为:[I,err]=quadgk(@fname,a,b)Err返回近似误差范围,其他参数的意义与quad函数相同,积分上下限可以是-Inf或Inf,也可以是复数,若为复数则在复平⾯上求积分.--------------------------------------------------------------------- 例如:求积分∫xsinx1+cos2xdx π的数值.先编写被积函数的m⽂件fsx.mfunction f=fsx(x)f=x.*sin(x)./(1+cos(x).^2);再调⽤quadgk函数I=quadgk(@fsx,0,pi)I=2.4674--------------------------------------------------------------------- 例如:求积分∫xsinxdx +∞∞的值.先编写被积函数的m⽂件fsx.mfunction f=fsx(x)f=x.*sin(x)./(1+cos(x).^2); 再调⽤quadgk函数I=quadgk(@fsx,-Inf,Inf)I=-9.0671e+017---------------------------------------------------------------------1.3梯形积分法对于⼀些不知道函数关系的函数问题,只有实验测得的⼀组组样本点和样本值,由表格定义的函数关系求定积分问题⽤梯形积分法,其函数是trapz函数,调⽤格式为:I=Traps(X,Y)X,Y为等长的两组向量,对应着函数关系Y=f(X) X=(x1,x2,…,x n)(x1分区间是[x1,x n]--------------------------------------------------------------------- 例如:已知某次物理实验测得如下表所⽰的两组样本点.现已知变量x和变量y满⾜⼀定的函数关系,但此关系未知,设y=f(x),求积分13.39∫f(x)dx1.38的数值.X=[1.38,1.56,2.21,3.97,5.51,7.79,9.19,11.12,13.39];Y=[3.35,3.96,5.12,8.98,11.46,17.63,24.41,29.83,32.21]; I=trapz(X,Y) I=217.1033---------------------------------------------------------------------例如:⽤梯形积分法求积分:∫e ?x dx 2.51的数值.x=1:0.01:2.5; y=exp(-x); I=trapz(x,y) I= 0.2858---------------------------------------------------------------------2. 多重数值积分的实现重积分的积分函数⼀般是⼆元函数f(x,y)或三元函数f(x,y,z);形如:∫∫f (x,y )dxdy ba dc∫∫∫f(x,y,z)dxdydz b a d cf eMatlab 中有dblquad 函数和triplequad 函数来对上述两个积分实现.调⽤格式为: I=dblquad(@fun,a,b,c,d,tol)I=triplequad(@fun,a,b,c,d,e,f,tol)Fun 为被积函数,[a,b]为x 的积分区间;[c,d]为y 的积分区间;[e,f]为z 的积分区间.Dblquad 函数和triplequad 函数不允许返回调⽤的次数,如果需要知道函数调⽤的次数,则在定义被积函数的m ⽂件中增加⼀个计数变量,统计出被积函数被调⽤的次数.---------------------------------------------------------------------例如:计算⼆重积分I =∫∫√dxdy π2π2π2π2的值.先编写函数⽂件fxy.mfunction f=fxy(x,y) global k; k=k+1;f=sqrt(x.^2+y.^2);再调⽤函数dblquadglobalk; k=0;I=dblquad(@fxy,-pi/2,pi/2,-pi/2,pi/2,1.0e-10) I= 11.8629 k k= 37656---------------------------------------------------------------------例如:求三重积分∫∫∫4xze ?z2y?x 2dxdydz ππ1的值.编写函数⽂件fxyz1.mfunction f=fxyz1(x,y,z)global j;j=j+1;f=4*x.*z.*exp(-z.*z.*y-x.*x);调⽤triplequad函数editglobalj;j=0;I=triplequad(@fxyz1,0,pi,0,pi,0,1,1.0e-10)I=1.7328jj=1340978---------------------------------------------------------------------Matlab数值微分1.数值微分与差商导数的三种极限定义f′(x)=limn→0f(x+h)?f(x)hf′(x)=limn→0f(x)?f(x?h)f′(x)=limn→0f(x+h2)?f(x?h2)h上述公式中假设h>0,引进记号:f(x)=f(x+h)f(x)f(x)= f(x)f(xh)δf(x)= f(x+h)?f(x?h)称上述?f(x)、?f(x)、δf(x)为函数在x点处以h(h>0)为步长的向前差分、向后差分、中⼼差分,当步长h⾜够⼩时,有:f′(x)≈?f(x) hf′(x)≈f(x) f′(x)≈δf(x)f(x) h 、?f(x)h、δf(x)h也分别被称为函数在x点处以h(h>0)为步长的向前差商、向后差商、中⼼差商.当h⾜够⼩时,函数f(x)在x点处的导数接近于在该点的任意⼀种差商,微分接近于在该点的任意⼀种差分.2.函数导数的求法2.1⽤多项式或样条函数g(x)对函数f(x)进⾏逼近(插值或拟合),然后⽤逼近函数g(x)在点x处的导数作为f(x)在该点处的导数.2.2⽤f(x)在点x处的差商作为其导数.3.数值微分的实现⽅法Matlab中,只有计算向前差分的函数diff,其调⽤格式为:·DX=diff(X):计算向量X的向前差分,DX(i)=X(i+1)-X(i),i=1,2,…,n-1·DX=diff(X,n):计算向量X的n阶向前差分,例如diff(X,2)=diff(diff(X))·DX=diff(A,n,dim):计算矩阵A的n阶向前差分,dim=1(默认值)按列计算差分,dim=2按⾏计算差分.--------------------------------------------------------------------- 例如:⽣成6阶范德蒙德矩阵,然后分别按⾏、按列计算⼆阶向前差分A=vander(1:6)A=111111321684212438127931102425664164131256251252551777612962163661D2A1=diff(A,2,1)D2A1=180501220057011018200132019424200255030230200D2A2=diff(A,2,2)D2A2=000084211083612457614436920004008016540090015025--------------------------------------------------------------------- 例如:设f(x)=√x3+2x2?x+12+√(x+5)6+5x+2求函数f(x)的数值导数,并在同⼀坐标系中作出f’(x)的图像.已知函数f(x)的导函数如下:f′(x)=3x2+4x?12√x3+2x2?x+12+16√()56+5编辑函数⽂件fun7.m和fun8.m functionf=fun7(x)f=sqrt(x.^3+2*x.^2-x+12)+(x+5).^(1/6)+5*x+2;functionf=fun8(x)f=(3*x.^2+4*x-1)/2./sqrt(x.^3+2*x.^2-x+12)+1/6./(x+5).^(5/6)+5 ;x=-3:0.01:3;p=polyfit(x,fun7(x),5);⽤5次多项式拟合曲线dp=polyder(p);对拟合多项式进⾏求导dpx=polyval(dp,x);对dp在假设点的求函数值dx=diff(fun7([x,3.01]))/0.01;直接对dx求数值导数gx=fun8(x);求函数f的函数在假设点的导数plot(x,dpx,x,dx,'.',x,gx,'-')可以发现,最后得到的三条曲线基本重合.--------------------------------------------------------------------- 练习:A.⽤⾼斯-克朗罗德法求积分∫dx1+x2 +∞∞的值并讨论计算⽅法的精确度.(该积分值为π)function f=fun9(x)f=1./(1+x.^2);formatlong[I,err]=quadgk(@fun9,-Inf,Inf)I=err=B.设函数f(x)=sin x⽤不同的办法求该函数的数值导数,并在同⼀坐标系中作出f′(x)的图像.已知f′(x)=x cos x+cos x cos2x?sin x+2sin x sin2x()2function f=fun10(x)f=sin(x)./(x+cos(2*x));function f=fun11(x)f=(x.*cos(x)+cos(x).*cos(2*x)-sin(x)-2*sin(x).*sin(2*x))/(x+cos(2 *x)).^2; x=-3:0.01:3;p=polyfit(x,fun10(x),5);dp=polyder(p);dpx=polyval(dp,x);dx=diff(fun10([x,3.01]))/0.01;gx=fun11(x);plot(x,dpx,'r:',x,dx,'.g',x,gx,'-k')。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在科学实验和工程应用中,函数关系往往是不知道 的,只有实验测定的一组样本点和样本值,这时, 人们就无法使用quad等函数计算其定积分。在 MATLAB中,对由表格形式定义的函数关系的求 定积分问题用梯形积分函数trapz。该函数调用格 式如下:
I=trapz(X,Y)
其中,向量X,Y定义函数关系Y = f(X)。
0.285794442548811 n=
18 format short
2021/3/12
8
2.高斯-克朗罗德法
MATLAB提供了基于自适应高斯-克朗罗德法的 quadgk函数来求振荡函数的定积分。该函数的调 用格式为
[I,err]=quadgk(@fname,a,b)
其中,err返回近似误差范围,其他参数的含义和用 法与quad函数相同。积分上下限可以是−Inf或Inf, 也可以是复数。如果积分上下限是复数,则 quadgk在复平面上求积分。
2021/3/12
4
例7-1 求定积分。
(1) 建立被积函数文件fesin.m。
function f=fesin(x)
f=exp(-0.5*x).*sin(x+pi/6); (2) 调用数值积分函数quad求定积分。
[S,n]=quad('fesin',0,3*pi)
S=
0.9008
n=
77
2021/3/12
5
也可不建立关于被积函数的函数文件,而使用语句函数 (内联函数)求解,命令如下:
g=inline('exp(-0.5*x).*sin(x+pi/6)'); %定义一个语句函数 [S,n]=quad(g,0,3*pi) %注意函数名不加@号 S=
0.9008 n=
77
2021/3/12
6
例7-2 分别用quad函数和quadl函数求的近似值,并 在相同的积分精度下,比较函数的调用次数。
2021/3/12
3
7.1.2 数值积分的实现方法
1.变步长辛普生法
基于变步长辛普生法,MATLAB给出了quad函数和 quadl函数来求定积分。函数的调用格式为:
[I,n]=quad(@fname,a,b,tol,trace)
[I,n]=quadl(@fname,a,b,tol,trace)
其中,fname是被积函数名。a和b分别是定积分的下限 和上限。tol用来控制积分精度,默认时取tol=10-6。 trace控制是否展现积分过程,若取非0则展现积分过 程,取0则不展现,默认时取trace=0。返回参数I即 定积分值,n为被积函数的调用次数。
MATLAB程序设计教程(第二版)
刘卫国 主编
2021/3/12
中国水利水电出版社
1
第7章 MATLAB数值积分与数值微分
MATLAB数值积分 MATLAB数值微分
2021/3/12
2
7.1 数值积分 7.1.1 数值积分基本原理
求解定积分的数值方法多种多样,如简单的梯形
法、辛普生(Simpson)•法、牛顿-柯特斯(NewtonCotes)法等都是经常采用的方法。它们的基本思想 都是将整个积分区间[a,b]分成n个子区间[xi,xi+1], i=1,2,…,n,其中x1=a,xn+1=b。这样求定积分问题 就分解为求和问题。
ki
I=
1.5745
ki =
2021/3/112038
14
如果使用inline函数,则命令如下: f=inline('exp(-x.^2/2).*sin(x.^2+y)','x','y'); I=dblquad(f,-2,2,-1,1) I= 1.5745
2021/3/12
15
例7-6 计算三重定积分 命令如下: fxyz=inline('4*x.*z.*exp(-z.*z.*y-x.*x)','x','y','z'); triplequad(fxyz,0,pi,0,pi,0,1,1e-7) ans= 1.7328
2021/3/12
16
7.2 数值微分 7.2.1 数值差分与差商 7.2.2 数值微分的实现 在MATLAB中,没有直接提供求数值导数的函数,只
有计算向前差分的函数diff,其调用格式为: DX=diff(X):计算向量X的向前差分,DX(i)=X(i+1)-
调用函数quad求定积分: format long fx=inline('exp(-x)'); [I,n]=quad(fx,1,2.5,1e-10) I=
0.285794442547663 n=
65
2021/3/12
7
调用函数quadl求定积分: format long fx=inline('exp(-x)'); [I,n]=quadl(fx,1,2.5,1e-10) I=
2021/3/12
11
例7-4 用trapz函数计算定积分。 命令如下:
X=1:0.01:2.5; Y=exp(-X); %生成函数关系数据向量 trapz(X,Y) ans =
0.2858
2021/3/12
12
7.1.3 多重定积分的数值求解
MATLAB提供的dblquad函数用于求二重积分的数值 解,triplequad函数用于求三重积分的数值解。函 数的调用格式为
dblquad(@fun,a,b,c,d,tol)
triplequad(@fun,a,b,c,d,e,f,tol) 其中,fun为被积函数,[a,b]为x的积分区域,[c,
d]为y的积分区域,[e,f ]为z的积分区域,参数tol 的用法与函数quad完全相同。
2021/3/12Βιβλιοθήκη 13例7-5 计算二重定积分
2021/3/12
9
例7-3 求定积分。 (1) 被积函数文件fx.m。 function f=fx(x) f=x.*sin(x)./(1+cos(x).*cos(x)); (2) 调用函数quad8求定积分。 I=quad8('fx',0,pi) I=
2.4674
2021/3/12
10
3.梯形积分法
(1)建立一个函数文件fxy.m:
function f=fxy(x,y)
global ki; ki=ki+1;
%ki用于统计被积函数的调用次数
f=exp(-x.^2/2).*sin(x.^2+y);
(2)调用dblquad函数求解。
global ki;
ki=0;
I=dblquad(@fxy,-2,2,-1,1)
相关文档
最新文档