Hi,
I am trying to do double integration. But I am getting following error.
inte = @(y,x) (cos(x).^2)/(1 + alpha/(cos(x)*sqrt(1 - 1/y.^2))).^2*(1/y.^3 - 1/y.^5);
integral2(inte,1,Inf,0,pi/2)
Error: Error using /
Matrix dimensions must agree

 채택된 답변

Chunru
Chunru 2021년 12월 1일

1 개 추천

Keep in mind that the function should be defined for vector arguments x and y. Therefore some * and / should be changed to .* and ./.
alpha = 1;
inte = @(y,x) (cos(x).^2)./(1 + alpha./(cos(x).*sqrt(1 - 1./y.^2))).^2 .*(1./y.^3 - 1./y.^5);
integral2(inte,1,Inf,0,pi/2)
ans = 0.0319

추가 답변 (1개)

Mike Croucher
Mike Croucher 2021년 12월 1일

1 개 추천

You need to vectorise your equation
alpha = 1.0;
inte = @(y,x) (cos(x).^2)./(1 + alpha./(cos(x).*sqrt(1 - 1./y.^2))).^2.*(1./y.^3 - 1./y.^5);
integral2(inte,1,Inf,0,pi/2)
ans =
0.0319
You didn't define alpha so I took a guess.
Hope this helps,
Mike

카테고리

도움말 센터File Exchange에서 Mathematics에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by