MATLAB绘制空间曲线和曲面图像
之前考研的时候做到2010年数一试卷第19题时,一直无法想象 Σ \Sigma Σ的图像到底是什么样的。当时由于时间紧迫且不知道如何用MATLAB画图,因此就这么草草了事。现在正好学到了这方面的用法,而且时间也空,于是就准备尝试绘制一下这个图像。题目如下图所示:
若要得到 Σ \Sigma Σ的图像,就需要先得到曲线C以及椭球面S的图像。其中,三维曲线可以通过 f p l o t 3 ( ) fplot3() fplot3()绘制,三维曲面可以通过 f s u r f ( ) fsurf() fsurf()绘制。
1.绘制空间曲线C
根据上述解答,可以得到曲线C的曲线方程:
C
=
{
(
x
,
y
)
∣
2
z
−
y
=
0
&
&
x
2
+
3
4
y
2
=
1
}
C=\{ (x,y)|2z-y=0 \quad \&\& \quad x^2+\frac{3}{4}y^2=1 \}
C={(x,y)∣2z−y=0&&x2+43y2=1}
但在绘制之前需要做一下准备工作,即将曲线方程转换为参数方程:
C
:
{
2
z
−
y
=
0
x
2
+
3
4
y
2
=
1
⟹
{
x
(
t
)
=
s
i
n
(
t
)
y
(
t
)
=
c
o
s
(
t
)
z
(
t
)
=
1
3
c
o
s
(
t
)
C: \begin{cases} 2z-y=0 \\ x^2+\frac{3}{4}y^2=1 \end{cases} \Longrightarrow \begin{cases} x(t)=sin(t) \\ y(t)=cos(t) \\ z(t)=\frac{1}{\sqrt{3}}cos(t) \end{cases}
C:{2z−y=0x2+43y2=1⟹⎩⎪⎨⎪⎧x(t)=sin(t)y(t)=cos(t)z(t)=31cos(t)
% 绘制曲线C
xt = @(t) sin(t);
yt = @(t) 2/sqrt(3)*cos(t);
zt = @(t) 1/sqrt(3)*cos(t);
fplot3(xt,yt,zt,"LineWidth",2,"Color","red")
hold on
2.绘制椭球面S
根据题干可知,椭球面S的曲面方程为:
S
:
x
2
+
y
2
+
z
2
−
y
z
=
1
S:x^2+y^2+z^2-yz=1
S:x2+y2+z2−yz=1
同样在绘制之前需要先转换成参数方程。由于曲面方程存在3个自变量,故需要两个参数表示。
S
:
x
2
+
y
2
+
z
2
−
y
z
=
1
⟹
{
x
(
u
,
v
)
=
±
1
+
u
v
−
u
2
−
v
2
y
(
u
,
v
)
=
u
z
(
u
,
v
)
=
v
S: x^2+y^2+z^2-yz=1 \Longrightarrow \begin{cases} x(u,v)=\pm\sqrt{1+uv-u^2-v^2} \\ y(u,v)=u \\ z(u,v)=v \end{cases}
S:x2+y2+z2−yz=1⟹⎩⎪⎨⎪⎧x(u,v)=±1+uv−u2−v2y(u,v)=uz(u,v)=v
% 绘制椭球面S
% 由于不知道如何表示±,故只绘制了一半的椭球面
funx = @(u,v) sqrt(1+u*v-u.^2-v.^2);
funy = @(u,v) u;
funz = @(u,v) v;
fsurf(funx,funy,funz,[-2,2,-2,2])