用MATLAB这道题怎么做啊 20
1个回答
展开全部
直观理解,在某坐标面投影,应该就是把两个方程消元,去掉垂直于该坐标面的那个轴所对应的变量,换言之,就是两个曲面交线在各坐标面的投影。但这个理解不完全正确,例如对于Oxz 平面投影就不适用。
我针对这个特例编写了一段代码,把三个投影都直接画在三维图中,但总感觉方法不是太好。题主最好能提供一些背景信息,例如这个练习是哪本书或哪个网上教程的配套题,也许能够有更好的做法。
参考代码:
clf
hold all
h1 = ezsurf('sqrt(x^2+y^2)',[0 2 -1 1]);
h2 = ezsurf('sqrt(2*x+0*y)',[0 2 -1 1]);
a = 0.45;
set(h1, 'FaceColor', 'r', 'EdgeColor', 'none', 'FaceAlpha', a)
set(h2, 'FaceColor', 'g', 'EdgeColor', 'none', 'FaceAlpha', a)
view(-30, 20)
% Oxy 平面投影,即消去z,得关于x-y的方程
h = ezplot('x^2+y^2=2*x');
set(h,'linewidth',2)
title '', zlabel z
% 影,即消去y,得关于x-z的方程,但只是交线,并非该区域
% 从三维图观察,区域的下边沿应为x=z的直线,但没想好怎样证明
z = 0:.05:2;
x = z.^2 / 2;
y = 0*x + 1;
plot3(x([1:end 1]),y([1:end 1]),z([1:end 1]),'linewidth',2)
% Oyz 平面投影,即消去x,得关于y-z的方程
z = 0:.05:2;
y1=sqrt(z.^2-z.^4/4);
y2=-sqrt(z.^2-z.^4/4);
z=[z z(end:-1:1)];
y=[y1 y2(end:-1:1)];
x=y*0+2;
plot3(x,y,z,'linewidth',2)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询