2014-12-28 11 views
0

트리플 통합을 시도하고 있지만 이해가 안되는 오류 메시지가 나타납니다.트리플 통합을 계산할 때 오류가 발생했습니다.

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 [email protected](u2) u2; 
      maxF3 [email protected](u3) u3; 
     out2 = integral3(yi, 0, Inf , 0, maxF3 , 0, maxF2) 

보시다시피, u3u1[0, u2]입니다 u2[0, u3]입니다 [0, Inf]이다. 내가 실수로 u2u3의 범위를 변경하는 경우

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

의 의미는 무엇

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) 

(예 : out2 = integral3(yi, 0, Inf , 0, 1000 , 0, 1000))를 다음 작동 : 다음과 같이 내가 오류 메시지는 out2 것이다 실수 일 수 있습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

나는 그것을 얻었습니다. 대답은 out2 = integral3 (yi, 0, Inf, 0, @ (u3) u3, 0, @ (u3, u2) u2)입니다. 그러나 나는 이유를 모른다. 누구 생각 나니? 감사합니다

+2

'integral3'은 숫자 형 함수이므로 symbolic을 다룰 수 없습니다. 심볼릭 함수의 통합을 위해 심볼릭 도구 상자 ('doc symbolic/int')에서'int'를 시도하십시오. – Daniel

+0

@Daniel 답을 알려 주셔서 감사합니다. 나는 수치 적 통합을하고 상징적 인 계산을하고 있지 않다. 나는 out2의 최종 출력이 숫자라고 기대한다. – sunson29

+0

알았어. 대답은 out2 = integral3 (yi, 0, Inf, 0, @ (u3) u3, 0, @ (u3, u2) u2)입니다. 그러나 나는 이유를 모른다. 누구 생각 나니? 고맙습니다 – sunson29

답변

0

그것의 마지막 코드 라인에 대한 아닌 완전한 답변 :

enter image description here edit

: 난 당신이 구현하기 위해 원하는 것을 잘 모르겠지만,이 공식을 구현 한

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

아마도 이것이 원하는 것인지 확인할 수 있습니다.

+0

고마워요! 하지만 왜 '@ (u3, u2) u2'인지 아십니까? u2뿐만 아니라? 나는 u1이 u3와 u2의 함수 여야 만하는 이유를 의미합니다. 감사합니다. – sunson29

+0

내부 가장 완전한 것을 살펴보십시오. 상한선은'u2'이지만'u2'와'u3'의 모든 용어가 가능할 것입니다. 그래서 두 개의 입력이있는 함수 핸들이 필요합니다. – Daniel

+0

자, 대단히 감사합니다. 대니얼 – sunson29

관련 문제