数学实验第三版(主编:李继成 赵小艳)课后练习答案(二)(2)

实验二:MATLAB软件绘图

练习二

1. 绘制下列函数的图形.

1,(x,y)属于矩形区域[-2,2]* [-2,2];

这里需要说明一点,对于(0,0,0)此点,在原函数中是一个nan,所以只需添加上一个(0,0,0)即可。

ezmesh('x*y/(x^2+y^2)',[-2,2])
hold on
plot3(0,0,0)

数学实验第三版(主编:李继成 赵小艳)课后练习答案(二)(2)_第1张图片

(2)

ezmesh('(1+x+y)^2',[-10,10])

数学实验第三版(主编:李继成 赵小艳)课后练习答案(二)(2)_第2张图片

(3)

ezmesh('sqrt(x^2+y^2)',[-10,10])
xlabel('x轴')
ylabel('y轴')
zlabel('z轴')
axis auto

数学实验第三版(主编:李继成 赵小艳)课后练习答案(二)(2)_第3张图片

(4)绕z轴旋转得到的旋转曲面.

t=0:0.1:1;
r=t.^2+1;
figure(1)
[x,y,z]=cylinder(r,20);
mesh(x,y,z)
hold on
mesh(x,y,-z)
hidden off
xlabel('x轴')
ylabel('y轴')
zlabel('z轴') 

数学实验第三版(主编:李继成 赵小艳)课后练习答案(二)(2)_第4张图片

在这里我们特别地说明一下这个cylinder所产生的矩阵的特点,当我们令t为t=0:0.5:1时,我们看所产生的z矩阵是什么(在这里为了节省空间,我们取cylinder中的n为4)

0         0         0         0         0

0.5000    0.5000    0.5000    0.5000    0.5000

1.0000    1.0000    1.0000    1.0000    1.0000

这个时候我们再令t=0:0.5:2,所产生的z矩阵为:

         0         0         0         0         0

    0.2500    0.2500    0.2500    0.2500    0.2500

    0.5000    0.5000    0.5000    0.5000    0.5000

    0.7500    0.7500    0.7500    0.7500    0.7500

1.0000    1.0000    1.0000    1.0000    1.0000

我们发现此时的最大值并不为2,仍然是1,但是步长缩短了,变成了原来的一半了。

当我们令t=-1:0.5:1时,所产生的z矩阵仍和上面的一样,所以这时我们要是随便的取t的范围,所得到的并不是我们想要的图形。我们会发现不论t的范围为何值,所画的图形都是在(-1,1)范围内。所以如果你取的t范围在(0,1)之间,这时候的图形是不会画错的。

但是,如果我想要画更大范围内的图形该怎么办呢?

我认为应该 取t的范围在0到某个区间,末尾的值是k,在画图时要mesh(x,y,k*z)即可。(但不要忘了如果要看负区间的图形,我们要加上mesh(x,y,-k*z))

2 .分别用指令mesh,meshc ,meshz 绘制函数,在矩形区域[-8,8]×[-8,8]上的图形(可用help命令查找这些命令的用法).

x=-8:0.01:8;
[X,Y]=meshgrid(x,x);
Z=sin(sqrt(X.^2+Y.^2))./sqrt(X.^2+Y.^2);
subplot(2,2,1) mesh(X,Y,Z)
subplot(2,2,2)
meshc(X,Y,Z)
subplot(2,2,3)
meshz(X,Y,Z)
hidden off
xlabel('x轴')
ylabel('y轴')
zlabel('z轴')

数学实验第三版(主编:李继成 赵小艳)课后练习答案(二)(2)_第5张图片

区别:mesh绘制的就是一个普通的网格图,而meshc绘制的是带有等高线的网格图(在底部),meshz绘制的是带有帷幕的网格图。

3.绘制下列空间区域图形

(1)由围成;

x=-10:0.01:10;
y=x;
[xx,yy]=meshgrid(x,y);
zz=(xx.^2+yy.^2)/2;
m=find(zz<1);
zz(m)=nan;
surf(xx,yy,zz)
shading interp
hidden off
xlabel('x轴')
ylabel('y轴')
zlabel('z轴')

数学实验第三版(主编:李继成 赵小艳)课后练习答案(二)(2)_第6张图片

(2)由 围成;

t=0:0.01:2*pi;
x=1+cos(t);
y=sin(t);
z=sqrt(2.*x);
xx=[x;x];
yy=[y;y];
zz=[z;5.*ones(size(z))];
mesh(xx,yy,zz)
xlabel('x轴')
ylabel('y轴')
zlabel('z轴') 

数学实验第三版(主编:李继成 赵小艳)课后练习答案(二)(2)_第7张图片

我们来总结一下对于这种柱体的画法:首先,如果要是单纯的画一个柱体,我们直接用ezmesh或ezsurf搞定。但是如果要对该柱体进行裁剪修改,ezmesh就不太好处理了,我们需要进行创建数组或者矩阵并对其进行修改,这时我们要注意只需要确定两个截面上的点即可。以此题为例,我们只需要z=sqrt(2*x)这个截面和z=c(c为常数,且比较大)这两个面上的点即可。

(3)由围成;

t=0:0.05:2*pi;
x=cos(t);
y=0.5*sin(t);
z=1-x-y;
m=find(z<0);
z(m)=nan;
x(m)=nan;
y(m)=nan;
xx=[x;x];
yy=[y;y];
zz=[z;zeros(size(z))];
surfc(xx,yy,zz)
shading interp

数学实验第三版(主编:李继成 赵小艳)课后练习答案(二)(2)_第8张图片

(4)围成;

