Hi all
I want to numerically integral a function with four variable(f(x,y,z,v)).how can I use dblquad?

4 Kommentare

Andrew Newell
Andrew Newell am 15 Mai 2011
How many variables do you want to integrate over?
rahman
rahman am 15 Mai 2011
I want to integral over all of variables
Andrew Newell
Andrew Newell am 15 Mai 2011
Are your integral limits rectangular? e.g., xmin <= x <= xmax?
rahman
rahman am 15 Mai 2011
yes.all of four variables integration domain are limited.

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Andrew Newell
Andrew Newell am 15 Mai 2011

0 Stimmen

This turned out to be surprisingly tricky, but here is the solution. First, define a function
function fzv = integrateOverSecondPair(fun,x,y,zmin,zmax,vmin,vmax)
% DBLQUAD evaluates FUN for a vector x and scalar y. The backwards loop is
% Matt Fig's dynamic preallocation.
for ii=numel(x):-1:1
g = @(z,v) fun(x(ii),y,z,v);
fzv(ii) = dblquad(g,zmin,zmax,vmin,vmax);
end
Then use the commands
fzv = @(x,y) integrateOverSecondPair(@f,x,y,zmin,zmax,vmin,vmax);
fxyzv = dblquad(fzv,xmin,xmax,ymin,ymax);

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by