您好,欢迎访问三七文档
当前位置:首页 > 金融/证券 > 投融资/租赁 > 第六讲 数据处理方法与多项式
第六讲数据处理方法与多项式一、基本统计处理一、基本统计处理1、查取最大值MAX函数的命令格式有:[Y,I]=max(X):将max(X)返回矩阵X的各列中的最大元素值及其该元素的位置赋予行向量Y与I;当X为向量时,则Y与I为单变量。[Y,I]=max(X,[],DIM):按数组X的第DIM维的方向查取其最大的元素值及其该元素的位置赋予向量Y与I。【例1】查找下面数列x的最大值。x=[359618]%产生数列xx=359618y=max(x)%查出数列x中的最大值赋予yy=9[y,l]=max(x)%查出数列x中的最大值及其该元素的位置赋予y,ly=9l=3一、基本统计处理【例2】分别查找下面3×4的二维数组x中各列和各行元素中的最大值。x=[1842;9625;3671]%产生二维数组xx=184296253671y=max(x)%查出二维数组x中各列元素的最大值产生赋予行向量yy=9875一、基本统计处理[y,l]=max(x)%查出二维数组x中各列元素的最大值及其这些%元素的行下标赋予y,ly=9875l=2132[y,l]=max(x,[],1)%本命令的执行结果与上面命令完全相同y=9875l=2132[y,l]=max(x,[],2)%由于本命令中DIM=2,故查找操作在各行中进行y=897l=213一、基本统计处理【例3】试取下面两个2×3的二维数组x、y所有同一位置上的元素值大者构成一个新矩阵p。x=[456;148]%产生二维数组xx=456148y=[175;457]%产生二维数组yy=175457p=max(x,y)%在x,y同一位置上的两个元素中查找出最大值%赋予与x,y同样大小的二维数组pp=476458一、基本统计处理2、查取最小值MIN函数用来查取数据序列的最小值。它的用法与命令格式与MAX函数完全一样,所不同的是执行的结果是最小值。一、基本统计处理3、求中值所谓中值,是指在数据序列中其值的大小恰好在中间。例如,数据序列9,-2,5,7,12的中值为7。如果为偶数个时,则中值等于中间的两项之平均值。一、基本统计处理MEDIAN函数调用的命令格式有:Y=median(X):将median(X)返回矩阵X各列元素的中值赋予行向量Y。若X为向量,则Y为单变量。Y=median(X,DIM):按数组X的第DIM维方向的元素求其中值赋予向量Y。若DIM=1,为按列操作;若DIM=2,为按行操作。若X为二维数组,Y为一个向量;若X为一维数组,则Y为单变量。一、基本统计处理【例4】试分别求下面数列x1与x2的中值。x1=[9-25712];%奇数个元素y1=median(x)y1=7x2=[9-256712];%偶数个元素y2=median(x)y2=6.5000一、基本统计处理【例5】对下面二维数组x,试从不同维方向求出其中值。x=[1842;9625;3671]%产生一个二维数组xx=184296253671y0=median(x)%按列操作y0=3642y1=median(x,1)%此时DIM=1,故按列操作,结果y1为行向量y1=3642y2=median(x,2)%此时DIM=2,故按行操作,结果y2为列向量y2=3.00005.50004.5000一、基本统计处理4、求和命令格式有:Y=sum(X):将sum(X)返回矩阵X各列元素之和赋予行向量Y;若X为向量,则Y为单变量。Y=sum(X,DIM):按数组X的第DIM维的方向的元素求其和赋予Y。若DIM=1,为按列操作;若DIM=2,为按行操作。若X为二维数组,Y为一个向量;若X为一维数组,则Y为单变量。一、基本统计处理例如:x=[456;148]x=456148y=sum(x,1)y=5914y=sum(x,2)y=1513一、基本统计处理5、求平均值MEAN函数调用的命令格式有:Y=mean(X):将mean(X)返回矩阵X各列元素之的平均值赋予行向量Y。若X为向量,则Y为单变量。Y=mean(X,DIM):按数组X的第DIM维的方向的元素求其平均值赋予向量Y。若DIM=1,为按列操作;若DIM=2,为按行操作。若X为二维数组,Y为一个向量;若X为一维数组,则Y为单变量。一、基本统计处理例如:x=[456;148];y1=mean(x,1)y1=2.50004.50007.0000y2=mean(x,2)y2=5.00004.3333一、基本统计处理6、求积命令格式有:Y=prod(X):将prod(X)返回矩阵X各列元素之积赋予行向量Y。若X为向量,则Y为单变量。Y=prod(X,DIM):按数组X的第DIM维的方向的元素求其积赋予向量Y。若DIM=1,为按列操作;若DIM=2,为按行操作。若X为二维数组,Y为一个向量;若X为一维数组,则Y为单变量。一、基本统计处理例如:x=[456;148];y1=prod(x,1)y1=42048y2=prod(x,2)y2=12032一、基本统计处理7、求累计和、累积积、标准方差与升序排序MATLAB提供的求累计和、累积积、标准方差与升序排序等函数分别为CUMSUM、CUMPROD、STD和SORT,这里仅STD函数为MATLAB程序,其余均为内部函数。这些函数调用的参数与操作方式都与上小节的MEDIAN(中值)函数基本上一样,因此不作详细的介绍。一、基本统计处理二、多项式运算及其求根二、多项式运算及其求根鉴于MATLAB无零下标,故把多项式的一般形式表达为:1121nnnnaxaxaxa二、多项式运算及其求根1.多项式求根命令格式:x=roots(A)。这里A为多项式的系数A(1),A(2),…,A(N),A(N+1);解得的根赋值给数组X,即X(1),X(2),…,X(N)。【例6】试用ROOTS函数求多项式x4+8x3-10的根这是一个4次多项式,它的五个系数依次为:1,8,0,0,-10。下面先产生多项式系数的向量A,然后求根:A=[1800-10]A=1800-10x=roots(A)x=-8.0194-0.5075+0.9736i-0.5075-0.9736i1.0344二、多项式运算及其求根2.多项式的建立若已知多项式的全部根,则可以用POLY函数建立起该多项式;也可以用POLY函数求矩阵的特征多项式。POLY函数是一个MATLAB程序,调用它的命令格式是:A=poly(x)若x为具有N个元素的向量,则poly(x)建立以x为其根的多项式,且将该多项式的系数赋值给向量A。在此种情况下,POLY与ROOTS互为逆函数;若x为N×N的矩阵x,则poly(x)返回一个向量赋值给A,该向量的元素为矩阵x的特征多项式之系数:A(1),A(2),…,A(N),A(N+1)。二、多项式运算及其求根【例7】试用POLY函数对例6所求得的根,建立相应的多项式。x=[-8.0194-0.5075+0.9736i-0.5075-0.9736i1.0344];z=poly(x)z=1.00008.00000.00000.0000-9.9996二、多项式运算及其求根3.求多项式的值POLYVAL函数用来求代数多项式的值,调用的命令格式为:Y=polyval(A,x)本命令将POLYVAL函数返回的多项式的值赋值给Y。若x为一数值,则Y也为一数值;若x为向量或矩阵,则对向量或矩阵中的每个元素求其多项式的值。二、多项式运算及其求根【例8】以例6的4次多项式、分别取x=1.2和下面的矩阵的2×3个元素为自变量计算该多项式的值。A=[1800-10];%例7.8的4次多项式系数x=1.2;%取自变量为一数值y1=polyval(A,x)y1=5.8976x=[-11.2-1.4;2-1.81.6];%给出一个矩阵xy1=polyval(A,x)y1=-17.00005.8976-28.110470.0000-46.158429.3216二、多项式运算及其求根4.多项式的四则运算(1)多项式加、减对于次数相同的若干个多项式,可直接对多项式系数向量进行加、减的运算。如果多项式的次数不同,则应该把低次的多项式系数不足的高次项用零补足,使同式中的各多项式具有相同的次数。二、多项式运算及其求根(2)多项式乘法若A、B是由多项式系数组成的向量,则CONV函数将返回这两个多项式的乘积。调用它的命令格式为:C=conv(A,B)命令的结果C为一个向量,由它构成一个多项式。二、多项式运算及其求根【例9】求例6的4次多项式与多项式2x2-x+3的乘积。A=[1800-10];B=[2-13]B=2-13C=conv(A,B)C=215-524-2010-30本例的运行结果是求得一个6次多项式2x6+15x5-5x4+24x3-20x2+10x-30二、多项式运算及其求根(3)多项式除法当A、B是由多项式系数组成的向量时,DECONV函数用来对两个多项式作除法运算。调用的命令格式为:[Q,r]=deconv(A,B)本命令的结果:多项式A除以多项式B获商多项式赋予Q(也为多项式系数向量);获余项多项式赋予r(其系数向量的长度与被除多项式相同,通常高次项的系数为0)。DECONV是CONV的逆函数,即有A=conv(B,Q)+r。二、多项式运算及其求根【例10】试用例6的4次多项式与多项式2x2-x+3相除。A=[1800-10];B=[2-13];[P,r]=deconv(A,B)P=0.50004.25001.3750r=000-11.3750-14.1250商多项式P为0.5x2+4.25x+1.375,余项多项式r为-11.375x-14.125。二、多项式运算及其求根5.多项式微分matlab提供了polyder函数多项式的微分。命令格式:polyder(p):求p的微分polyder(a,b):求多项式a,b乘积的微分[p,q]=polyder(a,b):求多项式a,b商的微分例:a=[12345];poly2str(a,'x')ans=x^4+2x^3+3x^2+4x+5b=polyder(a)b=4664poly2str(b,'x')ans=4x^3+6x^2+6x+4三、拟合与插值多项式拟合多项式拟合又称为曲线拟合,其目的就是在众多的样本点中进行拟合,找出满足样本点分布的多项式。这在分析实验数据,将实验数据做解析描述时非常有用。Polyfit(X,Y,n)X,Y为拟合数据,n为拟合多项式的阶数x=0:pi/20:pi/2;y=sin(x);a=polyfit(x,y,5);x1=0:pi/30:pi*2;y1=sin(x1);y2=a(1)*x1.^5+a(2)*x1.^4+a(3)*x1.^3+a(4)*x1.^2+a(5)*x1+a(6);plot(x1,y1,'b-',x1,y2,'r*')legend('原曲线','拟合曲线')axis([0,7,-1.2,4])多项式插值多项式插值是指根据给定的有限个样本点,产生另外的估计点以达到数据更为平滑的效果。该技巧在信号处理与图像处理上应用广泛。所用指令有一维的interp1、二维的interp2、三维的interp3。这些指令分别有不同的方法,设计者可以根据需要选择适当的方法,以满足系统属性的要求。Helppolyfun可以得到更详细的内容。y=interp1(xs,ys,x,’method’)在有限样本点向量xs与ys中,插值产生向量x和y,所用方法定义在method中,有4种选择:nearest:执行速度最快,输出结果为直角转折linear:默认值,在样本点上斜率变化很大spline:最花时间,但输出结果也最平滑cubic:最占内存,输出结果与spline差不多习题1.已知某班的5名学生的三门课成绩列表如下:学生序号12345高等数学7889647368外语8377807870MATLAB语言8291788268试写出有关命令,先分别找出三门课的最高分及其学生序号;然后找出三门课总分的最高分及其学生序号。2.针对上小题的成绩表,求出其三门课总
本文标题:第六讲 数据处理方法与多项式
链接地址:https://www.777doc.com/doc-3350771 .html