x=-5:0.01:5;
y=x;
[xx,yy]=meshgrid(x,y);
z1=sqrt(xx.^2+yy.^2);
zz=sqrt(abs(4-xx.^2-yy.^2));
zzz=zz;
xx(zzz

数学实验第三版(主编:李继成 赵小艳)课后练习答案(二)(2)_第9张图片

(5)由;

有点疑惑,这个区间到底是哪个?(恳求高人指点)

ezsurf('x+y')
hold on
ezmesh('0','y','z')
hold on
ezmesh('x','1','z')
hold on
ezmesh('0')
hold on 
ezmesh('x')

数学实验第三版(主编:李继成 赵小艳)课后练习答案(二)(2)_第10张图片

虽然这道题我们并没有完美的解决,但是这里我们要学会如何画一个简单的平面。

4. 在空间直角坐标系中画出球坐标系的三个基本坐标面:=常数,φ=常数,=常数.

首先,我们要对球坐标的三个基本平面有所了解。当ρ,θ或φ分别为常数时,可以表示如下特殊曲面:ρ= 常数,即以原点为心的球面;θ= 常数,即以原点为顶点、z轴为轴的圆锥面;φ= 常数,即过z轴的半平面。(一条直线将一个平面分为两部分,每一部分为一个半平面)

我们不妨以点(1,π/3,π/3)为例。

[x,y,z]=sphere(50);
z(z<0)=nan;
mesh(4*x,4*y,4*z)
hidden off
xx=[0;0;sqrt(3)];
yy=[0;0;3];
zz=[2;0;2];
hold on
fill3(xx,yy,zz,[0 0 0.8])
t=0:0.01:4;
r=sqrt(3).*t;
[x0,y0,z0]=cylinder(r,50);
hold on
mesh(x0,y0,4*z0)
axis equal

数学实验第三版(主编:李继成 赵小艳)课后练习答案(二)(2)_第11张图片

5. 在空间直角坐标系中画出两个球面相交的图形.

显然,两球相交的面为一个平面:z=1;

ezmesh('1')

为了看的更清楚,我把两个球也画了上去。数学实验第三版(主编:李继成 赵小艳)课后练习答案(二)(2)_第12张图片

6. 试用cylinder 命令绘制圆锥面、旋转椭球面和旋转抛物面。

t=0:0.01:2;
r=2*t;
[x,y,z]=cylinder(r);
subplot(2,2,1)
mesh(x,y,z)
R=sqrt(1-t.^2./4);
[xx,yy,zz]=cylinder(R);
subplot(2,2,2)
mesh(xx,yy,2*zz)
hold on
mesh(xx,yy,-2*zz)
axis equal
rr=sqrt(t);
[x0,y0,z0]=cylinder(rr);
subplot(2,2,3)
mesh(x0,y0,z0)

数学实验第三版(主编:李继成 赵小艳)课后练习答案(二)(2)_第13张图片

7. 画出下面的特殊函数的曲面,并观察极值点的个数

(1)Three-hump camel-back函数:,;

ezmesh('(2*x^2-1.05*x^4+x^6)/(6-x*y+y^2)',[-3,3])

axis auto

这个曲面的极值点个数为1。(不知道正确与否)数学实验第三版(主编:李继成 赵小艳)课后练习答案(二)(2)_第14张图片

(2)Rastrigin函数:,;

ezsurf('x^2+y^2-cos(18*x)-cos(18*y)',[-1,1])

shading flat

数学实验第三版(主编:李继成 赵小艳)课后练习答案(二)(2)_第15张图片

极值点个数为121个。(这个结果显然不是数出来的,由于过于复杂,我使用了AI问答,他告诉我是121个,doge。)

8. 在直角坐标系中绘制球被圆柱面截得的部分曲面.

r = 0:0.01:1; 
t = 0 : 0.01 : 2*pi;
[r, t] = meshgrid(r, t);
x = 1 + r .* cos(t);
y = r .* sin(t);
z=sqrt(4-x.^2-y.^2);
mesh(x,y,z)
hold on
mesh(x,y,-z)

数学实验第三版(主编:李继成 赵小艳)课后练习答案(二)(2)_第16张图片

总结:画部分截面该如何画呢?以此题为例,首先,需要织一张网,这张网是这个截面在xoy上的 投影,那么如何去形成这个圆形的网格呢?需要用r和θ形成,然后再去形成z的矩阵即可。

9. 在直角坐标系中绘制球面与圆柱面, 并用find命令将圆柱面中的球面部分或球面中的圆柱面部分“挖空”。

r = 0:0.01:2; 
t = 0 : 0.01 : 2*pi;
[r, t] = meshgrid(r, t);
x = r .* cos(t);
y = r .* sin(t);
m=find(x.^2+y.^2<1);
x(m)=nan;
y(m)=nan;
z=sqrt(abs(4-x.^2-y.^2));
m1=find(y.^2+z.^2<1);
y(m1)=nan;
z(m1)=nan;
m2=find(x.^2+z.^2<1);
x(m2)=nan; 
z(m2)=nan;
mesh(x,y,z)
hold on
mesh(x,y,-z)

数学实验第三版(主编:李继成 赵小艳)课后练习答案(二)(2)_第17张图片

推荐下一篇文章:数学实验第三版(主编:李继成 赵小艳)课后练习答案(三)(1)(2)icon-default.png?t=N7T8https://blog.csdn.net/2301_80199493/article/details/135999384?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22135999384%22%2C%22source%22%3A%222301_80199493%22%7D

本答案均由作者自己编写,由于时间原因,难免出现些许错误,还请大家多多指正。

你可能感兴趣的:(matlab)