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);
从这个方程,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');
本回答被提问者和网友采纳 参考技术Bclear
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如何绘制三维三次隐函数图像?的主要内容,如果未能解决你的问题,请参考以下文章