Double Integral for Discrete Function

Dear All, I am solving a PDE in which I have to find the double integral of a discreet function. PDE has the following form:
where F(x,y) is a matrix of size (M,N), obtained by solving another PDE.
[F,x,y]=some_funtion_to_solve_PDE(some inputs);
I'll use some initial guess for G(x,y) within the integral which also gives me a matrix of the same size as F(x,y).
Here the integrand is a product of two discrete functions and the integral limits are numbers. Matlab built-in routine quad2d() requires the integrand to be a continuous function of x & y. Similarly, the other routines like integral2() also require continuous function expressions. I need help and suggestions on solving this double integral with discrete function, which will enable me to solve the PDE. Many Thanks.

 Accepted Answer

Torsten
Torsten on 17 Aug 2016
Take a look at the example "Multiple Numerical Integrations" under
Best wishes
Torsten.

7 Comments

@Torsten:
Thanks for your answer. I've used the following command:
x=0:0.1:2; %limits of integration for x
y=0:0.1:2; %limits of integration for y
I=trapz(y,trapz(x,F,2));
But it gives the following error,
LENGTH(X) must equal the length of Y in dim 2.
I cannot understand what I am doing wrong to evaluate this integral. If possible please help me to correct this code. Thanks.
You are aware that in your case, F must be a 21x21 matrix ?
Best wishes
Torsten.
@Torsten Thanks for reply.
I just used it as an example. F can be 41x41 matrix or 20x20 matrix. As you see in the original question, F comes from the solution of another PDE which i've solved earlier.
Thanks.
And does it work now with F being a 21x21 matrix ?
x=0:0.1:2;
y=0:0.1:2;
[X,Y] = meshgrid(x,y);
F = X.^2 + Y.^2;
I = trapz(y,trapz(x,F,2))
Note that F is 21x21.
Best wishes
Torsten.
What i understood from your above code, you wrote F to be a continous function. I cannot understand the reason of defining F = X.^2 + Y.^2?
In my problem, F is not a continuous function of x and y, in fact its a discrete data. F is a matrix [f_{i,j}] and each f_{i,j} is the value of F at some point (x,y). Hope I have conveyed you clearly my problem.
Thanks.
I just chose an analytical function form to create the matrix F for the sake of convenience.
F can be any matrix you like, as long as F has dimension
(length(y)) x (length(x))
Best wishes
Torsten.
Thanks, Torsten. This time, it worked. So nice of you.

Sign in to comment.

More Answers (0)

Products

Asked:

on 17 Aug 2016

Commented:

on 19 Aug 2016

Community Treasure Hunt

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

Start Hunting!