Matlab多项式运算

  • 格式:ppt
  • 大小:499.00 KB
  • 文档页数:45

下载文档原格式

  / 45
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

y=polyval(p,x):返回多项式p在x点的值
其中:x可以是复数,也可以是矩阵; 例:已知 p ( x ) 2 x 3 x 2 3 ,分别取 x=2和一个2x2矩阵, 求 p(x)在 x处的值 >> p=[2,-1,0,3]; >> x=2;polyval(p,x) >> x=[-1, 2;-2,1];polyval(p,x)
3. 矩阵元素求和与求积
数据序列求和与求积的函数是sum和prod,其调用格式分
别为:
s=sum(x)
功能:如果x为向量,则返回X的元素和;如果x为矩阵, 则将矩阵每列当作向量处理,返回一个元素分别为各列和 的行向量。
prod函数与sum函数的调用格式完全一样,只是功能不同;
4. 列元素累乘积函数cumprod( )
例: p 1 2 x 3 x 2 3
p2 2 x 1
[ 2 , 1, 0 , 3 ] [ 0, 0, 2 , 1] [ [ 2 , 1, 2 , 4 ]
p1 p 2 2 x x 2 x 4
3 2
多项式四则运算
例:
把多项式a(x)与多项式 b(x)相加求解如下:
所得结果代表的多项式为: d ( x ) 2 x 6 x 12 x 20
3 2
多项式四则运算(续)
多项式乘法运算: k=conv(p,q)
多项式的相乘就是两个代表多项式的行向量的卷积
例:计算多项式 2 x 3 x 2 3 和 2 x 1 的乘积 >> 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
4. 列元素累求和函数cumsum( )
格式为:A=cumsum(x)
功能:沿数组不同维,返回累计和,当x是向量时,返回x
的元素累计和;如果x为矩阵时,返回一个与x大小相同的
每列累计和的矩阵; 例如:
4. 列元素累求和函数cumsum( )
2.8.2 函数相关分析
在matlab中用于相关分析的函数主要有cov( )函数和 corrcoef( )函数。 1、协方差函数cov( ) 格式一: c=cov(x) 格式二: c=cov(x,y);
即有理多项式可展开为: s 4

5 s5

1 .6 6 6 7 s 1
0
部分分式展开函数residue
格式二:[b,a]=residue(r,p,k) 功能:格式一的逆作用
统计分析
Matlab有专用的统计分析工具箱;常用的命令为:
统计分析
1. 求矩阵最大元素和最小元素 MATLAB提供的求数据序列的最大值和最小值的 函数分别为max和min,两个函数的调用格式和操 作过程类似。 (1)求向量的最大值和最小值 格式一: y=max(X) 返回向量X的最大值存入y,如果X中包含复数 元素,则按模取最大值。如果x为向量,返回x中 最大值元素;如果x是矩阵,则将矩阵每列作为处 理向量,返回一个行向量;
已知某产品从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年的产量,用三次样条插值的方法,画出每隔 一年的插值曲线图形,同时将原始的数据画在同一图上。
p=ploy(x)
p ( x ) ( x x 1 )( x x 2 ) ( x x n )
部分分式展开函数residue
Residue函数可以完成有理多项式的部分分式展开,它是一个对 系统传递函数特别有用的函数,其调用格式为:
格式一:[r,p,k]=residue(b,a)
功能:把b(s)/a(s)展开成:
功能:返回向量x和y的相关系数。
2.8.3 函数插值运算
插值就是在已知的数据点之间利用某种算法寻找估计值 的过程。在信号处理、图像处理中,插值运算占有重要 的地位;matlab提供了一系列的插值函数。其基本的插值 函数有: interp1( ) interp1q( ) interp2( ) inerp3( ) interpft( ) inerpn( ) spline( )
Matlab 多项式运算与方程求根
Matlab多项式运算
无论是在线性代数中,还是信号处理、自动控制等理论 中,多项式运算都有着十分重要的地位,因此,MATLAB 为多项式的操作提供了相应的函数库polyfun;
Matlab 多项式运算与方程求根
Matlab的多项式表示
在 Matlab 中,n 次多项式是用一个长度为 n+1 的向量来表示,缺少的幂次项系数为 0。例如:
2.11 函数分析与数值积分
在实际应用中,我们常常对一些函数的极值、积分、 微分等问题感兴趣,为此,matlab在函数功能和数值
分析函数库(funfun)中为用户提供了有关的函数命令。
2.11 函数在matlab中的表示
1、函数的表示与计算 在matlab中,对一个给定的函数表达式,通常可以用两 种方法来表示:函数文件和内联函数; 从前面的学习中我们知道,在matlab中,数学函数可以 用函数文件表示,由function来实现。例如: 1 f (x) 2 ( x 0 .3) 0 .0 1 则可用函数文件hump.m来表示: function y=hump(x) y=1./((x-0.03).^2+0.01)
2. 求矩阵的平均值和中值 求数据序列平均值的函数是mean,求数据序列中值 的函数是median。两个函数的调用格式为: M=mean(x) 功能:如果x为向量,则返回向量x的平均值;如果x为 矩阵,则将矩阵每列当作向量来处理,返回一个平均 值行向量; 例如:
2. 求矩阵的平均值和中值 数据序列中值的函数是median,其调用格式为: M=median(x) 功能:如果x为向量,则返回向量x的中间值;如果x为 矩阵,则将矩阵每列当作向量来处ቤተ መጻሕፍቲ ባይዱ,返回一个中间 值行向量; 例如:
多项式求根
求解多项式的根,即p(x)=0的解。在matlab中,求解多项式的 根有roots函数命令来完成。
x=roots(p):返回多项式的根,注意:matlab 按惯例,多项式是行向量,根是列向量。
例:已知 p ( x ) 2 x x 3 ,求p(x)的根。
3 2
>> p=[2,-1,0,3]; >> x=roots(p) 若已知多项式的全部根,则可用poly函数给出该多项式。
多项式的导数:polyder
k=polyder(p): 返回多项式p的一阶导数;
k=polyder(p,q): 返回多项式p与q乘积的一阶导数; [k,d]=polyder(p,q):返回p/q 的导数,k是分子,d是分母。
3 2 p ( x ) 2 x x 3,q ( x ) 2 x 1 , 例:已知
多项式四则运算
多项式加减运算:Matlab没有提供专门进行多项式 加减运算的函数,事实上,多项式的加减就是其所对 应的系数向量的加减运算。
对于次数相同的多项式,可以直接对其系数向量 进行加减运算; 如果两个多项式次数不同,则应该把低次多项式 中系数不足的高次项用0补足,然后进行加减运算。
●cublic(立方插值):该方法y拟合三次曲线函数,从而
确定内插点的值。其特点是占用内存和处理时间较快, 但插值数据和导数是连续的。 注意:每种插值方法都可以处理非等间距节点的插值。 如果输入数据是等间距的,可以在插值方法前加一个星 号“*”,以提高处理速度,例如“*nearest”.
例:请阅读并分析eg.m程序。
dim取2时,该函数返回一个列向量,其第i个元素是A
矩阵的第i行上的最大值。
求最小值的函数是min,其用法和max完全相同。
2. 求矩阵的平均值和中值 求数据序列平均值的函数是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行的中值。
格式为:A=cumprod(x)
功能:沿数组不同维,返回累乘积,返回值A与x大小一
样,与元素全乘积不同,它只将x中相应元素与其之前的
所有元素相乘;当x是向量时,返回x的元素累计积向量; 如果x为矩阵时,返回一个与x大小相同的每列累乘积的矩 阵; 例如:
4. 列元素累乘积函数cumprod( )
例如:

p ' , ( p q )' , ( p / q )'
>> k1=polyder([2,-1,0,3]); >> k2=polyder([2,-1,0,3],[2,1]); >> [k2,d]=polyder([2,-1,0,3],[2,1]);
多项式求值
多项式求值函数polyval 利用该函数可以求得多项 式在某一点的值。
1.
方法: ●nearest(最临近插值法):该方法将内插点设置成 最接近于已知数据点的值,其特点是插值速度最快, 但平滑性较差。 ●linear(线性插值):该方法连接已有数据点作线性 逼近。它是interp1函数的默认方法,其特点是需要 占用更多的内存,速度比nearest方法稍慢,但是平 滑性优于nearest方法。 ●spline(三次样条插值):该方法利用一系列样条函 数获得内插数据点,从而确定已有数据点之间的函 数。其特点是处理速度慢,但占用内存少,可以产 生最光滑的插值结果;
b(s) a(s)

r1 s p1

r2 s p2
.....
rn s pn
k
其中,r代表余数数组,p代表极点数组,k代表常数项。
部分分式展开函数residue
例:
将有理多项式
10 s 20 s 8s 19 s 12
3 2
展开成部分分式。
6 .6 6 6 7
p ( x ) a n x a n 1 x
n
n 1
a1 x a 0
在 Matlab中,用其系数的行向量表示该多项式:
[ a n , a n 1 , , a 1 , a 0 ]
3 2 例: 2 x x 3
[ 2 , 1, 0 , 3 ]
注:系数中的零不能省!
格式二: [y,I]=max(X) 返回向量X的最大值存入y,最大值的序号存入I,如 果X中包含复数元素,则按模取最大值。 求向量X的最小值的函数是min(X),用法和max(X)完 全相同。 例 求向量x的最大值。
格式三:max(A,[],dim)
dim取1或2。dim取1时,该函数和max(A)完全相同;
一维数据插值 定义:已知离散点上的数据集 ,即已知在点集X 上的函数值Y,构造一个解析函数(其图形为一 曲线)通过这些点,并能够求出这些点之间的值, 这一过程称为一维插值。 在MATLAB中,实现一维插值的函数是interp1, 其调用格式为: Y1=interp1(X,Y,X1,'method') 函数根据X,Y的值,计算函数在X1处的值。X,Y是两 个等长的已知向量,分别描述采样点和样本值, X1是一个向量或标量,描述欲插值的点,Y1是一 个与X1等长的插值结果。method是插值方法,允 许的取值有‘linear’、‘nearest’、‘cubic’、 ‘spline’。
2.8.2 函数相关分析
2、相关矩阵函数corrcoef( ) 格式一: p=corrcoef (x) 功能:根据输入矩阵x,返回一个相关系数矩阵相关系数 矩阵由下式确定: c (i, j ) s (i, j ) c (i, i )c ( j , j ) 格式二: s=corrcoef(x,y)