资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第六讲 多项式 和数据分析,本讲教学目标,掌握多项式表达和创建方法,掌握多项式的运算,掌握多项式的拟合和插值,了解常用的数据分析的方法,了解傅里叶变换和应用,6.1,多项式,多项式在数学中有着极为重要的作用,同时多项式的运算也是工程和应用中经常遇到的问题。,MATLAB,提供了一些专门用于处理多项式的函数,用户可以应用这些函数对多项式进行操作。,MATLAB,中对多项式的操作包括多项式求根、多项式的四则运算及多项式的微积分。,6.1.1,多项式的表示,在,MATLAB,中多项式用一个行向量表示,向量中的元素为该多项式的系数,按降序排列。,即用行向量,p=a,n,a,n-1,a,1,a,0,表示,f(x)=a,n,x,n,+a,n-1,x,n-1,+a,0,函数,y=poly2str(p,x),将多项式显示为一般形式,即期数学形式。即,y=a,n,xn+a,n-1,xn-1+a,0,6.1.2,多项式的创建,1),直接用行向量创建,P=1,3,4,5,6,7,%,创建一个,5,阶多项式,2),利用函数,ploy,创建,已知多项式的全部根,可用函数,ploy,建立多项式;,也可用函数,ploy,求矩阵的特征多项式。,PPA=x3-15x2-24x+360,例:生成特征多项式,M=magic(3);,PM=,poly(M,);,%A,的特征多项式,PPM=poly2str(PM,x),6.1.3,多项式的四则运算,由于多项式是利用向量来表示,多项式的四则运算可以转化为向量的运算。,(1),多项式加、减,对于次数相同的若干个多项式,可直接对多项式系数向量进行加、减的运算。,如果多项式的次数不同,则应该把低次的多项式系数不足的高次项用零补足,使同式中的各多项式具有相同的次数。,(2),多项式乘,多项式的乘法实际上是多项式系数向量之间的卷积运算。命令格式为:,C=,conv(A,B,),(3),多项式除,多项式的除法为乘法的逆运算,命令格式为:,Q,r,=,deconv(A,B,),。,deconv,是,conv,的逆函数,即有,A=,conv(B,Q)+r,。,例,1,:,a(x)=x,2,+2x+3;b(x)=4x,2,+5x+6;,c(x),=(x,2,+2x+3)(4x,2,+5x+6),a=1 2 3;b=4 5 6;,c=conv(a,b),c=4.00 13.00 28.00 27.00 18.00,p=poly2str(c,x),p=4 x4+13 x3+28 x2+27 x+18,d=deconv(c,a),d=4.00 5.00 6.00,6.1.4,多项式的其他运算,函数,roots(A),求多项式的根。,A,是多项式的系数。,例,2:,a=1 -11 7 7;,r=roots(a),r=10.2505,1.2821,-0.5326,p=,poly(r,),p=1.0000 -11.0000 7.0000 7.0000,roots,函数和,poly,函数为功能互逆的两个函数。,系数向量用行向量表示,根用列向量表示。,函数,polyval(p,x),代数多项式求值。,若,x,为一数值,则求在该点的值;,若,x,为向量或矩阵,则对向量或矩阵中的每个元素求其值。,函数,polyvalm(p,A),矩阵多项式求值。,若,A,为方阵,以方阵为自变量求多项式的值。,函数,polyder(p,),多项式微分。,计算多项式,p,的导数。,函数,polyint(p,),多项式积分。,计算多项式,p,的积分。,例,3,:,多项式的求值和求导。,a=1,2,3,4;,b=1,1;1,1;,polyvalm(a,4),%,同,polyval(a,4),ans,=112,polyval(a,b,),%,数组运算,polyvalm(a,b,),%,矩阵运算,polyder(a),ans=3 4 3,ans=,10 10,10 10,ans=,15 11,11 15,6.1.5,多项式的拟合和插值,1,)曲线拟合,函数,polyfit,给出在最小二乘意义下最佳拟合系数,调用格式为:,P,S =,polyfit,(X,Y,m),其中待拟合数据,X,Y,是等长向量,,P,是长度为,m+1,的,m,次多项式的系数向量,,S,为误差向量。,在,MATLAB,中,用,polyfit,函数来求得最小二乘拟合多项式的系数,再用,polyval,函数按所得的多项式计算所给出的点上的函数近似值。,例,4,:,对中国,1952,年到,1998,年的国民总收入,GDP,的数据,用,1,、,2,、,4,和,6,阶多项式拟合,并将结果用图形表示出来。,GDP,的数据文件为,gdp.txt,。,AA=,load(e:datagdp.txt,);,x=AA(:,1);y=AA(:,2);,p1=polyfit(x,y,1),%,用一阶多项式拟合,p2=polyfit(x,y,2),%,用二阶多项式拟合,p3=polyfit(x,y,4),%,用四阶多项式拟合,p4=polyfit(x,y,6),%,用六阶多项式拟合,f1=polyval(p1,x);,%,计算一阶多项式的插值点,f2=polyval(p2,x);,%,计算二阶多项式的插值点,f3=polyval(p4,x);,%,计算四阶多项式的插值点,f4=polyval(p4,x);,%,计算六阶多项式的插值点,subplot(2,2,1),plot(x,y,.,x,f1,-),title(,一阶图,),subplot(2,2,2),plot(x,y,.,x,f2,-),title(,二阶图,),subplot(2,2,3),plot(x,y,.,x,f3,-),title(,四阶图,),subplot(2,2,4),plot(x,y,.,x,f4,-),title(,六阶图,),2,)多项式的插值,多项式拟合不必点点通过给定的数据点,而插值建立的函数必须点点通过。,一维多项式插值,基本语法为:,y1=interp1(x,y,x1,method),x,、,y,:,等长的采样数据,(,横坐标和纵坐标,),x1,:,待插值的位置,method,:,采用的插值方法如下表。,例,5,:,某观测站测得某日,6:00,时至,18:00,时之间每隔,2,小时的室内外温度,(),,用,3,次样条插值分别求得该日室内外,6:30,至,17:30,时之间每隔,2,小时各点的近似温度,(),。,h=6:2:18;,%,时间变量,t=18,20,22,25,30,28,24;,15,19,24,28,34,32,30;,X=6.5:2:17.5,%,欲插值点,Y=interp1(h,t,X,spline,),二维多项式插值,基本语法为:,Z1,=,interp2(,x,y,z,x,1,y,1,method),x,、,y,:,分别是描述两个参数的采样点,z,:,与采样点对应的函数值,x,1,y,1:,两个向量或标量,描述欲插值的点,z,1:,插值结果,method,:,与一维插值函数相同。,x,1,y,1的取值不能超出,x,y,的范围,否则会给出“NaN”错误,,,x,y,z,也,可以是矩阵。,例,6,:,实验对一根长,10,米的钢轨进行热源的温度传播测试,,试用线性插值求出在一分钟内每隔,20,秒、钢轨每隔,1,米处的温度,ti,。其中,,x,:测量点,,h,:测量时间,,,T,:所得各点的温度,(),。,x=0:2.5:10;,h=0:30:60;,T=95,14,0,0,0;88,48,32,12,6;67,64,54,48,41;,xi=0:10;,hi=0:20:60;,ti=interp2(x,h,T,xi,hi),6.2,数据分析,6.2.1,数据统计处理,1,)随机数的产生,均匀分布的随机数据的产生,(,unifrnd,),指数分布的随机数据的产生,(,exprnd,),二项分布的随机数据的产生,(,binornd,),正态分布的随机数据的产生,(,normrnd,),例,7,:,均匀分布的随机数据的产生,unifrnd(1,4),ans,=,1.6971,unifrnd(1,10,4,4),ans,=,8.2438 1.4478 8.5948 4.9581,9.1756 1.7055 2.5651 4.0604,3.0870 6.7673 2.5371 3.8280,3.1538 2.7180 9.9487 4.2857,2,)统计量的数字特征,最大值和最小值,(,max,、,min,),求和和求积,(,sum,、,prod,),累加和与累加积,(,cumsum,、,cumprod,),平均值和中位数,(,mean,、,geomean,),数据比较,(,sort,、,sortrows,、,range,),期望和方差,(,mean,、,var,),常见分布的期望和方差,(,unifstat,、,binostat,),标准差、协方差与相关系数,(,std,、,cov,、,corrcoee,),例,8,:,统计量的应用。,x=1 8 4 2;9 6 2 5;3 6 7 1;,y,l,=,max(x,1)%,按列操作,y=9 8 7 5,l=2 1 3 2,y1=median(x)%,按列操作,结果为行向量,y1=3 6 4 2,y2=median(x,2)%,按行操作,结果为列向量,y2=3.0000,5.5000,4.5000,x=4 5 6;1 4 8;,y=sum(x,1),y=,5 9 14,y1=mean(x,2),y1=,5.0000,4.3333,y2=prod(x,1),y2=,4 20 48,3,)傅立叶分析与变换,傅立叶分析可以将输入的波长进行变换,分离出各种不同的频率或者提取输入波长不同的数字特征。,一般情况下,我们都是对连续的波进行离散化处理,得到一个离散的向量进行傅立叶变换。,例,9,:,的著名例子,观测太阳黑子变化规律。,已有,300,多年太阳黑子的数据,Wolfer,number,。并且也已经知道太阳黑子的变化周期是,11,年。,本例用,fft,方法对该时间序列进行变换,并进行周期特征的提取。,load,sunspot.dat,%,读入太阳黑子数据,year=sunspot(:,1);,wolfer,=sunspot(:,2);,plot(year,wolfer,),title(300,年的太阳黑子数据图,),可以看出太阳黑子是呈周期性变化的,初步观察它的周期是在,1012,年之间。为得出更精确的周期,我们进行序列的特征提取,即进行,fft,变换。,Y=,fft(wolfer,),变换后,Y,元素为复数。,为寻找最大周期,先求,Y,元素的模平方,记,power,,建立周期和,power,的图形,然后找出周期。,N=length(Y);,Y(1)=;,power=abs(Y(1:N/2).2;,nyquist,=1/2;,freq=(1:N/2)/(N/2)*,nyquist,;,period=1./freq;,plot(period,power,),grid on,axis(0 40 0 2e7),ylabel(Power,),xlabel(Period(Years,/Cycle),title(,周期提取示意图,),从图中可知,power,最高点处周期的值大约为,11,年。为精确起见,我们来搜索最高点处的周期值。,mp,index,=max(power);,period(index),ans,=11.0769,%,即周期为,11.0769,年,本,节,完,谢谢!,
展开阅读全文