Facing problem with Double integral of function P=f(u,v) for -∞<u<∞ and -∞<v<∞ & y=0:5:90;
6 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
I have been facing problem to integrate P=f(u,v) for -∞<u<∞ and -∞<v<∞ where y varies 0 to 90. i want to have a table of y Vs. Q from below function.
%%Double integral of function P=f(u,v) for -∞<u<∞ and -∞<v<∞ & y=0:5:90;
clear all;
clc;
k=112.0501;
x=4.0-0.01*1i; % Dielectric constant of surface
y=0:5:90;
H=(cosd(y)-sqrt(x-sind(y).^2))./(cosd(y)+sqrt(x-sind(y).^2));
V=(x.*cosd(y)-sqrt(x-sind(y).^2))./(x.*cosd(y)+sqrt(x-sind(y).^2));
R=(V-H)/2;
f1 = @(u,v)(8.*R.^2./(sqrt(k.^2-u.^2-v.^2)));
f2 = @(u,v)(-2+6.*R+((1+R).^2./er)+er.*(1-R).^2)./(sqrt(er.*k.^2-u.^2-v.^2));
f3 = @(u,v)(u.*v./cosd(y));
F = @(u,v)(f3(u,v).*(f1(u,v)+f2(u,v)));
P= @(u,v)(abs(F(u,v)).^2+F(u,v).*conj(F(u,v)));
Q = quad2d(P,0,1,0,1)
table=[theta Q];
2 comentarios
Respuesta aceptada
Mike Hosea
el 13 de Sept. de 2012
Editada: Mike Hosea
el 13 de Sept. de 2012
QUAD2D requires an integrand function f(x,y) that operates element-wise on input matrices. So f([1,2;3,4],[5,6;7,8]) must evaluate to [f(1,5),f(2,6);f(3,7),f(4,8)]. Your integrand function involves an array of y values. QUAD2D does not support creating an array of Q values, so to make a table you will need to loop over each y value and compute each corresponding Q value and store that in an array.
Note that the new INTEGRAL2 function in R2012a supports improper integrals.
2 comentarios
Mike Hosea
el 15 de Sept. de 2012
k=112.0501;
x=4.0-0.01*1i;
y=0:5:85;
n = length(y);
Q = zeros(n,1);
for i = 1:n
H=(cosd(y(i))-sqrt(x-sind(y(i)).^2))./(cosd(y(i))+sqrt(x-sind(y(i)).^2));
V=(x.*cosd(y(i))-sqrt(x-sind(y(i)).^2))./(x.*cosd(y(i))+sqrt(x-sind(y(i)).^2));
R=(V-H)/2; f1 = @(u,v)(8.*R.^2./(sqrt(k.^2-u.^2-v.^2)));
f2 = @(u,v)(-2+6.*R+((1+R).^2./x)+x.*(1-R).^2)./(sqrt(x.*k.^2-u.^2-v.^2));
f3 = @(u,v)(u.*v./cosd(y(i))); F = @(u,v)(f3(u,v).*(f1(u,v)+f2(u,v)));
P= @(u,v)(abs(F(u,v)).^2+F(u,v).*conj(F(u,v)));
Q(i) = quad2d(P,0,1,0,1);
end
table=[y' Q];
Note that you cannot use y = 90 because f3(u,v) = u.*v./cosd(y). The denominator there would be zero. I do not know what integrals you intend to evaluate from -inf to inf because the integral of P does not converge (mathematically). However, in principle, the QUAD2D line would instead be
Q(i) = integral2(P,-inf,inf,-inf,inf);
Más respuestas (0)
Ver también
Categorías
Más información sobre Numerical Integration and Differentiation en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!