当前位置:文档之家› [整理]matlab绘制二元函数图形.

[整理]matlab绘制二元函数图形.

MATL AB绘制二元函数的图形【实验目的】1.了解二元函数图形的绘制。

2.了解空间曲面等高线的绘制。

3.了解多元函数插值的方法。

4.学习、掌握MATLAB软件有关的命令。

【实验内容】画出函数22yz+=的图形,并画出其等高线。

x【实验准备】1.曲线绘图的MATLAB命令MATLAB中主要用mesh,surf命令绘制二元函数图形。

主要命令mesh(x,y,z)画网格曲面,这里x,y,z是数据矩阵,分别表示数据点的横坐标,纵坐标和函数值,该命令将数据点在空间中描出,并连成网格。

surf(x,y,z)画完整曲面,这里x,y,z是数据矩阵,分别表示数据点的横坐标,纵坐标和函数值,该命令将数据点所表示曲面画出。

【实验重点】1. 二元函数图形的描点法2. 曲面交线的计算3. 地形图的生成【实验难点】1. 二元函数图形的描点法2. 曲面交线的计算【实验方法与步骤】练习1画出函数22y=的图形,其中]3,3xz+⨯-yx。

∈,[]3,3[(-)用MATLAB作图的程序代码为>>clear;>>x=-3:0.1:3; %x的范围为[-3,3]>>y=-3:0.1:3; %y的范围为[-3,3]>>[X,Y]=meshgrid(x,y); %将向量x,y指定的区域转化为矩阵X,Y >>Z=sqrt(X.^2+Y.^2); %产生函数值Z>>mesh(X,Y,Z)运行结果为图5.3如果画等高线,用contour,contour3命令。

contour画二维等高线。

contour3画三维等高线。

画图5.3所示的三维等高线的MA TLAB 代码为>>clear;>>x=-3:0.1:3;>>y=-3:0.1:3;>>[X,Y]=meshgrid(x,y);>>Z=sqrt(X.^2+Y.^2);>>contour3(X,Y,Z,10); %画10条等高线>>xlabel('X-axis'),ylabel('Y-axis'),zlabel('Z-axis'); %三个坐标轴的标记>>title('Contour3 of Surface') %标题>>grid on %画网格线运行结果为图5.4如果画图5.4所示的二维等高线,相应的MATLAB代码为>>clear;x=-3:0.1:3;y=-3:0.1:3;>>[X,Y]=meshgrid(x,y);Z=sqrt(X.^2+Y.^2);>>contour (X,Y,Z,10);>>xlabel('X-axis'),ylabel('Y-axis');>>title('Contour3 of Surface')>>grid on运行结果为如果要画z=1的等高线,相应的MATLAB代码为>>clear;x=-3:0.1:3;y=-3:0.1:3;>>[X,Y]=meshgrid(x,y);Z=sqrt(X.^2+Y.^2);>>contour(X,Y,Z,[1 1])运行结果为练习2 二次曲面的方程如下222222x y z d a b c++= 讨论参数a ,b ,c 对其形状的影响。

相应的MATLAB 代码为>>a=input('a='); b=input('b='); c=input('c=');>>d=input('d='); N=input('N='); %输入参数,N 为网格线数目 >>xgrid=linspace(-abs(a),abs(a),N); %建立x 网格坐标 >>ygrid=linspace(-abs(b),abs(b),N); %建立y 网格坐标>>[x,y]=meshgrid(xgrid,ygrid); %确定N ×N 个点的x,y 网格坐标 >>z=c*sqrt(d-y.*y/b^2-x.*x/a^2);u=1; %u=1,表示z 要取正值 >>z1=real(z); %取z 的实部z1>>for k=2:N-1; %以下7行程序的作用是取消z中含虚数的点>>for j=2:N-1>>if imag(z(k,j))~=0 z1(k,j)=0;end>>if all(imag(z([k-1:k+1],[j-1:j+1])))~=0 z1(k,j)=NaN;end>>end>>end>>surf(x,y,z1),hold on %画空间曲面>>if u==1 z2=-z1;surf (x,y,z2);%u=1时加画负半面>>axis([-abs(a),abs(a),-abs(b),abs(b),-abs(c),abs(c)]);>>end>>xlabel('x'),ylabel('y'),zlabel('z')>>hold off运行程序,当a=5,b=4,c=3,d=1,N=50时结果为当a=5i,b=4,c=3,d=1,N=15时结果为当a=5i,b=4i,c=3,d=0.1,N=10时结果为【练习与思考】 1. 画出空间曲面22221sin 10yx y x z +++=在30,30<<-y x 范围内的图形,并画出相应的等高线。

解:clear;close; u=-30:0.5:30; v=-30:0.5:30;[x,y]=meshgrid(u,v);z=10*sin(sqrt(x.^2+y.^2))./sqrt(1+x.^2+y.^2); subplot(1,2,1);mesh(x,y,z) subplot(1,2,2); contour(x,y,z,10)2. 根据给定的参数方程,绘制下列曲面的图形。

a) 椭球面v u x sin cos 3=,v u y cos cos 2=,u z sin =; 解:clear;close;v=-4:0.1:4;[U,V]=meshgrid(u,v); X=3.*cos(U).*sin(V); Y=2.*cos(U).*cos(V); Z=sin(U); surf(X,Y,Z); axis equalb) 椭圆抛物面v u x sin 3=,v u y cos 2=,24u z =; 解:clear;close; u=-4:0.1:4;[U,V]=meshgrid(u,v);X=3.*U.*sin(V);Y=2.*U.*cos(V);Z=4.*U.^2;surf(X,Y,Z);shading interp;colormap(hot);axis equalc) 单叶双曲面vz tan2,usec=;4x sinuu cossec3=,v解:clear;close;v=-2:0.1:2;[U,V]=meshgrid(u,v); X=3*sec(U).*sin(V); Y=2*sec(U).*cos(V); Z=4*tan(U); mesh(X,Y,Z); shading interp; colormap(jet); axis equald) 双叶抛物面u x =,v y =,322v u z -=;解:clear;close;u=-4:0.1:4;v=-4:0.1:4;[U,V]=meshgrid(u,v); X=U;Y=V;Z=(U.^2-V.^2)/3; mesh(X,Y,Z);shading interp; colormap(jet);axis equale) 旋转面v u x sin ln =,v u y cos ln =,u z =; 解:clear;close; u=-4:0.1:4; v=-4:0.1:4;[U,V]=meshgrid(u,v); X=log(U).*sin(V); Y=log(U).*cos(V); Z=U;mesh(X,Y,Z); shading interp; colormap(jet); axis equalf) 圆锥面v u x sin =,v u y cos =,u z =; 解:clear;close; u=-4:0.1:4; v=-4:0.1:4;[U,V]=meshgrid(u,v); X=U.*sin(V); Y=U.*cos(V); Z=U;mesh(X,Y,Z); shading interp; colormap(jet);axis equalg) 环面vcos)y sin3(+=,vu4.0x cosu=,v)cos3(+4.04.0=;z sin 解:clear;close;u=-4:0.1:4;v=-4:0.1:4;[U,V]=meshgrid(u,v);X=(3+0.4*cos(U)).*cos(V);Y=(3+0.4*cos(U)).*sin(V);Z=0.4*sin(V);mesh(X,Y,Z);shading interp;colormap(jet); axis equalh) 正螺面v u x sin =,v u y cos =,v z 4=。

解:clear;close; u=-4:0.1:4; v=-4:0.1:4;[U,V]=meshgrid(u,v); X=U.*sin(V); Y=U.*cos(V); Z=4*V; mesh(X,Y,Z);shading interp;colormap(jet);axis equal3. 在一丘陵地带测量高程,x和y方向每隔100米测一个点,得高程见表5-2,试拟合一曲面,确定合适的模型,并由此找出最高点和该点的高程。

表5-2 高程数据解:clear;close;x=[100 100 100 100 200 200 200 200 300 300 300 300 400 400 400 400];y=[100 200 300 400 100 200 300 400 100 200 300 400 100 200 300 400];z=[636 697 624 478 698 712 630 478 680 674 598 412 662 626 552 334];xi=100:5:400;yi=100:5:400;[X,Y]=meshgrid(xi,yi);H=griddata(x,y,z,X,Y,'cubic');surf(X,Y,H);view(-112,26);hold on;maxh=vpa(max(max(H)),6)-------------[r,c]=find(H>=single(maxh)); stem3(X(r,c),Y(r,c),maxh,'fill')-------------。

相关主题