求助!!!怎样用Matlab画二次曲面:(x^2+y^2+z^2)^2=a^2(x^2+y^2-z^2)(a>0) ??感谢你的回答!!!

如题所述

[x,y,z]=meshgrid(-25:25,-25:25,-25:25);

for a=1:10;%a取1到10的整数
pause(0.5)
v=((x.^2+y.^2+z.^2).^2-a.^2.*(x.^2+y.^2-z.^2));
[d,m]=isosurface(x,y,z,v,0);
patch('faces',d,'vertices',m,'facevertexcData',jet(length(m)),'facecolor','k','edgecolor','flat');
view(3);axis equal;grid on;
% colorbar
title('(x^2+y^2+z^2)^2=a^2(x^2+y^2-z^2)');
xlabel('X'),ylabel('Y'),zlabel('Z');
hold on
end
hold off

这个程序是画图是动态的,你也可以去掉循环,给定a的值画图。下面是a=10;的图像。不过不是双曲面,因为右边没有平方。

 

如果有平方则,a=1到10的图如下:是双曲面

温馨提示:答案为网友推荐,仅供参考
相似回答