这是三元函数,须在四维空间中表示其图形,于是其图形是无法图示的。
用颜色描述f=x+y+z是可行的,也简单:
mesh(x,y,z,f)
或
surf(x,y,z,f)
在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函数之后,更容易修改曲面颜色等
pFaceColor = 'none';
pEdgeColor = 'red';
daspect([1,1,1])
view(3); axis tight
grid on;
xlabel('x'),ylabel('y'),zlabel('z');
view(45,30);
试一下这个:
syms x y z
[x,y,z] = meshgrid(-2:02:2, -2:025:2, -2:016:2);
v=((50(1+00001x)^05)/(00484pix^2))exp(-(y^2)(1+00001x))/(00968x^2)(exp(-(z-80)^2/(00968x^2))+exp(-(z+80)^2/(00968x^2)));
slice(x,y,z,v,[-12 08 2],2,[-2 -02])
得到
范围自己改
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)