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

来源:百度知道 编辑:UC知道 时间:2024/05/15 10:08:33
例如:2*x^2*(y+z)^2+(y^2-z^2)^2=0
下面是曾经在网站上看到这样的例子,可行,但换成上面的函数就不行了,实在不知是什么原因,有更好的方法请多多指教,先谢谢了!
const=0;
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;
p=patch(isosurface(x,y,z,f,0));
set(p, 'FaceColor', 'red', 'EdgeColor', 'none');
daspect([1 1 1])
view(3)
camlight; lighting phong

在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

研究你的函数,两个平方和是0,只有x=0,y=-+z,画出来应该是两条直线,你把图放大了试试