Matlab多项式运算.ppt_第1页
Matlab多项式运算.ppt_第2页
Matlab多项式运算.ppt_第3页
Matlab多项式运算.ppt_第4页
Matlab多项式运算.ppt_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Matlab多项式运算与方程求根,Matlab多项式运算,无论是在线性代数中,还是信号处理、自动控制等理论中,多项式运算都有着十分重要的地位,因此,MATLAB为多项式的操作提供了相应的函数库polyfun;,Matlab多项式运算与方程求根,Matlab的多项式表示,在Matlab中,n次多项式是用一个长度为n+1的向量来表示,缺少的幂次项系数为0。例如:,在Matlab中,用其系数的行向量表示该多项式:,例:,注:系数中的零不能省!,多项式四则运算,多项式加减运算:Matlab没有提供专门进行多项式加减运算的函数,事实上,多项式的加减就是其所对应的系数向量的加减运算。,例:,对于次数相同的多项式,可以直接对其系数向量进行加减运算;如果两个多项式次数不同,则应该把低次多项式中系数不足的高次项用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,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)在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,a),Residue函数可以完成有理多项式的部分分式展开,它是一个对系统传递函数特别有用的函数,其调用格式为:,功能:把b(s)/a(s)展开成:,其中,r代表余数数组,p代表极点数组,k代表常数项。,部分分式展开函数residue,例:,将有理多项式展开成部分分式。,即有理多项式可展开为:,部分分式展开函数residue,格式二:b,a=residue(r,p,k),功能:格式一的逆作用,统计分析,Matlab有专用的统计分析工具箱;常用的命令为:,统计分析,1.求矩阵最大元素和最小元素MATLAB提供的求数据序列的最大值和最小值的函数分别为max和min,两个函数的调用格式和操作过程类似。(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行上的最大值。求最小值的函数是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);当dim为2时,返回一个列向量,其第i个元素是A的第i行的中值。,2.求矩阵的平均值和中值,求数据序列平均值的函数是mean,求数据序列中值的函数是median。两个函数的调用格式为:M=mean(x)功能:如果x为向量,则返回向量x的平均值;如果x为矩阵,则将矩阵每列当作向量来处理,返回一个平均值行向量;例如:,2.求矩阵的平均值和中值,数据序列中值的函数是median,其调用格式为:M=median(x)功能:如果x为向量,则返回向量x的中间值;如果x为矩阵,则将矩阵每列当作向量来处理,返回一个中间值行向量;例如:,2.求矩阵的平均值和中值,数据序列求和与求积的函数是sum和prod,其调用格式分别为:s=sum(x)功能:如果x为向量,则返回X的元素和;如果x为矩阵,则将矩阵每列当作向量处理,返回一个元素分别为各列和的行向量。,3.矩阵元素求和与求积,prod函数与sum函数的调用格式完全一样,只是功能不同;,格式为:A=cumprod(x)功能:沿数组不同维,返回累乘积,返回值A与x大小一样,与元素全乘积不同,它只将x中相应元素与其之前的所有元素相乘;当x是向量时,返回x的元素累计积向量;如果x为矩阵时,返回一个与x大小相同的每列累乘积的矩阵;例如:,4.列元素累乘积函数cumprod(),例如:,4.列元素累乘积函数cumprod(),格式为: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,返回一个相关系数矩阵相关系数矩阵由下式确定:,格式二:s=corrcoef(x,y),功能:返回向量x和y的相关系数。,2.8.3,函数插值运算,插值就是在已知的数据点之间利用某种算法寻找估计值的过程。在信号处理、图像处理中,插值运算占有重要的地位;matlab提供了一系列的插值函数。其基本的插值函数有:interp1()interp1q()interp2()inerp3()interpft()inerpn()spline(),一维数据插值定义:已知离散点上的数据集,即已知在点集X上的函数值Y,构造一个解析函数(其图形为一曲线)通过这些点,并能够求出这些点之间的值,这一过程称为一维插值。在MATLAB中,实现一维插值的函数是interp1,其调用格式为:Y1=interp1(X,Y,X1,method)函数根据X,Y的值,计算函数在X1处的值。X,Y是两个等长的已知向量,分别描述采样点和样本值,X1是一个向量或标量,描述欲插值的点,Y1是一个与X1等长的插值结果。method是插值方法,允许的取值有linear、nearest、cubic、spline。,方法:nearest(最临近插值法):该方法将内插点设置成最接近于已知数据点的值,其特点是插值速度最快,但平滑性较差。linear(线性插值):该方法连接已有数据点作线性逼近。它是interp1函数的默认方法,其特点是需要占用更多的内存,速度比nearest方法稍慢,但是平滑性优于nearest方法。spline(三次样条插值):该方法利用一系列样条函数获得内插数据点,从而确定已有数据点之间的函数。其特点是处理速度慢,但占用内存少,可以产生最光滑的插值结果;,cublic(立方插值):该方法y拟合三次曲线函数,从而确定内插点的值。其特点是占用内存和处理时间较快,但插值数据和导数是连续的。注意:每种插值方法都可以处理非等间距节点的插值。如果输入数据是等间距的,可以在插值方法前加一个星号“*”,以提高处理速度,例如“*nearest”.,例:请阅读并分析eg.m程序。,已知某产品从1900年到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、函数的表示与计算,在matlab中,对一个给定的函数表达式,通常可以用两种方法来表示:函数文件和内联函数;,从前面的学习中我们知道,在matlab中,数学函数可以用函数文件表示,由function来实现。例如:,则可用函数文件hump.m来表示:functiony=hump(x)y=1./(x-0.03).2+0.01),2.11函数在matlab中的表示,则可用函数文件hump.m来表示:functiony=hump(x)y=1./(x-0.03).2+0.01),这样,hump就可用来作为某些函数的输入变量,从而实现对函数的计算。例如,需要计算该函数在x=0.5处的函数值,只需要调用命令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中的表示,除了调用函数名和内联来实现外,也可以用函数句柄来实现。在matlab中,函数句柄可由来获取。例如:利用函数句柄计算hump函数在x=0.5处的函数值。只需在命令窗口输入:,二、数值求解方法,1、数值积分,数值积分是数值求解的基本运算方法之一,matlab语言的几个数值积分函数为:,quad()quadl()trapz(),低价积分,高价积分,梯形面积法积分,低价数值积分函数quad(),格式一:,q=quad(fun,a,b),功能:采用自适应辛普生(Simpson)法积分,返回函数Fun在上限a和下限b之间的数值积分,当给定一个输入值向量,fun必须返回一个输出向量。函数fun可以是函数名、函数句柄或字符串。,例如,求hump函数在x=1-2之间的定积分,例2,计算函数,在0,1区间上的积分。,方法一:采用字符串,方法二:采用内联对象,方法三:采用函数,建立函数myfun,低价数值积分函数quad(),格式二:,q=quad(fun,a,b,tol),功能:按指定绝对误差tol返回数值积分值,tol默认值为1e-6。,高价数值积分函数quadl(),quad()函数和quadl()函数的调用格式相同,两者的区别是积分方法不同,quad采用的是辛普生方法,而quadl采用的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论