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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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);



参考技术A

从这个方程,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');

本回答被提问者和网友采纳
参考技术B

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)

参考技术C ??? val=x.^3+62.5y.*x.-62.5z.;
|这是说明表达式错误,修改为
val=x.^3+62.5*y.*x-62.5*z;
即可
参考技术D [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

以上是关于MATLAB如何绘制三维三次隐函数图像?的主要内容,如果未能解决你的问题,请参考以下文章

高分请教高手一个绘制隐函数三维图的问题(MATLAB)

Matlab绘制Griewank函数三维图像

MATLAB学习——三维曲面图像绘制

MATLAB学习——三维曲面图像绘制

matlab怎么用函数填充三维曲线

MATLAB | 如何绘制三维曲线曲面多边形投影(三视图)?