0
나는 다음과 같은 수치 적분 할 matlab에 사용하고 그러나Matlab의 수치 적 통합 : 행렬 차원이 일치해야합니까?
LB=0.3;
p_old=0.26;
C_TT_old=0.03;
r=0.63;
m=5.02;
[email protected](d)(((r*m).^(r+1)*(r+1))/((d+r*m).^(r+2)))*(m.^2*C_TT_old*(1+(2*d*(1+r))/(m))-p_old*d+r*m*(log(d/(r*m)+1))*(p_old/r+p_old-2*C_TT_old*m*(1+r)))/((d+m)*(d+m-1)/2);
C_old=integral(integrand,LB,Inf);
을 matlab에 나를
Error using/
Matrix dimensions must agree.
Error in
@(d)(((r*m).^(r+1)*(r+1))/((d+r*m).^(r+2)))*(m.^2*C_TT_old*(1+(2*d*(1+r))/(m))-p_old*d+r*m*(log(d/(r*m)+1))*(p_old/r+p_old-2*C_TT_old*m*(1+r)))/((d+m)*(d+m-1)/2)
Error in integralCalc/iterateScalarValued (line 314)
fx = FUN(t);
Error in integralCalc/vadapt (line 132)
[q,errbnd] =
iterateScalarValued(u,tinterval,pathlen);
Error in integralCalc (line 83)
[q,errbnd] = vadapt(@AToInfInvTransform,interval);
Error in integral (line 88)
Q = integralCalc(fun,a,b,opstruct);
당신이 날 코드를 해결하는 데 도움이 수 다음과 같은 오류 준다? 모든 것이 내 코드에서 스칼라이므로 오류의 원인을 이해할 수 없습니다.
당신은 아마'스칼라 부문을 사용할 필요가/'대신 매트릭스 부문의'/'.. 곱셈과 동일합니다. 내가 귀하의 코드에서 그것을 바꿀 때 0.0539 –
참고 : [전체 문서] (https://www.mathworks.com/help/matlab/ref/integral.html#inputarg_fun) :'스칼라 가치 문제 , y = fun (x) 함수는 벡터 인수 x를 받아 벡터 결과 y를 반환해야합니다. 이것은 일반적으로 fun가 행렬 연산자 대신 배열 연산자를 사용해야 함을 의미합니다 .' – excaza