Matlab多项式运算.ppt

上传人:本田雅阁 文档编号:3407135 上传时间:2019-08-22 格式:PPT 页数:45 大小:499.01KB
返回 下载 相关 举报
Matlab多项式运算.ppt_第1页
第1页 / 共45页
Matlab多项式运算.ppt_第2页
第2页 / 共45页
Matlab多项式运算.ppt_第3页
第3页 / 共45页
Matlab多项式运算.ppt_第4页
第4页 / 共45页
Matlab多项式运算.ppt_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《Matlab多项式运算.ppt》由会员分享,可在线阅读,更多相关《Matlab多项式运算.ppt(45页珍藏版)》请在三一文库上搜索。

1、Matlab 多项式运算与方程求根,Matlab多项式运算,无论是在线性代数中,还是信号处理、自动控制等理论 中,多项式运算都有着十分重要的地位,因此,MATLAB 为多项式的操作提供了相应的函数库polyfun;,Matlab 多项式运算与方程求根,Matlab的多项式表示,在 Matlab 中,n 次多项式是用一个长度为 n+1的向量来表示,缺少的幂次项系数为 0。例如:,在 Matlab中,用其系数的行向量表示该多项式:,例:,注:系数中的零不能省!,多项式四则运算,多项式加减运算:Matlab没有提供专门进行多项式加减运算的函数,事实上,多项式的加减就是其所对应的系数向量的加减运算。,

2、例:,对于次数相同的多项式,可以直接对其系数向量进行加减运算; 如果两个多项式次数不同,则应该把低次多项式中系数不足的高次项用0补足,然后进行加减运算。,多项式四则运算,例:,把多项式a(x)与多项式 b(x)相加求解如下:,所得结果代表的多项式为:,多项式四则运算(续),多项式乘法运算: k=conv(p,q) 多项式的相乘就是两个代表多项式的行向量的卷积,例:计算多项式 和 的乘积, p=2,-1,0,3; q=2,1; k=conv(p,q);,多项式除法运算:k,r=deconv(p,q),其中k返回的是多项式p除以 q的商,r是余式。,k,r=deconv(p,q),p=conv(q

3、,k)+r,多项式的导数:polyder,k=polyder(p): 返回多项式p的一阶导数; k=polyder(p,q): 返回多项式p与q乘积的一阶导数; k,d=polyder(p,q):返回p/q 的导数,k是分子,d是分母。, k1=polyder(2,-1,0,3); k2=polyder(2,-1,0,3,2,1); k2,d=polyder(2,-1,0,3,2,1);,例:已知 , , 求,多项式求值, p=2,-1,0,3; x=2;polyval(p,x) x=-1, 2;-2,1;polyval(p,x),例:已知 ,分别取 x=2和一个2x2矩阵, 求 p(x)在

4、x处的值,多项式求值函数polyval 利用该函数可以求得多项式在某一点的值。,y=polyval(p,x):返回多项式p在x点的值,其中:x可以是复数,也可以是矩阵;,多项式求根, p=2,-1,0,3; x=roots(p),例:已知 ,求p(x)的根。,x=roots(p):返回多项式的根,注意:matlab按惯例,多项式是行向量,根是列向量。,若已知多项式的全部根,则可用poly函数给出该多项式。,p=ploy(x),求解多项式的根,即p(x)=0的解。在matlab中,求解多项式的 根有roots函数命令来完成。,部分分式展开函数residue,格式一:r,p,k=residue(b

5、,a),Residue函数可以完成有理多项式的部分分式展开,它是一个对 系统传递函数特别有用的函数,其调用格式为:,功能:把b(s)/a(s)展开成:,其中,r代表余数数组,p代表极点数组,k代表常数项。,部分分式展开函数residue,例:,将有理多项式 展开成部分分式。,即有理多项式可展开为:,部分分式展开函数residue,格式二:b,a=residue(r,p,k),功能:格式一的逆作用,统 计 分 析,Matlab有专用的统计分析工具箱;常用的命令为:,统 计 分 析,1. 求矩阵最大元素和最小元素 MATLAB提供的求数据序列的最大值和最小值的函数分别为max和min,两个函数的调

6、用格式和操作过程类似。 (1)求向量的最大值和最小值 格式一: y=max(X) 返回向量X的最大值存入y,如果X中包含复数元素,则按模取最大值。如果x为向量,返回x中最大值元素;如果x是矩阵,则将矩阵每列作为处理向量,返回一个行向量;,返回向量X的最大值存入y,最大值的序号存入I,如果X中包含复数元素,则按模取最大值。 求向量X的最小值的函数是min(X),用法和max(X)完全相同。 例 求向量x的最大值。,格式二: y,I=max(X),格式三:max(A,dim) dim取1或2。dim取1时,该函数和max(A)完全相同;dim取2时,该函数返回一个列向量,其第i个元素是A矩阵的第i

