如何用MATLAB作三维隐函数 如f(x,y,z)=0

2025-03-10 01:03:30
推荐回答(3个)
回答1:

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

v=atan(2*z)+(x.^2+y.^2)./(z.^2+1)+atan(y./(x+eps))+z;

p=patch(isosurface(x,y,z,v,0),'facecolor','r','edgecolor','none','facelighting','gouraud');isonormals(x,y,z,v,p);axis tight equal;view(3);camlight;grid on;

向左转|向右转

或者[x,y,z]=meshgrid(-5:5,-5:5,-5:5);v=atan(2*z)+(x.^2+y.^2)./(z.^2+1)+atan(y./(x+eps))+z;[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;

回答2:

在0~10范围内,没有交点,f=1000的话,就有图形了。

clc;clear
const=10000;
x=1:0.1:10;y=1:0.1:10;z=0:0.1:10;
[x,y,z]=meshgrid(x,y,z);
%f=(x+y+z).*(x.*y+x.*z+y.*z)-10*x.*y.*z-const;
f=2*x.^2.*(y+z).^2+(y.^2-z.^2).^2-const;
p=patch(isosurface(x,y,z,f,0));
set(p, 'FaceColor', 'red', 'EdgeColor', 'none');
daspect([1 1 1])
view(3)
camlight; lighting phong

回答3:

工作经验兆燃ww