Matlab多项式插值与曲线拟合(有源代码)_第1页
Matlab多项式插值与曲线拟合(有源代码)_第2页
Matlab多项式插值与曲线拟合(有源代码)_第3页
Matlab多项式插值与曲线拟合(有源代码)_第4页
Matlab多项式插值与曲线拟合(有源代码)_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Matlab多项式插值与曲线拟合一、  基本统计处理1、查取最大值MAX函数的命令格式有:Y,I= max (X):将max(X)返回矩阵X的各列中的最大元素值及其该元素的位置赋予行向量Y与I;当X为向量时,则Y与I为单变量。Y,I=max(X,DIM):当DIM=1时按数组X的各列查取其最大的元素值及其该元素的位置赋予向量Y与I;当DIM=2时按数组X的各行查取其最大的元素值及其该元素的位置赋予向量Y与I.max(A,B):返回一个与A,B同维的数组,其每一个元素是由A,B同位置上的元素的最大值组成。【例1】查找下面数列x的最大值。x=3 5 9 6 1 8  

2、     % 产生数列xx =     3     5     9     6     1     8y=max(x)           % 查出数列x中的最大值赋予yy =   

3、0; 9y,l=max(x) % 查出数列x中的最大值及其该元素的位置赋予y,ly =     9l =     3【例2】分别查找下面3×4的二维数组x中各列和各行元素中的最大值。x=1 8 4 2;9 6 2 5;3 6 7 1    % 产生二维数组xx =     1     8     4     2

4、0;         9     6     2     5           3     6     7     1y=max(x)   

5、0;       % 查出二维数组x中各列元素的最大值产生赋予行向量yy =     9     8     7     5y,l=max(x)         % 查出二维数组x中各列元素的最大值及其这些        

6、;           % 元素的行下标赋予y,ly =     9     8     7     5l =     2     1     3     2y,l=max(x,

7、,1)      % 本命令的执行结果与上面命令完全相同y =     9     8     7     5l =     2     1     3     2y,l=max(x, ,2)   &

8、#160;  % 由于本命令中DIM=2,故查找操作在各行中进行y =     8          9         7l =     2         1        

9、3y,l=max(x)         % 查出二维数组x中各列元素的最大值及其这些                   % 元素的行下标赋予y,ly =     9     8     7  

10、60;  5l =     2     1     3     2y,l=max(x, ,1)      % 本命令的执行结果与上面命令完全相同y =     9     8     7     5l = &#

11、160;   2     1     3     2y,l=max(x, ,2)      % 由于本命令中DIM=2,故查找操作在各行中进行y =     8          9        

12、7l =     2         1         32、查取最小值MIN函数用来查取数据序列的最小值。它的用法与命令格式与MAX函数完全一样,所不同的是执行的结果是最小值。3、求中值所谓中值,是指在数据序列中其值的大小恰好在中间。例如,数据序列9,-2,5,7,12的中值为7 。如果为偶数个时,则中值等于中间的两项之平均值。MEDIAN函数调用的命令格式有:Y=median(X):将med

