
数据处理方法与多项式.ppt
34页第六讲 数据处理方法与多项式一、 基本统计处理max()min()median()sum()mean()prod()cumsum()cumprod()std()sort()一、 基本统计处理1、、查取最大取最大值MAX函数的命令格式有:[Y,I]= max (X):将max(X)返回矩阵X的各列中的最大元素值及其该元素的位置赋予行向量Y与I;当X为向量时,则Y与I为单变量[Y,I]=max(X,[],DIM):按数组X的第DIM维的方向查取其最大的元素值及其该元素的位置赋予向量Y与I【例例1 1】查找下面数列x的最大值x=[3 5 9 6 1 8] % 产生数列xx = 3 5 9 6 1 8y=max(x) % 查出数列x中的最大值赋予yy = 9[y,l]=max(x) % 查出数列x中的最大值及其该元素的位置赋予y,ly = 9l = 3一、 基本统计处理【例例2 2】分别查找下面3×4的二维数组x中各列和各行元素中的最大值x=[1 8 4 2;9 6 2 5;3 6 7 1] % 产生二维数组xx = 1 8 4 2 9 6 2 5 3 6 7 1y=max(x) % 查出二维数组x中各列元素的最大值产生赋予行向量yy = 9 8 7 5一、 基本统计处理[y,l]=max(x ) y = 9 8 7 5l = 2 1 3 2[y,l]=max(x,[ ],1) y = 9 8 7 5l = 2 1 3 2[y,l]=max(x,[ ],2) y = 8 9 7一、 基本统计处理l = 2 1 3【例例3 3】试取下面两个2×3的二维数组x、y所有同一位置上的元素值大者构成一个新矩阵p。
x=[4 5 6;1 4 8] % 产生二维数组xx = 4 5 6 1 4 8y=[1 7 5;4 5 7] % 产生二维数组yy = 1 7 5 4 5 7p=max(x,y) % 在x,y同一位置上的两个元素中查找出最大值 % 赋予与x,y同样大小的二维数组pp = 4 7 6 4 5 8一、 基本统计处理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 4】试分别求下面数列x1与x2的中值x1=[9 -2 5 7 12]; % 奇数个元素y1=median(x1)y1 = 7x2=[9 -2 5 6 7 12]; % 偶数个元素y2=median(x)y2 = 6.5000一、 基本统计处理【例例5 5】对下面二维数组x,试从不同维方向求出其中值x=[1 8 4 2;9 6 2 5;3 6 7 1] y0=median(x) y0 = 3 6 4 2y1=median(x,1)% y1 = 3 6 4 2y2=median(x,2) % 此时DIM=2,故按行操作, 结果y2为列向量y2 = 3.0000 5.5000 4.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=[4 5 6;1 4 8]x = 4 5 6 1 4 8y=sum(x,1)y = 5 9 14y=sum(x,2)y = 15 13一、 基本统计处理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=[4 5 6;1 4 8];y1= mean(x,1)y1 = 2.5000 4.5000 7.0000y2= mean(x,2)y2 = 5.0000 4.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=[4 5 6;1 4 8];y1= prod(x,1)y1 = 4 20 48y2= prod(x,2)y2 = 120 32一、 基本统计处理7、、 求累计和、累积积、标准方差与升序排序求累计和、累积积、标准方差与升序排序MATLAB提供的求累计和、累积积、标准方差 与 升 序 排 序 等 函 数 分 别 为 CUMSUM、CUMPROD、STD和SORT,这里仅STD函数为MATLAB程序,其余均为内部函数这些函数调用的参数与操作方式都与上小节的MEDIAN(中值)函数基本上一样,因此不作详细的介绍一、 基本统计处理二、 多项式运算及其求根二、二、 多项式运算及其求根多项式运算及其求根鉴于MATLAB无零下标,故把多项式的一般形式表达为:二、 多项式运算及其求根1. 多项式求根多项式求根命令格式:x=roots(A)。
这里A为多项式的系数A(1),A(2),…,A(N),A(N+1);解得的根赋值给数组X,即X(1),X(2), …,X(N)例例6 6】试用ROOTS函数求多项式x4+8x3-10的根这是一个4次多项式,它的五个系数依次为:1,8,0,0,-10下面先产生多项式系数的向量A,然后求根:A=[1 8 0 0 -10]A = 1 8 0 0 -10x=roots(A)x = -8.0194 -0.5075 + 0.9736i -0.5075 - 0.9736i 1.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 7】试用POLY函数对例7.8所求得的根,建立相应的多项式x=[-8.0194 -0.5075 + 0.9736i -0.5075 - 0.9736i 1.0344];z=poly(x)z = 1.0000 8.0000 0.0000 0.0000 -9.9996二、 多项式运算及其求根3. 求多项式的值求多项式的值POLYVAL函数用来求代数多项式的值,调用的命令格式为:Y=polyval(A,x)可以这样写:Y=polyval(A,[1 2 3 4 5 6])本命令将POLYVAL函数返回的多项式的值赋值给Y若x为一数值,则Y也为一数值;若x为向量或矩阵,则对向量或矩阵中的每个元素求其多项式的值二、 多项式运算及其求根【例例8 8】以例7.8的4次多项式、分别取x=1.2和下面的矩阵的2×3个元素为自变量计算该多项式的值A=[1 8 0 0 -10]; % 例7.8的4次多项式系数x=1.2; % 取自变量为一数值y1=polyval(A,x)x=[-1 1.2 -1.4;2 -1.8 1.6] % 给出一个矩阵xy2=polyval(A,x)二、 多项式运算及其求根4. 多项式的四则运算多项式的四则运算(1)多多项式加、减式加、减对于次数相同的若干个多项式,可直接对多项式系数向量进行加、减的运算。
如果多项式的次数不同,则应该把低次的多项式系数不足的高次项用零补足,使同式中的各多项式具有相同的次数二、 多项式运算及其求根(2)多多项式乘法式乘法若A、B是由多项式系数组成的向量,则CONV函数将返回这两个多项式的乘积调用它的命令格式为:C=conv(A,B)命令的结果C为一个向量,由它构成一个多项式二、 多项式运算及其求根【例例9 9】求例7.8的4次多项式与多项式2x2-x+3的乘积A=[1 8 0 0 -10];B=[2 -1 3]B = 2 -1 3C=conv(A,B)C = 2 15 -5 24 -20 10 -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二、 多项式运算及其求根【例例1010】试用例7.8的4次多项式与多项式2x2-x+3相除A=[1 8 0 0 -10];B=[2 -1 3];[P,r]=deconv(A,B)P = 0.5000 4.2500 1.3750r = 0 0 0 -11.3750 -14.1250商多项式P为0.5x2+4.25x+1.375,余项多项式r为 -11.375x-14.125二、 多项式运算及其求根roots():多项式的根poly():构造多项式polyval():求代数多项式的值conv():多项式乘法deconv():多项式除法polyint():多项式积分polyder():多项式微分习题习题1.已知某班的5名学生的三门课成绩列表如下: 学生序号 1 2 3 4 5 高等数学 78 89 64 73 68 外语 83 77 80 78 70MATLAB语言 82 91 78 82 68试写出有关命令,先分别找出三门课的最高分及其学生序号;然后找出三门课总分的最高分及其学生序号。
2.针对上小题的成绩表,求出其三门课总分存入数组ZF,再利用SORT命令对之按降序排序,同时把相应的学生序号存入数组XH习题习题3.今有多项式P1(x)=x4-2x+1,P2(x)=x2+4x-0.5,要求先求得P(x)=P1(x)+P2(x),然后计算xi=0.2*i各点上的P(xi)(i=0,1,2,…,5)值4.试编一个m程序,将一维数组x中的N个数按颠倒的次序重新存储如N=5,原来x为:x=[ 1 3 5 7 9 ]而经过颠倒处理后x中数据的次序应该为:x=[ 9 7 5 3 1 ]。
