matlab曲线拟合

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

Cftool命令Mean(x);求均值Std(x);求标准差Var(x);求方差C=cov(v);求协方差S=corrcoef(x);求相关系数矩阵函数2.多项式的运算MATLAB语言提供了大量关于多项式运算的内部函数。下表列出了常用的多项式运算函数。函数功能roots多项式求根poly由根创建多项式polyval多项式求值residue部分分式展开(求留数)polyfit多项式曲线拟合polyder多项式求导conv多项式相乘(卷积)deconv多项式相除(解卷)矩阵函数六.多项式多项式在工程计算中有着广泛的应用,在很多情况下,特殊函数都可以用Taylor级数展开成多项式的形式,工程中有许多特殊曲线可以用多项式进行曲线拟合。MATLAB中有许多关于多项式的内部函数,其中包含多项式的定义函数和多项式的运算函数。1.多项式的定义在MATLAB语言中,多项式有两种定义方式。矩阵函数(1)直接输入。MATLAB采用行向量表示多项式,将多项式的系数按降幂次序存放在行向量中即可。【例2.56】直接输入多项式。P=[1-56-33];poly2sym(P)%poly2sym是符号工具箱中的函数,它将多项式向量表示成为符号多项式的形式。ans=x^3-5*x^2+6*x-33(2)用命令poly创建。如果A是矩阵,则poly(A)将创建矩阵A的特征多项式;如果A是向量,则poly(A)将创建以A中各元素为根的多项式。【例2.57】用poly创建多项式。A=[123;345;567]A=123345567poly(A)ans=1.0000-12.0000-12.00000.0000B=[123]B=123poly(B)ans=1-611-6【例2.58】多项式的运算。A=[1234];B=[3-5823-7];roots(A)%求多项式A的根。ans=-1.6506-0.1747+1.5469i-0.1747-1.5469ipolyder(B)%多项式B求导。ans=12-151623conv(A,B)%多项式A与B相乘。ans=31736438771-28MATLAB语言用plot命令来绘制X-Y平面坐标中的曲线,它是一个功能很强的命令。给出X、Y坐标的值,很容易绘制出X-Y平面坐标图。【例2.59】绘制X-Y平面坐标图。x=0:pi/36:2*pi;y=sin(x);plot(x,y);xlabel('x'),ylabel('y');%添加坐标轴标识。grid所得图形如图所示。绘图函数【例2.60】输入一个数组的plot绘图。y=5*(rand(1,10)-0.5)y=Columns1through6-0.47152.17732.0845-0.44861.9682-2.2105Columns7through10-0.73571.5658-2.4507-1.8055plot(y)gridxlabel('x'),ylabel('y')所得图形如图所示。一个数组的plot绘图绘图函数2.输入两个数组如果数组x和y具有相同的维数,函数plot(x,y,‘s’)将绘制出以数组x的元素作为X坐标,以数组y的元素作为Y坐标的图形。【例2.61】两个数组的plot绘图。x=0:0.5:4*pi;y1=exp(-0.1*x).*sin(x);y2=exp(-0.1*x).*sin(x+0.5*pi);plot(x,y1,'k',x,y2,'k:')%在一张图中绘制两条曲线。xlabel('x'),ylabel('y')所得图形如图所示。两个数组的plot绘图绘图函数三.多条曲线MATLAB语言在一张图上绘制多条曲线共有4种方法。1.plot(X,[y1,y2,…])命令plot(x,[y1,y2,…])命令中的x是向量,y=[y1,y2,…]是矩阵,若x是列(行)向量,则y的列(行)维数与x的维数相同。矩阵y的行(列)维数就是所绘制曲线的条数。在这种命令格式下,系统会自动给曲线以不同的颜色。这种方法要求所有的输出变量有同样的维数和同样的自变量向量,且不便于用户自行设定线型和颜色。2.hold命令在绘制前一条曲线后在命令窗口输入hold命令,再绘制下一条曲线,这样一来,两条曲线在一幅图中,实际上是将两幅图重叠在一起。用这种方法时,所绘制的多幅曲线图中变量的维数可以各不相同,只要每幅图中自变量的维数和因变量的维数相同即可。绘图函数三.多条曲线MATLAB语言在一张图上绘制多条曲线共有4种方法。1.plot(X,[y1,y2,…])命令plot(x,[y1,y2,…])命令中的x是向量,y=[y1,y2,…]是矩阵,若x是列(行)向量,则y的列(行)维数与x的维数相同。矩阵y的行(列)维数就是所绘制曲线的条数。在这种命令格式下,系统会自动给曲线以不同的颜色。这种方法要求所有的输出变量有同样的维数和同样的自变量向量,且不便于用户自行设定线型和颜色。2.hold命令在绘制前一条曲线后在命令窗口输入hold命令,再绘制下一条曲线,这样一来,两条曲线在一幅图中,实际上是将两幅图重叠在一起。用这种方法时,所绘制的多幅曲线图中变量的维数可以各不相同,只要每幅图中自变量的维数和因变量的维数相同即可。绘图函数3.在plot后使用多输入变量在plot命令后使用多输入变量所用的语句为plot(x1,y2,x2,y3,…,xn,yn)。其中x1,y1;x2,y2;…,xn,yn分别为数组对。每个数组对可以绘制出一条曲线,这样就可以在一张图上绘制多条曲线,各数组对的维数可以不同,且各自都可以加上线型等标志符。4.plotyy命令用plotyy命令绘图,它设有两个纵坐标,以便绘制两个y坐标尺度不同的变量,但x坐标仍用同一个尺度。绘图函数【例2.62】plotyy命令绘图。x=0:0.05:4*pi;y1=sin(x);y2=5*cos(x);plotyy(x,y1,x,y2)gtext('t')gtext('y1'),gtext('y2')绘制曲线如图所示。双纵坐标绘图绘图函数5.多窗口绘图MATLAB语言通过使用创建绘图窗口命令figure(n)可以进行多个图形窗口绘图,其中n为创建图形窗口的序号。在使用plot命令绘图时,MATLAB是以默认方式创建1号窗口。即如果窗口存在,则使用plot命令在当前窗口绘图;如果窗口不存在,则先默认执行命令figure(1)创建1号窗口,然后再绘图。MATLAB在进行多窗口绘图时,需要先按照窗口序号创建窗口,然后才可以在指定的窗口绘图。【例2.63】多窗口绘图。x=0:pi/90:2*pi;y1=sin(2*x);plot(x,y1)%默认方式创建1号窗口。figure(2)y2=exp(-1.5*x).*sin(2*x);plot(x,y2,':')%创建2号窗口。figure(1)%对1号窗口图形进行修饰。gridxlabel('x'),ylabel('y1')figure(2)%对2号窗口图形进行修饰。gridxlabel('x'),ylabel('y2')绘图函数(a)1号窗口(b)2号窗口绘图函数6.单窗口多曲线子图MATLAB语言在一个窗口上可以绘制以阵列方式分布的分图。分图分割命令函数为subplot(m,n,p),其括号中的逗号可以省略。subplot(mnp)表示在图面的第m行、第n列的位置作p号子图,p为绘图顺序号,从左到右,从上到下排列。MATLAB执行subplot命令就指定了当前绘图位置,plot就在当前分图的位置作图。【例2.64】单窗口多曲线分图绘制。x=0:pi/90:2*pi;y1=sin(2*x);y2=cos(2*x);y3=sin(2*x)+cos(2*x);y4=sin(2*x)-cos(2*x);subplot(221);%绘制第一个分图。plot(x,y1);grid;xlabel('x');ylabel('y1');subplot(222);%绘制第二个分图。plot(x,y2);grid;xlabel('x');ylabel('y2');subplot(223);%绘制第三个分图。plot(x,y3);grid;xlabel('x');ylabel('y3');subplot(224);%绘制第四个分图。plot(x,y4);grid;xlabel('x');ylabel('y4');绘图函数单窗口多曲线分图绘图函数七.三维图和网格曲面图MATLAB语言提供了强大的三维图形的绘制功能,绘制三维图形与绘制二维图形在许多方面都很类似,其中曲线的属性设置完全相同。1.三维绘图函数plot3MATLAB语言的三维绘图函数plot3是函数plot的三维扩展。其基本调用格式有两种,与函数plot相比,只是维数增加了一个而已。(1)plot3(x,y,z):其中x、y和z为3个具有相同维数的向量。函数plot3绘制出这些向量所表示点的曲线。(2)plot3(X,Y,Z):其中X、Y和Z为3个具有相同阶数的矩阵。函数plot3绘制出3个矩阵的列向量的曲线。绘图函数【例2.70】三维曲线绘图。x=0:pi/60:10*pi;y=sin(x);z=cos(x);plot3(x,y,z);xlabel('x'),ylabel('y'),zlabel('z');grid所绘制的三维曲线图如图所示。三维曲线图绘图函数【例2.71】参数为矩阵的三维图。x=-2:0.2:2;y=-2:0.2:2;[X,Y]=meshgrid(x,y);%生成网格点。Z=X.*exp(-X.^2-Y.^2);plot3(X,Y,Z,'k');gridxlabel('x'),ylabel('y'),zlabel('z');size(Z)ans=2121所绘制参数为矩阵的三维图如图所示。从图中可以看出,图形由多条曲线组成,曲线的条数与矩阵Z的列数相同。参数为矩阵的三维图绘图函数2.网格曲面图MATLAB语言应用函数mesh可以绘制三维网格曲面图。其具体的调用方式有两种。(1)mesh(X,Y,Z):绘制三个矩阵变量的彩色网格曲面图,颜色由矩阵C设置。(2)mesh(X,Y,Z,C):使用C=Z,即网图高度正比于图高。在两种调用方式中,矩阵X、Y可以用向量x、y来代替,当必须满足向量x、y的维数分别等于矩阵Z列数和行数;或者是x为行向量,而y为列向量。绘图函数【例2.72】三维网格曲面图。x=-8:0.5:8;y=x';a=ones(size(y))*x;b=y*ones(size(x));c=sqrt(a.^2+b.^2)+eps;Z=sin(c)./c;mesh(x,y,Z)xlabel('x'),ylabel('y'),zlabel('Z');所绘制的三维网格曲面图如图所示。三维网格曲面图绘图函数九.坐标比例的选择MATLAB语言用axis命令对绘制图形的坐标轴进行调整。axis命令的功能非常丰富,可以用它来控制坐标轴的比例和特性。1.坐标轴比例控制函数axis([xmin,xmax,ymin,ymax])将图形的x轴范围限定在[xmin,xmax]之间;y轴的范围限定在[ymin,ymax]之间。MATLAB绘制图形时,按照给定的数据值确定坐标轴参数范围。对坐标轴范围参数的修改,相当于对原来的图形进行放大或缩小处理。三维图形的坐标比例控制函数axis([xmin,xmax,ymin,ymax,zmin,zmax]),它在二维的基础上,将图形的z轴范围限定在[zmin,zmax]之间。

1 / 23
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功