数学实验与Matlab
21
5. 图形窗口的创建和分割 ◆观察:
【 clf,b=2*pi;x=linspace(0,b,50); for k =1:9 y=sin(k*x);
subplot(3,3,k),plot(x,y),axis([0,2*pi,-1,1])
end 】
2.1.2多元函数的可视化与空间解析几何(三维图形)
本节通过高等数学的几个例子观察Matlab的三维绘图功能和技巧。
21
数学实验与Matlab
22
1. 绘制二元函数
◆观察:绘制 z?f(x,y)?(1?x)图象,作定义域的裁剪。
?12ln(x?y)的
◆(1)观察meshgrid指令的效果。
【 a=-0.98;b=0.98;c=-1;d=1;n=10; x=linspace(a,b,n); y=linspace(c,d,n); [X,Y]=meshgrid(x,y); plot(X,Y,'+') 】 ★三维绘图指令mesh、meshc、surf。
◆(2)做函数的定义域裁剪,观察上述三维绘图指令的效果。 程序zxy2_4.m 【 clear,clf,
22
数学实验与Matlab
23
a=-1;b=1;c=-15;d=15;n=20;eps1=0.01;
x=linspace(a,b,n);y=linspace(c,d,n); [X,Y]=meshgrid(x,y);
for i=1:n %计算函数值z ,并作定义域裁剪 for j=1:n
if (1-X(i,j)) z(i,j)=NaN; %作定义域裁剪,定义域以外的函数值为NaN else z(i,j)=1000*sqrt(1-X(i,j))^-1.*log(X(i,j)-Y(i,j)); end 23 数学实验与Matlab 24 end end zz=-20*ones(1,n);plot3(x,x,zz),grid off,hold on %画定义域的边界线 mesh(X,Y,z) %绘图,读者可用meshz, surf, meshc在此 替换之 xlabel('x'),ylabel('y'),zlabel('z'), box on %把三维图形封闭在箱体里 】 ◆运行了zxy2_4.m 以后,有关向量存储在工作空间中,在此基础上,观察上述等值线绘制指令的运行效果。 【 [cs,h]=contour(X,Y,z,15); clabel(cs,h,'labelspacing',244) 】 24 数学实验与Matlab 25 2. 三元函数可视化: slice指令 ◆ 观察: 绘制三元函数w?x?y?z的可视化图形。 【 clf,x=linspace(-2,2,40); y=x; z=x; [X,Y,Z]=meshgrid(x,y,z); w=X.^2+Y.^2+Z.^2; slice(X,Y,Z,w,[-1,0,1],[-1,0,1],[-1,0,1]),colorbar 】 2223. 空间曲线及其运动方向的表现:plot3和quiver指令 【 clf, t=0:0.1:1.5; Vx=2*t;Vy=2*t.^2;Vz=6*t.^3-t.^2; x=t.^2;y=(2/3)*t.^3;z=(6/4)*t.^4-(1/3)*t.^3; %由速度得到曲线 25