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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高分请教高手一个绘制隐函数三维图的问题(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 绘图函数总结

MATLAB 绘图函数总结

MATLAB | 一文解决各类曲面交线绘制,包含三维隐函数曲面交线

MATLAB | 一文解决各类曲面交线绘制,包含三维隐函数曲面交线

MATLAB 绘图函数总结