元函数的图形.doc
文本预览下载声明
实验五 二元函数的图形
【实验目的】
了解二元函数图形的制作。
空间曲面等高线的制作。
了解多元函数插值的方法。
学习掌握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 画出函数的图形,不妨将区域限制在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=);
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); %确定个点的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 za(k,j)
显示全部