MATLAB教程-第六章.ppt
《MATLAB教程-第六章.ppt》由会员分享,可在线阅读,更多相关《MATLAB教程-第六章.ppt(131页珍藏版)》请在三一办公上搜索。
1、第六章 数值计算,MATLAB提供大量具有强大数值计算功能的函数。本章着重介绍关于数值计算的函数。,目录,6.1 多项式运算6.2 插 值 运 算6.3 数 据 分 析6.4 功 能 函 数 6.5 微分方程组数值解 习 题,6.1 多项式运算,1多项式表示法 2多项式求值 3多项式乘法和除法 4多项式的微积分,5多项式的根和由根创建多 6多项式部分分式展开 7多项式曲线拟合 8多曲线拟合图形用户接口,MATLAB提供了关于多项式的函数:多项式的值;多项式的根和微分;多项式拟合曲线;部分分式。,多项式函数,1多项式表示法,MATLAB采用行向量表示多项式系数,多项式系数按降幂排列。函数poly
2、2str()将多项式系数向量转换为完整形式。,2多项式求值,函数polyval()计算多项式的值,其具体使用方法如下:y=polyval(p,x),p为多项式系数行向量,x代入多项式的值;Y=polyvalm(p,X),把矩阵X代入多项式p中进行计算。,3多项式乘法和除法,函数conv()和deconv()进行多项式乘法和除法,其具体使用方法如下:w=conv(u,v),实现多项式乘法,返回结果多项式的系数行向量;q,r=deconv(u,v),实现多项式除法。,4多项式的微积分,(1)多项式的微分 函数polyder()计算多项式的微分,其具体使用方法如下:k=polyder(p),返回多项
3、式p微分的系数向量;k=polyder(a,b),返回多项式a b乘积微分的系数向量;,q,d=polyder(b,a),返回多项式b/a微分的系数向量。,(2)多项式的积分,函数polyint()计算多项式的不定积分,其具体使用方法如下:s=polyint(p,k),返回多项式p不定积分的系数向量。,5多项式的根和由根创建多项式,(1)多项式的根 函数roots()求多项式的根,其具体使用方法如下:r=roots(c),返回多项式c的所有根r。,(2)由根创建多项式 函数poly()实现由根创建多项式,其具体使用方法如下:p=poly(r),输入r是多项式所有根,返回值为多项式的系数向量;p
4、=poly(A),输入A是方阵,返回值为A的特征多项式的系数向量。,6多项式部分分式展开,函数residue()将多项式之比按部分分式展开,其具体使用方法如下:r,p,k=residue(b,a),求多项式b/a的部分分式展开;b,a=residue(r,p,k),从部分分式得到多项式向量。,7多项式曲线拟合,函数polyfit()采用最小二乘法对给定数据进行多项式拟合,其具体使用方法如下:p=polyfit(x,y,n),采用n次多项式p来拟合数据x和y。,运行结果如下图所示。,8多曲线拟合图形用户接口,曲线拟合的图形用户接口可通过图形窗口的【Tools】菜单中【Basic Fitting】
5、选项启动。,运行结果如下图所示。,6.2 插 值 运 算,6.2.1 一维插值6.2.2 二维插值,插值是根据已知输入/输出数据集和当前输入估计输出值。MATLAB提供大量的插值函数,如下表所示。,插值函数,6.2.1 一维插值,一维插值就是对函数y=f(x)进行插值,一维插值的原理如下图所示。,函数interp1()实现一维插值,其具体使用方法如下:yi=interp1(x,y,xi),x,y是已知数据集且具有相同长度的向量;yi=interp1(y,xi),默认x为1:n,其中n为向量y的长度;yi=interp1(x,y,xi,method),method用于指定插值的方法。,运行结果如
6、下图所示。,6.2.2 二维插值,二维插值是对两变量的函数z=f(x,y)进行插值,二维插值的原理如下图所示:,函数interp2()实现二维插值,其具体使用方法如下:zi=interp2(x,y,z,xi,yi),x,y,z为原始数据,返回值zi是插值结果;zi=interp2(z,xi,yi),若z=nm,则x=1:n,y=1:m;zi=interp2(x,y,z,xi,yi,method),method用于指定插值的方法。,运行结果如下图所示。,6.3 数 据 分 析,6.3.1 基本数据分析函数 6.3.2 协方差和相关系数矩阵 6.3.3 有限差分和梯度 6.3.4 信号滤波和卷积
7、6.3.5 傅立叶变换,MATLAB提供大量数据分析的函数,首先给出如下约定:一维数据分析时,数据可以用行向量或者列向量来表示;二维数据分析时,数据可以用多个向量或者二维矩阵来表示。,6.3.1 基本数据分析函数,1最大值、最小值、平均值、中间值、元素求和 2标准差和方差 3元素排序,基本数据分析函数,续表,1最大值、最小值、平均值、中间值、元素求和,运行结果如下,并如下图所示。,2标准差和方差,3元素排序,MATLAB提供对实数、复数和字符串的排序函数。函数sort()实现数值的排序;函数sortrows()实现对行的排序。,6.3.2 协方差和相关系数矩阵,函数cov()计算随机变量的协方
8、差矩阵,其具体使用方法如下:C=cov(X),计算X代表的随机变量的协方差矩阵;C=cov(x,y),x和y必须是具有相同长度的向量;,C=cov(X,1),计算X代表的随机变量的协方差矩阵;C=cov(x,y,1),x和y必须是具有相同长度的向量。,函数corrcoef()计算随机变量的相关系数矩阵,其具体使用方法如下:R=corrcoef(X),返回X代表的随机变量的相关系数矩阵;R=corrcoef(x,y),x和y必须是具有相同长度的向量。,6.3.3 有限差分和梯度,函数diff()计算差分,其具体使用方法如下:Y=diff(X),X可以是向量或矩阵;Y=diff(X,n),返回n阶
9、差分;Y=diff(X,n,dim),返回在dim维上的n阶差分。,运行结果如下图所示。,函数gradient()计算梯度,其具体使用方法如下:FX=gradient(F),返回F在x方向上的梯度;FX,FY=gradient(F),FX是F在x方向的近似偏导数,FY是F在y方向的近似偏导数;Fx,Fy,Fz,.=gradient(F),返回N个方向的近似偏导数;,.=gradient(F,h),h用于指定所有方向上自变量的间距;.=gradient(F,h1,h2,.),用多个标量来指定各个方向上自变量的间距。,运行结果如下图所示。,6.3.4 信号滤波和卷积,1一维数字滤波 2信号卷积 3
10、去除信号直流或线性成分,MATLAB提供如下表所示的信号滤波和卷积的函数。,信号滤波和卷积函数,1一维数字滤波,函数filter()实现一维数字滤波,该函数的具体使用方法如下:y=filter(b,a,X),X为用于滤波的数据,Y为数据X通过滤波器之后的值;y,zf=filter(b,a,X),附加返回一个表示数据延迟时间的量zf;,y,zf=filter(b,a,X,zi),zi为初始数据延迟,zf等于最终数据延迟;y=filter(b,a,X,zi,dim),在dim维上进行数据滤波。,2信号卷积,函数conv()计算卷积。,运行结果如下图所示。,3去除信号直流或线性成分,detrend(
11、)函数实现去除信号中的直流或者线性成分,其具体使用方法如下:y=detrend(x),如果x是一个向量,从信号x中减去线性成分;如果x是一个矩阵,去除x所有列中的线性成分;,y=detrend(x,constant),如果x是一个向量,减去信号中的直流成分;如果x是一个矩阵,去除所有列中的直流成分;y=detrend(x,linear,bp),从信号x中减去分段线性函数。,6.3.5 傅立叶变换,1一维傅立叶变换和逆变换2二维傅立叶变换和逆变换,傅立叶变换既可以对连续信号进行变换,也可以对离散信号进行变换。本小节只介绍离散傅立叶变换。,傅立叶变换函数,1一维傅立叶变换和逆变换,函数fft()实
12、现一维离散傅立叶变换,其具体使用方法如下:Y=fft(X),如果X是向量,返回向量X的傅立叶变换;如果X是矩阵,函数对矩阵X的每一列进行傅立叶变换;,Y=fft(X,n),用输入n指定傅立叶变换的长度;Y=fft(X,dim),在dim维上进行傅立叶变换;Y=fft(X,n,dim),在dim维上进行傅立叶变换,并指定傅立叶变换的长度。,函数ifft()实现一维离散傅立叶逆变换,其具体使用方法与函数fft()类似,只是添加一个选项。y=ifft(.,symmetric);y=ifft(.,nonsymmetric)。,2二维傅立叶变换和逆变换,函数fft2()实现二维傅立叶变换,用函数ifft
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 教程 第六
链接地址:https://www.31ppt.com/p-5439117.html