13、ian(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 =     7x2=9 -2 5 6 7

14、 12;           % 偶数个元素y2=median(x)y2 =    6.5000【例5】对下面二维数组x,试从不同维方向求出其中值。x=1 8 4 2;9 6 2 5;3 6 7 1      % 产生一个二维数组xx =     1     8     4  &

15、#160;  2          9     6     2     5          3     6     7     1y0=median(x) &

16、#160;             % 按列操作y0 =     3     6     4     2y1=median(x,1)              % 此时DIM=1,故按列操作

17、,结果y1为行向量y1 =     3     6     4     2y2=median(x,2)              % 此时DIM=2,故按行操作, 结果y2为列向量y2 =    3.0000      

18、     5.5000           4.50004、求和命令格式有: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 8x =     4 &#

19、160;   5     6     1     4     8y=sum(x,1)y =     5     9    14y=sum(x,2)y =    15    135、求平均值MEAN函数调用的命令格式有:Y= mean(X):将mean

20、 (X)返回矩阵X各列元素之的平均值赋予行向量Y。若X为向量,则Y为单变量。Y= mean(X,DIM):按数组X的第DIM维的方向的元素求其平均值赋予向量Y。若DIM=1,为按列操作;若DIM=2,为按行操作。若X为二维数组,Y为一个向量;若X为一维数组,则Y为单变量。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为单变量。 7、

21、 求累计和、累积积、标准方差与升序排序MATLAB提供的求累计和、累积积、标准方差与升序排序等函数分别为CUMSUM、CUMPROD、STD和SORT,这里仅STD函数为MATLAB程序,其余均为内部函数。这些函数调用的参数与操作方式都与上小节的MEDIAN(中值)函数基本上一样,因此不作详细的介绍。二、插值与曲线拟合1.多项式的曲线拟合    对于实验或统计数据,为了描述不同变量之间的关系,经常采用拟合曲线的办法。拟合曲线,就是要根据已知数据找出相应函数的系数。通常情况下,已知数据往往多于未知系数的个数,所以曲线拟合实质上是解超线性方程组。 曲线拟合涉

22、及回答两个基本问题:最佳拟合意味着什么?应该用什么样的曲线?可用许多不同的方法定义最佳拟合,并存在无穷数目的曲线。所以,从这里开始,我们走向何方?正如它证实的那样,当最佳拟合被解释为在数据点的最小误差平方和,且所用的曲线限定为多项式时,那么曲线拟合是相当简捷的。数学上,称为多项式的最小二乘曲线拟合。如果这种描述使你混淆,再研究图11.1。虚线和标志的数据点之间的垂直距离是在该点的误差。对各数据点距离求平方,并把平方距离全加起来,就是误差平方和。这条虚线是使误差平方和尽可能小的曲线,即是最佳拟合。最小二乘这个术语仅仅是使误差平方和最小的省略说法。命令格式:p=polyfit(x,y,n):在向量

23、p中返回多项式的系数。其中x和y为已知数据的横坐标和纵坐标向量,n为多项式的次数;p,s=polyfit(x,y,n):同时还返回一个误差估计数组s。Matlab polyval 函数功能 多项式的估值运算  使用方法 y = polyval(p,x) 返回n次多项式在x处的值。输入变量p是一个长度为n+1的向量,其元素为按降幂排列的多项式系数。 y=p1*xn+p2*x(n-1)+.+pn*x+p(n+1) x可以是一个矩阵或者一个向量,在这两种情况下,polyval计算在X中任意元素处的多项式p的估值。

24、0;举例 对多项式p(x)=3*x2+2*x+1,计算在x=5,7,9的值。 >> p = 3 2 1; >> x=5,7,9; >> polyval(p,5 7 9) %结果为 ans = 86 162 26212345x=(0:0.1:2.5);%x轴是0.5,只不过每隔0.1显示一个点(图中的圈)y=erf(x);%误差函数,非初等函数p=polyfit(x,y,6);f=polyval(p,x);plot(x,y,'o',x,f,'-'); 

25、;  2. 一维插值插值定义为对数据点之间函数的估值方法,这些数据点是由某些集合给定。当人们不能很快地求出所需中间点的函数值时,插值是一个有价值的工具。例如,当数据点是某些实验测量的结果或是过长的计算过程时,就有这种情况。差值在信号和图像处理方面有很重要的应用。命令格式:      yi=interp1(x,Y,xi)      yi=interp1(x,Y,xi,method) 其中,xi为需要插值的位置所组成的向量,yi为根据插值算法求得的值所组成的向量。x和Y

26、为已知的数据点向量。参量用于确定具体的插值方法,包括:  linear:表示采用线性插值方法  cubic:表示采用三次插值方法  nearest:表示采用最近点插值方法  spline:表示采用三次样条插值方法这四种方法都要求把已知数据按x作升序或降序排列在选择插值方法时,应该考虑速度、内存需要和光滑问题。在上述四种方法中,最近点插值法最快,但它的插值很粗糙。线性插值较最近点插值法需要更多的内存和计算时间,但插值曲线连续,并且导数连续。样条插值法虽然比三次插值法所需的内存少,但耗时多,不过插值曲线最光滑。需要说明的是,由于样条插值的特性,当已知数据分布

27、不均匀时,插值结果不太理想。【例12】下面两个向量分别包括了1900到1990年间美国人口普查的年代和相应的人口数(单位为百万)t=1900 1910 1920 1930 1940      1950 1960 1970 1980 1990 p=75.9950 91.9720 105.7110 123.2030       131.6690 150.6970 179.3230 203.2120        226.5050 249.6330&#

28、160;估计1975年的人口数        interpl(t,p,1975) 估计1900到2000年每一年的人口数        x=1900 :1: 2000;        y=interp1(t,p,x,'spline');        plot(t,p,'o',x,y)&

29、#160;三.离散傅立叶变换例   给定数学函数x(t)=12sin(2×10t+/4)+5cos(2×40t)取N=128,试对t从01秒采样,用fft作快速傅立叶变换,绘制相应的振幅-频率图。在01秒时间范围内采样128点,从而可以确定采样周期和采样频率。由于离散傅立叶变换时的下标应是从0到N-1,故在实际应用时下标应该前移1。又考虑到对离散傅立叶变换来说,其振幅| F(k)|是关于N/2对称的,故只须使k从0到N/2即可。 1 N=128; % 采样点数 2 T=1; % 采样时间终点 3 t=linspace(0,T,N); % 给出N个采样时间

30、ti(I=1:N) 4 x=12*sin(2*pi*10*t+pi/4)+5*cos(2*pi*40*t); % 求各采样点样本值x 5 dt=t(2)-t(1); % 采样周期 6 f=1/dt; % 采样频率(Hz) 7 X=fft(x); % 计算x的快速傅立叶变换X,ifft是逆变换 8 F=X(1:N/2+1); % F(k)=X(k)(k=1:N/2+1) 9 f=f*(0:N/2)/N; % 使频率轴f从零开始10 plot(f,abs(F),'-*') % 绘制振幅-频率图11 xlabel('Frequency');12 ylabel('

31、;|F(k)|') 四.多项式计算1  多项式的四则运算1多项式的加减运算2多项式乘法运算函数conv(P1,P2)用于求多项式P1和P2的乘积。这里,P1、P2是两个多项式系数向量。    例  求多项式x4+8x3-10与多项式2x2-x+3的乘积。3多项式除法函数Q,r=deconv(P1,P2)用于对多项式P1和P2作除法运算。其中Q返回多项式P1除以P2的商式,r返回P1除以P2的余式。这里,Q和r仍是多项式系数向量。deconv是conv的逆函数,即有P1=conv(P2,Q)+r。   2 多项式的导函数(和diff不同的是polyder中p为向量而diff中是符号表达式)对多项式求导数的函数是:p=polyder(P):求多项式P的导函数p=polyder(P,Q):求P·Q的导函数p,q=polyder(P,Q):求P/Q的导函数,导函数的分子存入p,分母存入q。上述函数中,参数P,Q是多项式的向量表示,结果p,q也是多项式的向量表示。  3  多项式的求值MAT

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论