7、行上的最大值。 求最小值的函数是min,其用法和max完全相同。,求数据序列平均值的函数是mean,求数据序列中值的函数是median。两个函数的调用格式为: mean(X):返回向量X的算术平均值。 median(X):返回向量X的中值。 mean(A):返回一个行向量,其第i个元素是A的第i列的算术平均值。 median(A):返回一个行向量,其第i个元素是A的第i列的中值。 mean(A,dim):当dim为1时,该函数等同于mean(A);当dim为2时,返回一个列向量,其第i个元素是A的第i行的算术平均值。 median(A,dim):当dim为1时,该函数等同于median(A);

8、当dim为2时,返回一个列向量,其第i个元素是A的第i行的中值。,2. 求矩阵的平均值和中值,求数据序列平均值的函数是mean,求数据序列中值的函数是median。两个函数的调用格式为: M=mean(x) 功能:如果x为向量,则返回向量x的平均值;如果x为矩阵,则将矩阵每列当作向量来处理,返回一个平均值行向量; 例如:,2. 求矩阵的平均值和中值,数据序列中值的函数是median,其调用格式为: M=median(x) 功能:如果x为向量,则返回向量x的中间值;如果x为矩阵,则将矩阵每列当作向量来处理,返回一个中间值行向量; 例如:,2. 求矩阵的平均值和中值,数据序列求和与求积的函数是su

9、m和prod,其调用格式分别为: s=sum(x) 功能:如果x为向量,则返回X的元素和;如果x为矩阵,则将矩阵每列当作向量处理,返回一个元素分别为各列和的行向量。,3. 矩阵元素求和与求积,prod函数与sum函数的调用格式完全一样,只是功能不同;,格式为:A=cumprod(x) 功能:沿数组不同维,返回累乘积,返回值A与x大小一样,与元素全乘积不同,它只将x中相应元素与其之前的所有元素相乘;当x是向量时,返回x的元素累计积向量;如果x为矩阵时,返回一个与x大小相同的每列累乘积的矩阵; 例如:,4. 列元素累乘积函数cumprod( ),例如:,4. 列元素累乘积函数cumprod( ),

10、格式为:A=cumsum(x) 功能:沿数组不同维,返回累计和,当x是向量时,返回x的元素累计和;如果x为矩阵时,返回一个与x大小相同的每列累计和的矩阵; 例如:,4. 列元素累求和函数cumsum( ),4. 列元素累求和函数cumsum( ),2.8.2,函数相关分析,在matlab中用于相关分析的函数主要有cov( )函数和 corrcoef( )函数。 1、协方差函数cov( ) 格式一: c=cov(x) 格式二: c=cov(x,y);,2.8.2,函数相关分析,2、相关矩阵函数corrcoef( ) 格式一: p=corrcoef (x) 功能:根据输入矩阵x,返回一个相关系数矩

11、阵相关系数 矩阵由下式确定:,格式二: s=corrcoef(x,y),功能:返回向量x和y的相关系数。,2.8.3,函数插值运算,插值就是在已知的数据点之间利用某种算法寻找估计值 的过程。在信号处理、图像处理中,插值运算占有重要 的地位;matlab提供了一系列的插值函数。其基本的插值 函数有: interp1( ) interp1q( ) interp2( ) inerp3( ) interpft( ) inerpn( ) spline( ),一维数据插值 定义:已知离散点上的数据集 ,即已知在点集X上的函数值Y,构造一个解析函数(其图形为一曲线)通过这些点,并能够求出这些点之间的值,这一

12、过程称为一维插值。 在MATLAB中,实现一维插值的函数是interp1,其调用格式为: Y1=interp1(X,Y,X1,method) 函数根据X,Y的值,计算函数在X1处的值。X,Y是两个等长的已知向量,分别描述采样点和样本值,X1是一个向量或标量,描述欲插值的点,Y1是一个与X1等长的插值结果。method是插值方法,允许的取值有linear、nearest、cubic、spline。,方法: nearest(最临近插值法):该方法将内插点设置成最接近于已知数据点的值,其特点是插值速度最快,但平滑性较差。 linear(线性插值):该方法连接已有数据点作线性逼近。它是interp1函

