《实验五 多元函数的图像.docx》由会员分享,可在线阅读,更多相关《实验五 多元函数的图像.docx(17页珍藏版)》请在课桌文档上搜索。
1、实验五二元函数的图形【实验目的】1 .了解二元函数图形的制作。2 .空间曲面等高线的制作。3 .了解多元函数插值的方法。4 .学习掌握MATLAB软件有关的命令。【实验内容】画出函数Z=JXy2的图形,并画出其等高线。【实验准备】1 .曲线绘图的MATLAB命令MATLAB中主要用mesh,surf命令绘制二元函数图形。mesh(x,y,z)画网格曲面,这里x,y,z是三个数据矩阵,分别表示数据点的横坐标,纵坐标和函数值,该命令将数据点在空间中描出,并连成网格。SUrf(x,y,Z)画完整曲面,这里x,y,Z是三个数据矩阵,分别表示数据点的横坐标,纵坐标和函数值,该命令将数据点所表示曲面画出。
2、预备知识:例:x=l,2,3;y=l,2,3,4;X,Y=meshgrid(x,y)x=l,2,3;y=l,2,3,4;X,Y=meshgrid(x,y)X=1 232 233 234 23Y=5 116 227 338 44练习1画出函数Z=JTTT的图形,其中(x,y)-3,3-3,3,用MATLAB作图的程序如下:(1)三维网线图语法:mesh(X,Y,Z)clear;x=-3:0.1:3;y=;X,Y=meshgrid(x,y);%产生x,y的网格矩阵;Z=sqrt(X2+Y.2);mesh(X,Y,Z)(2)三维曲面图语法:surf(X,Y,Z)clear;closeallx=-3:
3、0.1:3;y=;X,Y=meshgrid(x,y);%产生x,y的网格矩阵;Z=Sqrt(X2+Y.-2);surf(X,Y,Z)(3)立体网线图mesh命令还有几种格式,meshc命令为立体网线图加等高线,meshz为立体网线图加“围裙”,WaterfaII为流水式展开图形。续:meshc(X,Y,Z)立体网线图加等高线meshz(X,Y,Z)立体网线图加“围裙”waterfall(X,Y,Z)流水式展开图形。(4)立体曲面图SUrf命令也还有几种格式:命令SUrfC为三维曲面图加等高线surfc(X,Y,Z)(5)色彩控制colormap命令功能hsv默认hot暖色cool冷色Summe
4、r夏天色彩gray灰色copper铜色y、2o4(6)浓淡处理shading.命令功能shadinginterp连续着色,细赋但费时Shadingflat小片为一种颜色Shadingfaceted小片交接边勾河黑色,立体表现力强clear;closeallx=-3:0.1:3;y=;X,Y=meshgrid(x,y);%产生x,y的网格矩阵;Z=sqrt(X.2+Y.2);surf(X,Y,Z)colormap(spring)shadinginterp(7)亮度处理brightenbrighten(a),Ol时,色图加亮,当一lO时,色图变暗。clear;closeallx=3:0.1:3;y
5、=x;X,Y=meshgrid(x,y);%产生x,y的网格矩阵;Z=sqrt(X.2+Y.2);surf(X,Y,Z)brighten(l)二、如果画等高线,需用CoUtOUr,contour3命令,其中CoUtOUr命令画二维等高线,contour3命令画三维等高线。相应命令为:clear;closeallx=-3:0.1:3;y=;X,Y=meshgrid(x,y);%产生x,y的网格矩阵;Z=sqrt(X.2+Y.2);contour(X,Y,Z,10)%画10条等高线;clear;closeallx=-3:0.1:3;y=;X,Y=meshgrid(x,y);%产生x,y的网格矩阵;
6、Z=Sqrt(X2+Y.-2);contour3(X,Y,Z,10)%画10条等高线;xlabel(,X-axis*),ylabel(,Y-axis*),zlabel(,Z-axis,);title(,Contour3ofSurface*)gridon如果要画Z=I的等高线,贝小clear;closeallx=-3:0.1:3;y=;X,=meshgrid(x,y);%产生x,y的网格矩阵;Z=Sqrt(X2+Yj2);contour(X,Y,Z,11)%画z=l的等高线;clear;closeallx=-3:0.1:3;y=;X,Y=meshgrid(x,y);Z=sqrt(X.2+Y.2)
7、;contour(X,Y,Z,11)holdoncontour(X,Y,Z,22)用clabel(cs,h)为等高线图cs,h标上高度clear;closeallx=-3:0.1:3;y=;X,Y=meshgrid(x,y);%产生y的网格矩阵;Z=sqrt(X2+Y.2);cs,h=contour(X,Y,Zt10);%画10条等高线;clabel(cs,h)三、符号ezmesh,ezsurf作图语法:ezmesh(,函数,xmin,xmax,ymin,ymax)%三维网线图ezsurf(函数,xmin,xmax,ymin,ymax)%三维曲面绘图例如:clear;close;ezmesh(
8、,sqrt(x*2+y2)*,-3,3,-3,3)clear;close;zsurf(,sqrt(x*2+y*2),-3,3,-3,3)Clearjcloseall;ezcontour(,sqrt(x-2+y2)clear;closeall;ezcontour(,sqrt(x2+y2),-3,3,-3,3)sqrt(x2+y2)clear;closeall;ezcontourf(sqrt(x-2+y-2)练习2二次曲面的方程如下222XyzF-1=a2b1C2讨论参数4,b,c对其形状的影响。a=input(,a-);b=input(,b=);c=input(,c=);d=input(,d=,
9、)N=input(,N=);Xgrid=Iinspace(-abs(a),abs(a),N);Ygrid=Iinspace(-abs(b),abs(b),N);x,y=meshgrid(xgrid,ygrid);z=c*sqrt(d-y.*yb2-.*xa2);u=l;zl=real(z);fork=2:Nlforj=2:N-lifimag(z(k,j)=0zl(k,j)=Ojendifall(imag(z(k-l:k+l,j-l:j+l)=0za(k,j)=NaN;endendendsurf(x,y,zl),holdonifu=lz2=-zl;surf(x,y,z2);axis(-abs(a
10、),abs(a),-abs(b),abs(b),-abs(c),abs(c);endyL(y),zabe”,)XIabelCX,)holdoff命令窗口输入a=5ib=4d=lN=15P682.a)绘制椭球面为=3coswsinv,y=2cosucos匕Z=Sin的曲面图形clear;u=0:pi/50:2*pi;v=0:pi/50:pi;U,V=meshgrid(u,v);x=3*cos(U).*sin(V);y=2*cos(U).*cos(V);z=sin(U)mesh(x,y,z)练习5已经知道曲面上一些点的数据(2,2,80),(3,2,82),(4,2,84),(0,3,79),(2
11、,3,61),(3,3,65),(0,4,84),(1,4,84),(4,4,86),将这些数据用二元函数插值的方法画出完整的曲面。首先看这些原始数据的柄图,相应的MATLAB程序代码为:clear;x=2,3,4,0,2,3,0,1,4;y=2,2,2,3,3,3,4,4,4;z=80,82,84,79,61,65,84,84,86;stem3(x,y,z);%画柄图命令titleCRawdata*);xlabelCx,),ylabelCy,),zlabelCz,)Rawdata显然上面数据是残缺不全的,下面用插值的方法画出完整的曲面,相应的MATLAB程序代码为:xi=O:0.2:3;yi=2:0.2:4;%选定x,y的范围X,Y=meshgrid(xi,yi);%产生网格向量X,YZ=griddata(x,y,z,X,Y,cubic*);%,cubic,采用三角形三次插值mesh(X,Y,Z);titleCGriddata*);xlabelCx,),ylabel(,y,),zlabelCz)Griddatay2.52O1