Double integral using matlab multiplication

조회 수: 2 (최근 30일)
Saqeeb Adnan
Saqeeb Adnan 2022년 4월 12일
편집: Torsten 2022년 4월 13일
Hello, I want to calculate the double integral of an expression (not given here) using matrix multiplication. Using integral2 doesnot work for my case because of singularity issues I will have in that problem. So, first I'm trying out some basic double integral using matrix multiplication but those are not giving me the accurate answer I get calculating analytically.
Integration of sin(th).cos(phi) d(th)d(phi) in the limit of th=0 to pi and phi=0 to 2pi
th=0:pi/180:pi; %theta
phi=0:pi/180:2*pi; %phi
dth2=th(6)-th(5); dphi=phi(6)-phi(5);
int= (dphi.*ones(1,length(phi)))* (cos(phi)'*sin(th))*(dth.*ones(1,length(th)))'; %integration by matrix multiplication
I get answer of 0.0349 instead of 0. Increasing step size to a very massive number helps but that's unreasonable.
Can anyone help, where I'm doing wrong

채택된 답변

Torsten
Torsten 2022년 4월 12일
th=pi/(2*180):pi/180:pi-pi/(2*180); %theta
phi=pi/(2*180):pi/180:2*pi-pi/(2*180); %phi
dth=th(6)-th(5); dphi=phi(6)-phi(5);
intvalue= (dphi.*ones(1,length(phi)))* (cos(phi)'*sin(th))*(dth.*ones(1,length(th)))'
  댓글 수: 2
Saqeeb Adnan
Saqeeb Adnan 2022년 4월 12일
Thank you so much. So, the singularity at pi/2 was the reason.
Torsten
Torsten 2022년 4월 12일
편집: Torsten 2022년 4월 13일
No. In order to approximate a two-dimensional integral, you always have to take the value of the function at the center of a cell, not at the boundary, and multiply it with the area of that cell.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Mathematics에 대해 자세히 알아보기

제품


릴리스

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by