重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

python三维隐函数,三维隐函数绘图

y=x,z=0的平面怎么画

y=x,z=0的平面怎么画

创新互联建站从2013年开始,是专业互联网技术服务公司,拥有项目网站制作、网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元葫芦岛做网站,已为上家服务,为葫芦岛各地企业和个人服务,联系电话:028-86922220

方法一、用ezmesh 函数直接画出该平面,命令如下:

ezmesh('0')

%ezmesh是用来画三维隐函数的图像,ezmesh('0')命令意思即是画出z=0的平面。如果要画z=x+y-5的三维图像,输入命令ezmesh('x+y-5'),然后回车即可。

方法二、用meshgrid和ones这两个函数画该平面,命令如下:

X=-1:.1:1;

[X Y]=meshgrid(X);

Z=ones(size(X))-1;

mesh(X,Y,Z)

%meshgrid函数是打网格用的,用以产生网格坐标,ones函数则用来生成各行各列元素都为1的矩阵。

python 怎么样隐式函数调用

最常用的是在类定义的方法,给一个property的装饰器,可以安装调用属性的方式调用

MATLAB如何绘制三维隐函数图形

像Maple、Mathematica中就有类似implicitplot3()的三维隐函数绘图函数

自定义三维隐函数绘制函数

全世界人都知道Matlab那几千个库函数中,可恨的是,却偏偏不提供个三维隐函数的图像绘制的函数,真是郁闷死了

好,下面我们看一个三维隐函数绘制的应用,它灵活的应用了Matlab的isosurface()(等值面函数),绘制出来的图效果还比较好

function implot3(fun,rangxyz,ngrid,varargin)

%三维隐函数绘图

%

%输入参数说明

-fun 函数句柄,可以是匿名、inline和M函数

% -rangexy=[xmin xmax ymin ymax,zmin,zmax] 绘图范围

% -ngrid 绘图时计算的点数

%

%Example

%fun=@(x,y,z)(x+y+z).*(x.*y+x.*z+y.*z)-10*x.*y.*z;

%rangxyz=[1 10 1 10 1 10];ngrid=50;

%implot3(fun,rangxyz,ngrid)

%

%rewrite by dynamic

%all rights reserved by

x=linspace(rangexy(1),rangexy(2),ngrid);

y=linspace(rangexy(3),rangexy(4),ngrid);

z=linspace(rangexy(5),rangexy(6),ngrid);

[xx,yy,zz]=meshgrid(x,y,z);

fvector=vectorize(fun);% 将目标函数矢量化

f=f(fvector,xx,yy,zz,varargin{:});

p=patch(isosurface(xx,yy,zz,f,0),varargin{:});

set(p, 'FaceColor', 'red', 'EdgeColor', 'none');

daspect([1 1 1])

view(3)

camlight;

lighting phong

python 能画隐函数的曲面吗

可以的。这也算多态的一种,比如: def duck(A):return A.duck() class pop():def duck():return "what does the duck say~" class regular():def duck():return "Quack!" duck(pop)'what does the duck s

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

在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);

isosurface函数求助

对于一般的三维隐函数绘图,可以使用isosurface函数:

n = 30;

x = linspace(0, 100, n);

y = linspace(0, 2000, n);

z = linspace(0, 50, n);

[z, y, x] = meshgrid(x, y, z); 

v = 4.12*(z-50.48).^3 + 18.08*(y-2160).*(z-50.48) - 127.28*(x-21.56);

[faces,verts,colors] = isosurface(x,y,z,v,0,z); 

patch('Vertices', verts, 'Faces', faces, ... 

'FaceVertexCData', colors, ... 

'FaceColor','interp', ... 

'edgecolor', 'interp');

xlabel z, ylabel y, zlabel x

view(-60,10)

需要说明的是,按图中要求,x-y-z三轴的数据应分别对应z-y-x,换言之,x和z互换,所以,代码中的meshgrid函数以及下面的表达式都要进行交换。

对于本题而言,函数可以写成z=f(x,y)显函数的形式,所以也可以直接用surf绘图:

x = linspace(0, 100, n);

y = linspace(0, 2000, n);

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

z = (4.12*(x-50.48).^3 + 18.08*(y-2160).*(x-50.48)) / 127.28 + 21.56;

surf(z, y, x, 'edgecolor', 'none')

xlabel z, ylabel y, zlabel x

xlim([0 50])

view(-75,6)

这里同样要注意调用surf函数时变量的互换。

如果不限制z的范围,画出来的曲面如下所示:


名称栏目:python三维隐函数,三维隐函数绘图
文章源于:http://cqcxhl.com/article/dsgipog.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP