数学实验与Matlab
26
plot3(x,y,z,'r.-'),hold
on %画飞行轨迹 %算数值梯度,也就是重新计算数值速度矢量,这只是为了编程的方便,不是必须的 Vx=gradient(x);Vy=gradient(y);Vz=gradient(z); quiver3(x,y,z,Vx,Vy,Vz),grid 图2.12 飞机的飞on %画速
行轨迹与方向 度矢量图
xlabel('x'),ylabel('y'),zlabel('z') 】
105z04232y001x2.2应用、思考和练习 2.2.1 线性p周期函数 zxy2_3_f.m
26
数学实验与Matlab
27
【 function f=zxy2_3_f(x)
f=sin(x+cos(x)); 】 zxy2_3.m
【 clear,clf
a=-8;b=12;n=300;xx=linspace(a,b,n); h=zxy2_3_f(xx); S(1)=0; for i=2:n
S(i)=S(i-1)+quad('zxy2_3_f',xx(i-1),xx(i)); end
subplot(1,2,1),plot(xx,S,'k-'),axis([a,b,-1.5,9])
subplot(1,2,2),plot(xx,[h;zeros(1,length(xx))],'k-'),axis([a,b,-1.5,1.5]) 】
27
数学实验与Matlab
28
2.2.2 平面截割法和曲面交线的绘制 ◆用平行截面法讨论由曲面 z?x?2y 构成的马鞍面形状。
22 zxy2_6.m ( 平行截割法示例 , 本程序的绘制两曲面交线方法可以套用) 【 clf, a=-20;eps0=1;
[x,y]=meshgrid(-10:0.2:10); %生成平面网格
v=[-10 10 -10 10 -100 100]; %设定空间坐标系的范围
colormap(gray) %将当前的颜色设置为灰色
z1=(x.^2-2*y.^2)+eps; %计算马鞍面函数z1=z1(x,y)
z2=a*ones(size(x)); %计算平面 z2=z2(x,y)
28
数学实验与Matlab
29
r0=abs(z1-z2)<=eps0;
%计算一个和z1同维的函数r0,当abs(z1-z2)<=eps时r0 =1;当abs(z1-z2)>eps0时,r0 =0。
%可用mesh(x,y,r0)语句观察它的图形,体会它的作用,该方法可以套用。
zz=r0.*z2;xx=r0.*x;yy=r0.*y; %计算截割的双曲线及其对应的坐标 subplot(2,2,2), %在第2图形窗口绘制双曲线
h1=plot3(xx(r0~=0),yy(r0~=0),zz(r0~=0),'+');
set(h1,'markersize',2),hold on,axis(v),grid on
29
数学实验与Matlab
30
subplot(2,2,1), %在第一图形窗口绘制马鞍面和平面 mesh(x,y,z1);grid,hold on;mesh(x,y,z2);
h2=plot3(xx(r0~=0),yy(r0~=0),zz(r0~=0),'.'); %画出二者的交线 set(h2,'markersize',6),hold on,axis(v),
for i=1:5 %以下程序和上面是类似的,通过循环绘制一系列的平面去截割马鞍面
a=70-i*30; %在这里改变截割平面
z2=a*ones(size(x)); r0=abs(z1-z2)<=1;
zz=r0.*z2;yy=r0.*y;xx=r0.*x;
30