Using parfor to evaluate integrations
Ältere Kommentare anzeigen
Probably a stupid question.
I want to integrate a function f(x,y). Can I use parfor() as shown below to compute the sum? I am confused because I consider that each loop over one "ix" value in the following parfor() is run independently from other "ix" values, which means that I must obtain a different "sum_f" for each "ix" value. Right?
clear; clc;
xmin = -2; xmax = 1;
ymin = 1; ymax = 3;
dx = 0.001;
dy = dx;
xs = xmin:dx:xmax; Nx = length(xs);
ys = ymin:dy:ymax; Ny = length(ys);
f = @(x,y) x^2+y^2;
sum_f = 0;
parfor ix = 1:Nx
x = xs(ix);
for iy = 1:Ny
y = ys(iy);
sum_f = sum_f + f(x,y)*dx*dy;
end
end
I = sum(sum_f(:))
2 Kommentare
Dyuman Joshi
am 2 Feb. 2024
Any particular reason why you are using a double for loop, instead of vectorizing the function handle and the sum?
Luqman Saleem
am 2 Feb. 2024
Akzeptierte Antwort
Weitere Antworten (0)
Kategorien
Mehr zu Numerical Integration and Differential Equations finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!