MATLAB如何绘制三维三次隐函数图像?

我想绘制这样一个图像:
x^3+62.5xy-62.5z=0
求大神帮帮我
[x,y,z]=meshgrid(linspace(-10,10));
val=x.^3+62.5y.*x.-62.5z.;
isosurface(x,y,z,val,1)
axis equal

这是我写的程序,然后MATLAB报错:
??? val=x.^3+62.5y.*x.-62.5z.;
|
Error: Unexpected MATLAB expression.
是哪出了问题,如何修改?谢谢

在matlab中可以利用三维数据等值面绘制函数isosurface来绘制三维隐函数的图像

三维隐函数可以描述,为方程 f(x,y,z)=0;

如果我们定义函数v= f(x,y,z)

在一定的下x,y,z的定义域内计算出一个三维区间中v的值

然后方程f(x,y,z)=0的图像,其实就是v=0时的等值面,是一个三维曲面

在matlab中可以用isosurface函数实现


例子,绘制隐函数 x^3+y^3+z^3=1的函数图像

range=linspace(-1,1,21);
[x,y,z]=meshgrid(range,range,range);%生成一定定义域内x,y,z矩阵
v=x.^3+y.^3+z.^3-1;%计算函数数值,三位分布
p = patch(isosurface(x,y,z,v,0));%用isosurface画等值面
%等值面是三角网格表示的,用patch函数之后,更容易修改曲面颜色等
p.FaceColor = 'none';
p.EdgeColor = 'red';
daspect([1,1,1])
view(3); axis tight
grid on;
xlabel('x'),ylabel('y'),zlabel('z');
view(45,30);



温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-09-12

从这个方程,x^3+62.5xy-62.5z=0,可以直接改写成如下形式

z=(x^3+62.5xy)/62.5

程序可按下面作修改,就可以得到其图形

>> x=0:0.1:20; y=0:0.1:20;

>> xi=0:0.1:20; yi=0:0.1:20;

>> [X,Y] = meshgrid(xi,yi);

>> Z=(X.^3+62.5*X.*Y)/62.5;

>> mesh(X,Y,Z),xlabel('x');ylabel('y');zlabel('z');

本回答被提问者和网友采纳
第2个回答  推荐于2018-04-23

clear

x=-10:0.1:10;y=x;

[X,Y]=meshgrid(x,y);

z=(X.^3+62.5.*Y.*X)./62.5;

surf(X,Y,z)

本回答被网友采纳
第3个回答  2016-09-12
[x,y,z]=meshgrid(linspace(-10,10));
val=x.^3+62.5*y.*x-62.5*z;
isosurface(x,y,z,val,0)
axis equal

第4个回答  2018-10-12
??? val=x.^3+62.5y.*x.-62.5z.;
|这是说明表达式错误,修改为
val=x.^3+62.5*y.*x-62.5*z;
即可
相似回答