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

 Respuesta aceptada

Torsten
Torsten el 12 de Abr. de 2022
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 comentarios

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

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Loops and Conditional Statements en Centro de ayuda y File Exchange.

Productos

Versión

R2020b

Preguntada:

el 12 de Abr. de 2022

Editada:

el 13 de Abr. de 2022

Community Treasure Hunt

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

Start Hunting!

Translated by