Double integral using matlab multiplication

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

 Akzeptierte Antwort

Torsten
Torsten am 12 Apr. 2022

0 Stimmen

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 Kommentare

Saqeeb Adnan
Saqeeb Adnan am 12 Apr. 2022
Thank you so much. So, the singularity at pi/2 was the reason.
Torsten
Torsten am 12 Apr. 2022
Bearbeitet: Torsten am 13 Apr. 2022
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.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Mathematics finden Sie in Hilfe-Center und File Exchange

Produkte

Version

R2020b

Gefragt:

am 12 Apr. 2022

Bearbeitet:

am 13 Apr. 2022

Community Treasure Hunt

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

Start Hunting!

Translated by