尝试计算三重积分时出错

时间:2014-12-28 18:04:15

标签: matlab integration

我正在尝试进行三重集成,但我收到了一条我不理解的错误消息。

clear all;
%%%==== just some parameters ========== 
a=4; 
la1=1/(pi*500^2); la2= la1*5;
p1=25; p2=p1/25;
sgma2=10^(-11);
index=1;
g=2./a;
syms r u1 u2  u3
powe= -2 
seta= 10^powe;
q=pi.*(la1.*p1.^(2./a)+la2.*p2.^(2./a));
 %%%==== parameters -- end ==========    

yi = @(u3,u2,u1) exp(-u3.*(1+2.*...
      (  pi./4 - atan(10.*(u3.^2./u1.^2 + u3.^2./u2.^2 + 1).^(1./2))./2    )./...
      (  (( (u3./u1).^(a./2) + (u3./u2).^(a./2) + 1    ).^(2./a)).*seta.^(-2./a)))).*...
                exp(-sgma2.*q.^(-a./2).* seta.*u3.^(a./2)./...
        ((( (u3./u1).^(a./2) + (u3./u2).^(a./2) + 1    ).^(2./a)).^(a./2))  );      

          maxF2 =@(u2) u2; 
          maxF3 =@(u3) u3;
         out2 = integral3(yi, 0, Inf , 0,  maxF3 , 0, maxF2) 

如您所见,u3[0, Inf]u2[0, u3]u1[0, u2]。我得到的错误消息如下:

Error using @(u2)u2
Too many input arguments.

Error in integral3>@(y)ZMAXXY(x(1)*ones(size(y)),y) (line 142)
            @(y)ZMAXXY(x(1)*ones(size(y)),y), ...

Error in integral2Calc>integral2t/tensor (line 191)
        top = YMAX(x);

Error in integral2Calc>integral2t (line 56)
[Qsub,esub] = tensor(thetaL,thetaR,phiB,phiT);

Error in integral2Calc (line 10)
    [q,errbnd] = integral2t(fun,xmin,xmax,ymin,ymax,optionstruct);

Error in integral3/innerintegral (line 138)
        Q1 = integral2Calc( ...

Error in integralCalc/iterateScalarValued (line 314)
                fx = FUN(t);

Error in integralCalc/vadapt (line 133)
            [q,errbnd] = iterateScalarValued(u,tinterval,pathlen);

Error in integralCalc (line 84)
        [q,errbnd] = vadapt(@AToInfInvTransform,interval);

Error in integral3 (line 122)
    Q = integralCalc(@innerintegral,xmin,xmax,integralOptions);

Error in ref7_equ11n3 (line 33)
       out2 = integral3(yi, 0, Inf , 0,  maxF3 , 0, maxF2)

的含义是什么
Error using @(u2)u2 Too many input arguments.

如果我将u2u3的范围更改为实数(例如out2 = integral3(yi, 0, Inf , 0, 1000 , 0, 1000)),则可行:out2将是实数。我做错了什么?

我想我明白了。答案是out2 = integral3(yi,0,Inf,0,@(u3)u3,0,@(u3,u2)u2)。但我不知道为什么。有人有点想法?感谢

1 个答案:

答案 0 :(得分:0)

关于最后一个代码行,这不是一个完整的答案:

out2 = integral3(yi, 0, Inf , 0, @(u3) u3 , 0, @(u3,u2) u2)

我不确定你想要实现什么,但是你已经实现了这个公式:

enter image description here edit

也许你可以检查这是否是你想要的。