matlab用3个for循环画三变量函数图,如f=x+y+z,xyz是三个坐标轴,f是因变量,在xyz空间中用颜色表示大小

matlab用3个for循环画三变量函数图,如f=x+y+z,xyz是三个坐标轴,f是因变量,在xyz空间中用颜色表示大小,第1张

这是三元函数,须在四维空间中表示其图形,于是其图形是无法图示的。

用颜色描述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])

得到

 

范围自己改

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/12177722.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存