实验五 曲面绘图
【实验目的】
1. 了解二元函数图形的制作。
2. 空间曲面等高线的制作。
3. 学习掌握MATLAB软件有关的命令。
【实验内容】
画出函数的图形,并画出其等高线。
【实验准备】
1.曲线绘图的MATLAB命令
MATLAB中主要用mesh,surf命令绘制二元函数图形。
mesh(x,y,z) 画网格曲面,这里x,y,z是三个数据矩阵,分别表示数据点的横坐标,纵坐标和函数值,该命令将数据点在空间中描出,并连成网格。 surf(x,y,z) 画完整曲面,这里x,y,z是三个数据矩阵,分别表示数据点的横坐标,纵坐标和函数值,该命令将数据点所表示曲面画出。 |
可以用help mesh, help surf查阅有关这些命令的详细信息
【实验方法与步骤】
练习1 画出函数的图形,不妨将区域限制在input命令。用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.1。图5.1是网格线图,如果要画完整的曲面图,只需将上述的MATLAB代码mesh(X,
Y,Z)改为surf(X,Y,Z), 结果如图5.2
图5.1 锥面 图5.2 锥面
要画等高线,需用contour,contour3命令.其中contour为二维等高线, contour3为三维等高线,如画图5.1的三维等高线, MATLAB代码为:
>>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.3.
图5.3 等高线
如画图5.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,10)
>>xlabel('X-axis'),ylabel('Y-axis')
>>title('Contour of Surface')
>>grid on
结果如图5.4.
图5.4 等高线
如果要画的等高线,则用命令
>>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])
结果如图5.5。
图5.5 等高线
练习1中,函数值可简单算出。在有些情况下,函数值不能简单算出。这是因为x和y的值可能是非均匀间隔的甚至是随机分布的,也可能使用了不同的坐标系,比如非长方形的网。出现这些情况时,MATLAB中的函数griddata就用来产生经查值后的均匀间隔数据以作图。
练习2 二次曲面的方程如下
讨论参数对其形状的影响。
本练习的关键在于如何作出三维曲面图形,特别注意在给定值求时,若有开方运算,一是会出现虚数,二是对实数也有正负两个解。为了使虚数不出现在绘图中,采用了一种技巧,就是将虚数都换成非数(NaN). MATLAB代码为:
>>a=input('a='); b=input('b='); c=input('c=');
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论