Facing problem with Double integral of function P=f(u,v) for -∞<u<∞ and -∞<v<∞ & y=0:5:90;
5 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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 Kommentare
Akzeptierte Antwort
Mike Hosea
am 13 Sep. 2012
Bearbeitet: Mike Hosea
am 13 Sep. 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 Kommentare
Mike Hosea
am 15 Sep. 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);
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Numerical Integration and Differentiation finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!