Overlap integral of the electric field distribution

40 次查看(过去 30 天)
Hi, I am trying to calculate overlap integral (OI) of electric field distribution, using Matlab, when run the following code:
xc = linspace(0,1,M);
yc = linspace(0,1,M);
A = E1 * E2;
B = (abs(trapz(xc,trapz(yc, abs(A))) ) ).^2;
C = trapz(xc,trapz(yc, abs(E1).^2)) * trapz(xc,trapz(yc, abs(E2).^2 ));
OI = B./C;
where E1 is the electric field distribution of the desired mode and E2 is polarized mode. Both E1 and E2 are matrices of size MxM.
but, I have got this error: Error using trapz (line 57) *LENGTH(X) must equal the length of Y in dim 1.
  3 个评论
Suresh Chejarla
Suresh Chejarla 2023-5-25
Hello,
Can you please provide the reference for the OI expression which you have put here ?

请先登录,再进行评论。

采纳的回答

Torsten
Torsten 2017-5-19
编辑:Torsten 2017-5-19
xc = linspace(0,1,M);
yc = linspace(0,1,M);
A = E1 .* E2;
B = (trapz(xc,trapz(yc, abs(A), 1)) ).^2;
C = trapz(xc,trapz(yc, abs(E1).^2, 1)) * trapz(xc,trapz(yc, abs(E2).^2, 1 ));
OI = B./C;
Best wishes
Torsten.
  2 个评论
shdotcom shdotcom
shdotcom shdotcom 2017-5-20
I have edited the code based on @David Goodmanson's comments. Could you please explain to me why you used 1 instead on 2 in the trapz()
C = trapz(xc,trapz(yc, abs(E1).^2, 1)) * trapz(xc,trapz(yc, abs(E2).^2, 1 ));
Torsten
Torsten 2017-5-22
So the code should read:
xc = linspace(0,1,M);
yc = linspace(0,1,M);
A = E1 .* E2;
B = (trapz(xc,trapz(yc, A, 1)) )^2;
C = trapz(xc,trapz(yc, abs(E1).^2, 1)) * trapz(xc,trapz(yc, abs(E2).^2, 1 ));
OI = B./C;
I used 1 instead of 2 in trapz() because you have to integrate each column of A if you integrate over y.
Best wishes
Torsten.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Numerical Integration and Differentiation 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by