查看单个帖子
旧 2009-12-30, 09:14   #1
whan1367510
初级会员
 
注册日期: 2009-12-29
年龄: 38
帖子: 3
声望力: 0
whan1367510 正向着好的方向发展
默认 如何用matlab数值积分来实现下面的复数积分

本人初学,这个问题一直解决不了!本人写的代码如下:
clc;
clf;
clear all;
m=linspace(0,pi/2,30); %仰角
n=linspace(0,2*pi,30);%方位角
[m,n]=meshgrid(m,n);
temp=0;
dx=2/100; %对半径的微分
dy=2*pi/100;%对角度的微分
for h=1:100
for g=1:100
temp=temp+exp((h-0.5)*dx*sin(m).*cos(n-(g-0.5)*dy)*j)*(h-0.5)*dx*dx*dy;
end
end
r=abs(temp);
% u=10*sin(m).*cos(n);
% v=10*sin(m).*sin(n);
%[x,y,z]=sph2cart(n,m,r);
x=r.*sin(m).*cos(n);
y=r.*sin(m).*sin(n);
z=r.*cos(m);
mesh(x,y,r);

这是一个均匀幅度和相位的圆口径的辐射方向图,可是我算出的结果与书中的不一样,可是发现不了我的程序有问题,可能是我的数值积分的算法有问题,希望各位帮我看看!谢谢啊 !
whan1367510 当前离线   回复时引用此帖