想用Matlab画出下面图片中函数的三维图像,求大神帮忙编写程序!!!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了想用Matlab画出下面图片中函数的三维图像,求大神帮忙编写程序!!!相关的知识,希望对你有一定的参考价值。

参考技术A

题主的问题可以这样来考虑:

首先,用solve函数解出p2,p3(或p0,p1)中任意两个变量

其二,将p2,p3(或p0,p1)的解,代入P表达式中,得到含有两个变量的表达式,即

P(p0,p1)

其三,确定p0,p1的取值范围,并对其二维数据网格化(meshgrid)

其四,计算P值,如 P(p0,p1)=-(4*p0^4*p1^2*(p0^2 + p1^2 - 1))/(p0^2 + p1^2)

其五,用surf函数绘出其三维曲面图,即

surf(p0,p1,P)

追问

可以把程序贴出来吗,为什么我画出来的不是这样的

追答

这里传不了(不能显示地址)

追问

那你的meshgrid是怎么取得值呀

追答

p0=0:0.1:1
p1=0:0.1:1
[p0,p1]=meshgrid(p0,p1)

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

f=(x+1/2)/sqrt((x+1/2)^2+y^2+z^2)-(x-1/2)/sqrt((x+1/2)^2+y^2+z^2)-C
C值为常数
要求画出函数的三维图
c0=[1.0019,1.0038,1.0055,1.0070,1.0083,1.0092,1.0098,1.0100,1.0099,1.0093,1.0084,1.0071,1.0056,1.0038,1.0019];
f=(x+1/2)/sqrt((x+1/2)^2+y^2+z^2)-(x-1/2)/sqrt((x-1/2)^2+y^2+z^2)-c;
结果应是线形图,画的是物理中的电场线

参考技术A [x,y]=meshgrid(-7:0.1:7);% 这是将xy定义成二维数组
%%%%这部分可以限定你的图的范围,相信控制循环你应该有些思路
%for i=1:200
for j=1:200(这只是范围,相当于抽样,取的越多图会越细致)
f=找一个中间变量
if f>= & f<=
z(i,j)=
else
z(i,j)=;
end;
%end;
end;
%%我的想法也是想办法找中间变量求出z,然后就可以定义三维数组了
mesh(x,y,z);
surf(x,y,z)%%这是三维表面图绘制,画线形图你可以查查具体用什么函数
axis([-7 7 -7 7 -2 2]);%这是定义轴的范围,可自己更改
%%%%%你的c是一个一维向量,如果你将前面的问题都解决了的话,可能还要调整一下c的维数
再有什么问题,咱们再探讨,加油!
参考技术B [X Y Z]=meshgrid(-1:.025:1,-1:0.025:1,-1:0.025:1);
f=(X+1/2)./sqrt((X+1/2).^2+Y.^2+Z.^2)-(X-1/2)./sqrt((X-1/2).^2+Y.^2+Z.^2);
xslice=[-0.5,0,0.5];
yslice=0;
zslice=0;
h=slice(X,Y,Z,f,xslice,yslice,zslice);
colorbar
set(h,'FaceColor','interp', 'EdgeColor','none')
这是一个三维空间标量场,我怎么觉得是偶极子向量场x方向分量呢?我以前还编过偶极子三维矢量场的图像,还扔到我校内里显摆了两天,后来发现很幼稚。要是把它画成空间矢量场,表达式会简单得多。就用quiver3()。
参考技术C 调用maple也不好使,不知为什么。

在你的电脑上试试。
maple('ff:= (x+1/2)/sqrt((x+1/2)^2+y^2+z^2)-(x-1/2)/sqrt((x-1/2)^2+y^2+z^2)-1.001')
maple('with(plots)');
maple('implicitplot3d(ff,-1..1,-1..1,-1..1)')

【补充】:
c=[1.0019,1.0038,1.0055,1.0070,1.0083,1.0092,1.0098,1.0100,1.0099,1.0093,1.0084,1.0071,1.0056,1.0038,1.0019]';
syms x y z
f=(x+1/2)/sqrt((x+1/2)^2+y^2+z^2)-(x-1/2)/sqrt((x-1/2)^2+y^2+z^2)-c
z=solve(f(1),'z')

求出z,用ezmesh画图,关键是z太复杂。本回答被提问者采纳
参考技术D 我不是很明白,为什么明明有三个变量却说是画三维图呢?你的意思是不是f是一个常数,或者就是零呢?
从你的表达式大概可以猜出表达式是偶极子的电场分布,所以不知道你是不是要画电场线或者什么的呢?
第5个回答  2008-05-21 四维用slice试一下...不过要看你所说的电场分布估计就不理想了...

以上是关于想用Matlab画出下面图片中函数的三维图像,求大神帮忙编写程序!!!的主要内容,如果未能解决你的问题,请参考以下文章

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

MATLAB中用mesh函数画出三维图后,怎么添加一个Z=0的平面?

求解一道matlab curve fitting的题目,求大神速解。

写一段代码画出一个图像的灰度直方图(不能用MATLAB自带的imhist函数),并作直方图均衡化处理。

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

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