用matlab画球谐函数 dz2 图像出错function y;figure;p=-pi:pi/100:pi;t=0:2*pi/150:pi;[P,T]=meshgrid(p,t);theta=pi/2-P;phi=T;R=Ypz(theta,phi);[X,Y,Z]=sph2cart(T,P,R);mesh(X,Y,Z);axis equal;xlabel('X');ylabel('Y');zlabel('Z

来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/23 05:58:40
用matlab画球谐函数dz2图像出错functiony;figure;p=-pi:pi/100:pi;t=0:2*pi/150:pi;[P,T]=meshgrid(p,t);theta=pi/2-P

用matlab画球谐函数 dz2 图像出错function y;figure;p=-pi:pi/100:pi;t=0:2*pi/150:pi;[P,T]=meshgrid(p,t);theta=pi/2-P;phi=T;R=Ypz(theta,phi);[X,Y,Z]=sph2cart(T,P,R);mesh(X,Y,Z);axis equal;xlabel('X');ylabel('Y');zlabel('Z
用matlab画球谐函数 dz2 图像出错
function y;
figure;
p=-pi:pi/100:pi;t=0:2*pi/150:pi;[P,T]=meshgrid(p,t);
theta=pi/2-P;phi=T;
R=Ypz(theta,phi);[X,Y,Z]=sph2cart(T,P,R);mesh(X,Y,Z);
axis equal;
xlabel('X');ylabel('Y');zlabel('Z');title('Ydz^2')
function y=Ypz(theta,phi);
y=sqrt(5/16/pi)*abs(3.*cos (theta).*cos (theta).*cos(phi));


因为我自己不会用matlab所以是参考《基于MATLAB》这篇文章的,链接如下:
但是在画dz^2的时候出现了问题,画出来的图像是这样的:

但实际上应该是这样
中间的那个



用matlab画球谐函数 dz2 图像出错function y;figure;p=-pi:pi/100:pi;t=0:2*pi/150:pi;[P,T]=meshgrid(p,t);theta=pi/2-P;phi=T;R=Ypz(theta,phi);[X,Y,Z]=sph2cart(T,P,R);mesh(X,Y,Z);axis equal;xlabel('X');ylabel('Y');zlabel('Z
原因分析
你把公式输错了,得到的图当然有问题.
把最后的一句
y=sqrt(5/16/pi)*abs(3.*cos (theta).*cos (theta).*cos(phi));
改成
y=sqrt(5/16/pi)*abs(3.*cos(theta).*cos(theta)-1);
即可(不知你原来的公式从哪里来的?)

 
 
进一步改进
我给稍微调整了一下视角,并加了光照效果,可能更接近原图:
function y
figure;
p=-pi:pi/100:pi;t=0:2*pi/150:pi;[P,T]=meshgrid(p,t);
theta=pi/2-P;phi=T;
R=Ypz(theta,phi);[X,Y,Z]=sph2cart(T,P,R);
surf(X,Y,Z,'facecolor',[0 .7 1],'edgecolor','none');
light
lighting phong
material shiny
axis equal;
view(60,15)
xlabel('X');ylabel('Y');zlabel('Z');title('Y_{dz^2}')
function y=Ypz(theta,phi);
y=sqrt(5/16/pi)*abs(3.*cos(theta).*cos(theta)-1);

用matlab画球谐函数 dz2 图像出错function y;figure;p=-pi:pi/100:pi;t=0:2*pi/150:pi;[P,T]=meshgrid(p,t);theta=pi/2-P;phi=T;R=Ypz(theta,phi);[X,Y,Z]=sph2cart(T,P,R);mesh(X,Y,Z);axis equal;xlabel('X');ylabel('Y');zlabel('Z 用matlab求函数最小值,并绘制出随式子中参数变化不同最小值的图像 matlab绘制积分函数图像 matlab 图像 最大值请问,用什么函数在针状图中标记出最大最小值? 在最大值处标记出该值. 用matlab画出该函数的函数图像求大神用matlab画出该函数的图像 请问用matlab如何画出一下函数的图像? 求用matlab画函数图像m已知 怎么用matlab画出下面分段函数的图像 请教:怎么用matlab画函数项级数的图像? 用Matlab绘制此函数图像,并求y范围 matlab怎么由公式出图像 matlab二元函数z=x*y的图像问题二元函数图像为一个曲面,带几个点来说z=xy这个函数.也是一个曲面但我用matlab 话出他的图像是一个平面.看不懂啊. x=-30:30; %x的范围为[-3,3] y=-30:30; %y的范围为[-3 如何用matlab编写阶跃函数、斜坡函数和冲击函数?要求用图像显示结果! 如何用MATLAB画分段函数图像? 如何用matlab画二次函数图像 matlab中如何显示出已知二元函数的图像?我是新手哈~已经做出某个二元函数的最小值,就是不知道用什么指令可以绘制出这个函数的图像,并且把那个最小值在图像上标出来?望高手指教,急用啊! 求画一个函数图像函数如图,用matlab,mathematica逗号 matlab中,我用函数rgb2gray,为什么不能将pgm图像转换为灰度图像?是图像用错还是MATLAB装的不完整?