13、数的默认方法,其特点是需要占用更多的内存,速度比nearest方法稍慢,但是平滑性优于nearest方法。 spline(三次样条插值):该方法利用一系列样条函数获得内插数据点,从而确定已有数据点之间的函数。其特点是处理速度慢,但占用内存少,可以产生最光滑的插值结果;,cublic(立方插值):该方法y拟合三次曲线函数,从而确定内插点的值。其特点是占用内存和处理时间较快,但插值数据和导数是连续的。 注意:每种插值方法都可以处理非等间距节点的插值。如果输入数据是等间距的,可以在插值方法前加一个星号“*”,以提高处理速度,例如“*nearest”.,例:请阅读并分析eg.m程序。,已知某产品从19

14、00年到2010年每隔10年的产量为:75.995, 91.972, 105.711, 123.203, 131.699, 150.697, 179.323, 203.212, 226.505, 249.633, 256.344, 267.893,计算出1995年的产量,用三次样条插值的方法,画出每隔一年的插值曲线图形,同时将原始的数据画在同一图上。,2.11 函数分析与数值积分,在实际应用中,我们常常对一些函数的极值、积分、 微分等问题感兴趣,为此,matlab在函数功能和数值 分析函数库(funfun)中为用户提供了有关的函数命令。,2.11 函数在matlab中的表示,1、函数的表示与计

15、算,在matlab中,对一个给定的函数表达式,通常可以用两 种方法来表示:函数文件和内联函数;,从前面的学习中我们知道,在matlab中,数学函数可以 用函数文件表示,由function来实现。例如:,则可用函数文件hump.m来表示: function y=hump(x) y=1./(x-0.03).2+0.01),2.11 函数在matlab中的表示,则可用函数文件hump.m来表示: function y=hump(x) y=1./(x-0.03).2+0.01),这样,hump就可用来作为某些函数的输入变量,从而 实现对函数的计算。例如,需要计算该函数在x=0.5处 的函数值,只需要调

16、用命令y=hump(0.5)即可求得。,2.11 函数在matlab中的表示,除了用function来定义函数,也可用内联函数inline函数来 表示,即用一个字符串表达式创建一个内联对象。 例如,可以为函数f(x)创建一个inline对象,在命令 窗口中输入:,2.11 函数在matlab中的表示,在计算函数值时,除了采用直接调用函数文件或内联对象 外,也可以利用feval函数来实现;格式为:,y=feval(F,x);,功能:计算由F指定的函数名或函数句柄表示的函数在x 处的函数值。F函数名要用单引号引起来。例如:,2.11 函数在matlab中的表示,除了调用函数名和内联来实现外,也可以

17、用函数句柄来实 现。在matlab中,函数句柄可由来获取。 例如:利用函数句柄计算hump函数在x=0.5处的函数值。 只需在命令窗口输入:,二、数值求解方法,1、数值积分,数值积分是数值求解的基本运算方法之一,matlab语 言的几个数值积分函数为:,quad( ) quadl( ) trapz( ),低价积分,高价积分,梯形面积法积分,低价数值积分函数quad( ),格式一:,q=quad(fun,a,b ),功能:采用自适应辛普生(Simpson)法积分,返回函数 Fun在上限a和下限b之间的数值积分,当给定一个输入 值向量,fun必须返回一个输出向量。函数fun可以是 函数名、函数句柄

18、或字符串。,例如,求hump函数在x=1-2之间的定积分,例2,计算函数,在0,1区间上的积分。,方法一:采用字符串,方法二:采用内联对象,方法三:采用函数,建立函数myfun,低价数值积分函数quad( ),格式二:,q=quad(fun,a,b ,tol),功能:按指定绝对误差tol返回数值积分值,tol默认值为 1e-6。,高价数值积分函数quadl( ),quad( )函数和quadl( ) 函数的调用格式相同,两者的区别 是积分方法不同,quad采用的是辛普生方法,而quadl采用 的是自适应洛必达法则。,梯形面积法的积分函数trapz( ),格式一: T=trapz(x) 功能:采用梯形面积法计算x的积分; 格式二: T=trapz(x,y) 功能:用梯形积分法,依据x计算y的积分。,二重积分数值求解,使用MATLAB提供的dblquad函数就可以直接求出上述 二重定积分的数值解。该函数的调用格式为:,格式为:,Q=dblquad(fun,xmin,xmax,ymin,ymax,tol),功能:按指定精度tol,对指定函数f(x,y)在xmin,xmax 范围和ymin,ymax范围进行双重积分。Tol默认时默认 精度为1e-6.,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1