|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
我碰到了一个二重奇异振荡积分,做了好久了也没有弄出来,希望各位高手能帮个忙。
由于公式不方便编辑,请各位看附件。
这是一个傅立叶逆变换的一个积分。
方法1:
syms q1 q2
alph1=0.5196; alph2=0.9; x=0; y=0.5; z=0;
n1=sqrt((1-alph1^2)*q1^2+q2^2);
n2=sqrt((1-alph2^2)*q1^2+q2^2);
B=(q1^2+q2^2+n2^2)^2-4*n1*n2*(q1^2+q2^2);
F=(n1*(q1^2+q2^2+n2^2)*exp(-n1*z)-2*n1*(q1^2+q2^2)*exp(-n2*z))*cos(q1*x)*cos(q2*y)/B;
f=dblquad(@(q1,q2)F,0,infinte,0,infinite)
方法2: 画出被积函数的图象,确定积分限。但是结果不对
alph1=0.5196; alph2=0.9; x=0; y=0.5; z=0;
q1=0:1:500; q2=0:1:500;
for i=1:501, for j=1:501
n1(i,j)=sqrt((1-alph1^2)*q1(i)^2+q2(j)^2);
n2(i,j)=sqrt((1-alph2^2)*q1(i)^2+q2(j)^2);
B(i,j)=(q1(i)^2+q2(j)^2+n2(i,j)^2)^2-4*n1(i,j)*n2(i,j)*(q1(i)^2+q2(j)^2);
F(i,j)=n1(i,j)*(q1(i)^2+q2(j)^2+n2(i,j)^2)-2*n1(i,j)*(q1(i)^2+q2(j)^2);
E(i,j)=cos(q1(i)*x)*cos(q2(j)*y);
Y(i,j)=F(i,j)*E(i,j)/B(i,j);
end; end
surf(q1,q2,Y); hold on; grid on
xlabel('q1'); ylabel('q2'); zlabel('y'); title('被积函数图像')
f=dblquad(@(q1,q2)F,0,500,0,500)
方法3:采用变步长积分
alph1=0.5196; alph2=0.9; x=0; y=0.5; z=0;
%给数组q1,q2分段赋值,
for i=1:1000 %步长为0.005
q1(i)=i*5e-3; %q1(1000)=5
q2(i)=i*5e-3; %q2(1000)=5
end
for i=1001:1500 %步长为0.05
q1(i)=q2(1000)+(i-1000)*5e-2; %q1(1500)=5+25=30
q2(i)=q2(1000)+(i-1000)*5e-2; %q2(1500)=5+25=30
end
for i=1501:2000 %步长为0.5
q1(i)=q2(1500)+(i-1500)*5e-1; %q1(2000)=30+250=280
q2(i)=q2(1500)+(i-1500)*5e-1; %q2(2000)=30+250=280
end
for i=2001:2100 %步长为5
q1(i)=q2(2000)+(i-2000)*5; %q2(2000)=280+500=780
q2(i)=q2(2000)+(i-2000)*5; %q2(2000)=280+500=780
end
for i=1:2100, for j=1:2100
n1(i,j)=sqrt((1-alph1^2)*q1(i)^2+q2(j)^2);
n2(i,j)=sqrt((1-alph2^2)*q1(i)^2+q2(j)^2);
B(i,j)=(q1(i)^2+q2(j)^2+n2(i,j)^2)^2-4*n1(i,j)*n2(i,j)*(q1(i)^2+q2(j)^2);
F(i,j)=n1(i,j)*(q1(i)^2+q2(j)^2+n2(i,j)^2)-2*n1(i,j)*(q1(i)^2+q2(j)^2);
E(i,j)=cos(q1(i)*x)*cos(q2(j)*y);
Y(i,j)=F(i,j)*E(i,j)/B(i,j);
end; end
surf(q1,q2,Y); hold on; grid on
xlabel('q1'); ylabel('q2'); zlabel('y'); title('被积函数图像')
f=dblquad(@(q1,q2)Y,1e-3,556,1e-3,556);
final=f/(pi^2*2e7)
发现结果数量极都不对。
想法:被积函数在点(0,0)处,分母是0的4次方,分子是0的3次方,应该是无穷大,类似于对1/x 积分的感觉,我觉得解析解应该是无穷,也就是对于我这个积分,如果子步越小,得出来的值应该越大。要想给出一个满意的数值解,我觉得不大可能。
希望各位高手给于解答。
[ 本帖最后由 ChaChing 于 2010-8-3 20:45 编辑 ] |
|