第六讲 数据处理方法与多项式一,基本统计处理一,基本统计处理
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=[3 5 9 6 1 8] % 产生数列 x
x = 3 5 9 6 1 8
y=max(x) % 查出数列 x中的最大值赋予 y
y = 9
[y,l]=max(x) % 查出数列 x中的最大值及其该元素的位置赋予 y,l
y = 9
l = 3
一,基本统计处理
【 例 2】 分别查找下面 3× 4的二维数组 x
中各列和各行元素中的最大值 。
x=[1 8 4 2;9 6 2 5;3 6 7 1] % 产生二维数组 x
x = 1 8 4 2
9 6 2 5
3 6 7 1
y=max(x) % 查出二维数组 x中各列元素的最大值产生赋予行向量 y
y = 9 8 7 5
一,基本统计处理
[y,l]=max(x) % 查出二维数组 x中各列元素的最大值及其这些
% 元素的行下标赋予 y,l
y = 9 8 7 5
l = 2 1 3 2
[y,l]=max(x,[ ],1) % 本命令的执行结果与上面命令完全相同
y = 9 8 7 5
l = 2 1 3 2
[y,l]=max(x,[ ],2) % 由于本命令中 DIM=2,故查找操作在各行中进行
y = 8
9
7
l = 2
1
3
一,基本统计处理
【 例 3】 试取下面两个 2× 3的二维数组 x、
y所有同一位置上的元素值大者构成一个新矩阵 p。
x=[4 5 6;1 4 8] % 产生二维数组 x
x = 4 5 6
1 4 8
y=[1 7 5;4 5 7] % 产生二维数组 y
y = 1 7 5
4 5 7
p=max(x,y) % 在 x,y同一位置上的两个元素中查找出最大值
% 赋予与 x,y同样大小的二维数组 p
p =
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】 试分别求下面数列 x1与 x2的中值 。
x1=[9 -2 5 7 12]; % 奇数个元素
y1=median(x)
y1 =
7
x2=[9 -2 5 6 7 12]; % 偶数个元素
y2=median(x)
y2 =
6.5000
一,基本统计处理
【 例 5】 对下面二维数组 x,试从不同维方向求出其中值 。
x=[1 8 4 2;9 6 2 5;3 6 7 1] % 产生一个二维数组 x
x = 1 8 4 2
9 6 2 5
3 6 7 1
y0=median(x) % 按列操作
y0 = 3 6 4 2
y1=median(x,1) % 此时 DIM=1,故按列操作,结果 y1为行向量
y1 = 3 6 4 2
y2=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 8
y=sum(x,1)
y =
5 9 14
y=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.0000
y2= 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 48
y2= prod(x,2)
y2 =
120
32
一,基本统计处理
7,求累计和、累积积、标准方差与升序排序
MATLAB提供的求累计和,累积积,标准 方 差 与 升 序 排 序 等 函 数 分 别 为
CUMSUM,CUMPROD,STD和 SORT,
这里仅 STD函数为 MATLAB程序,其余均为内部函数 。
这些函数调用的参数与操作方式都与上小节的 MEDIAN( 中值 ) 函数基本上一样,
因此不作详细的介绍 。
一,基本统计处理二,多项式运算及其求根二,多项式运算及其求根鉴于 MATLAB无零下标,故把多项式的一般形式表达为:
1
1
21?

nn
nn axaxaxa?
二,多项式运算及其求根
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=[1 8 0 0 -10]
A =
1 8 0 0 -10
x=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】 试用 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)
本命令将 POLYVAL函数返回的多项式的值赋值给 Y。 若 x为一数值,则 Y也为一数值;若 x为向量或矩阵,则对向量或矩阵中的每个元素求其多项式的值 。
二,多项式运算及其求根
【 例 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)
y1 =
-97.3043
x=[-1 1.2 -1.4;2 -1.8 1.6] % 给出一个矩阵 x
x =
-1.0000 1.2000 -1.4000
二,多项式运算及其求根
4,多项式的四则运算
(1)多项式加、减对于次数相同的若干个多项式,可直接对多项式系数向量进行加、减的运算。如果多项式的次数不同,则应该把低次的多项式系数不足的高次项用零补足,使同式中的各多项式具有相同的次数。
二,多项式运算及其求根
(2)多项式乘法若 A,B是由多项式系数组成的向量,则
CONV函数将返回这两个多项式的乘积 。
调用它的命令格式为:
C=conv(A,B)
命令的结果 C为一个向量,由它构成一个多项式 。
二,多项式运算及其求根
【 例 9】 求 例 7.8的 4次多项式与多项式
2x2-x+3的乘积 。
A=[1 8 0 0 -10];
B=[2 -1 3]
B =
2 -1 3
C=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。
二,多项式运算及其求根
【 例 10】 试用 例 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.3750
r = 0 0 0 -11.3750 -14.1250
商多项式 P为 0.5x2+4.25x+1.375,
余项多项式 r为 -11.375x-14.125。
二,多项式运算及其求根习题
1,已知某班的 5名学生的三门课成绩列表如下:
学生序号 1 2 3 4 5
高等数学 78 89 64 73 68
外语 83 77 80 78 70
MATLAB语言 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 ]