How to compute the double integral over dx and dy?

7 visualizaciones (últimos 30 días)
Hi, Can someone help me to how to code this equation in matlab? Let x and y are axis of a plane. dx and dy are increments. I have values of a and b at each coordinate(x,y) as shown in the below code.
clear all; close all;clc;
% Let
dx = 0.1;
x = -0.5:dx:0.5;
dy = 0.1;
y = -0.5:dx:0.5;
N = length(x);
a = randn(N,N);
b = randn(N,N);

Respuesta aceptada

Star Strider
Star Strider el 3 de Abr. de 2023
You are integrating matrices, so use trapz (or cumtrapz, depending on the result you want) once in each dimension —
% clear all; close all;clc;
% Let
dx = 0.1;
x = -0.5:dx:0.5;
dy = 0.1;
y = -0.5:dx:0.5;
N = length(x);
a = randn(N,N);
b = randn(N,N);
columnInt = trapz((a-b).^2) % Column Integrals
columnInt = 1×11
19.6448 26.9404 10.3535 10.6369 19.7843 13.8794 7.4786 12.1139 10.1436 22.0933 19.0884
rowInt = trapz(columnInt) % Integrate Column Integrals
rowInt = 152.7905
totalInt = trapz((trapz((a-b).^2))) % Both In One Line
totalInt = 152.7905
.
  2 comentarios
Torsten
Torsten el 3 de Abr. de 2023
Don't forget to scale the results by dx*dy.
Star Strider
Star Strider el 3 de Abr. de 2023
I initially forgot that. Assuming ‘x’ defines the columns and ‘y’ defines the rows —
% clear all; close all;clc;
% Let
dx = 0.1;
x = -0.5:dx:0.5;
dy = 0.1;
y = -0.5:dx:0.5;
N = length(x);
a = randn(N,N);
b = randn(N,N);
columnInt = trapz(x,(a-b).^2) % Column Integrals
columnInt = 1×11
3.2512 1.1639 1.0265 1.5750 2.4845 1.1630 3.4526 2.8748 1.7902 0.9262 3.7454
rowInt = trapz(y,columnInt) % Integrate Column Integrals
rowInt = 1.9955
totalInt = trapz(y,trapz(x,(a-b).^2)) % Both In One Line
totalInt = 1.9955
.

Iniciar sesión para comentar.

Más respuestas (2)

Samyuktha
Samyuktha el 3 de Abr. de 2023
Hi Kalasagarreddi,
I understand that you want to compute a double integral.
You can do this with the help of 'integral2' command. Please refer to the following documentation link for information on the syntax of 'integral2'.
Hope this helps!

Torsten
Torsten el 3 de Abr. de 2023
dx = 0.1;
x = -0.5:dx:0.5;
dy = 0.1;
y = -0.5:dx:0.5;
N = length(x);
a = randn(N,N);
b = randn(N,N);
F = (a-b).^2;
% Use one of the following approximations for the integral
I1 = trapz(y,trapz(x,F,2))
I1 = 2.0996
I2 = trapz(x,trapz(y,F,1))
I2 = 2.0996

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!

Translated by