数学实验与Matlab
31
subplot(2,2,3),
mesh(x,y,z1);grid,hold on;mesh(x,y,z2);hidden off
h2=plot3(xx(r0~=0),yy(r0~=0),zz(r0~=0),'.'); axis(v),grid subplot(2,2,4),
h4=plot3(xx(r0~=0),yy(r0~=0),zz(r0~=0),'o');
set(h4,'markersize',2),hold on,axis(v),grid on end 】
2.2.3 微分方程的斜率场
31
数学实验与Matlab
32
◆ 绘制微分方程 dy?xy, y(0)?0.4的斜dt率场,并将解曲线画在图中,观察斜率场和解曲线的关系。
zxy2_5.m ( 绘制一阶微分方程的斜率场和解曲线)
【 clf,clear %清除当前所有图形窗口的图像,清除当前工作空间的内存变量。
a=0;b=4;c=0;d=4;n=15;
[X,Y]=meshgrid(linspace(a,b,n),linspace(c,d,n)); %生成区域中的网格。
z=X.*Y; %计算斜率函数。
Fx=cos(atan(X.*Y));Fy=sqrt(1-Fx.^2); %计算切线斜率矢量。
32
数学实验与Matlab
33
quiver(X,Y,Fx,Fy,0.5),hold on,axis([a,b,c,d])
%在每一网格点画出相应的斜率矢量,0.5是控制矢量大小的控制参数,可以调整。
[x,y]=ode45('zxy2_5f',[0,4],0.4); %求解微分方程。
%zxy2_5f.m是方程相应函数f(x,y)的程序,单独编制;[x0,xs]=[0,4]为求解区间;
%y0=0.4为初始值;输出变量x,y分别为解轨线自变量和因变量数组。
plot(x,y,'r.-') %画解轨线 】 zxy2_5f.m (微分方程的函数子程序)
【 function dy=zxy2_5f(x,y)
33
数学实验与Matlab
34
dy=x.*y; 】
2.2.4颜色控制和渲染及特殊绘图指令 1.地球表面的气温分布(sphere指令) ◆
【 [a,b,c]=sphere(40);t=max(max(abs(c)))-abs(c);surf(a,b,c,t);
axis('equal'),colormap('hot'), shading flat,colorbar 】
2.旋转曲面的生成:柱面指令cylinder和光照控制指令surfl ◆
【 x=0:0.1:10;z=x;y=1./(x.^3-
34
数学实验与Matlab
35
2.*x+4);
[u,v,w]=cylinder(y);surfl(u,v,w,[45,45]);
shading interp 】 3.若干特殊图形
◆ 运行下面程序,了解各指令的用法和效果。
【 x=[1:10]; y=[5 6 3 4 8 1 10 3 5 6]; subplot(2,3,1),bar(x,y),axis([1 10 1 11])
subplot(2,3,2),hist(y,x),axis([1 10 1 4])
subplot(2,3,3),stem(x,y,'k'),axis([1 10 1 11])
subplot(2,3,4),stairs(x,y,'k'), axis([1
35