How to compute the double integral over dx and dy?

7 vues (au cours des 30 derniers jours)
Kalasagarreddi Kottakota
Kalasagarreddi Kottakota le 3 Avr 2023
Commenté : Star Strider le 3 Avr 2023
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);

Réponse acceptée

Star Strider
Star Strider le 3 Avr 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 commentaires
Torsten
Torsten le 3 Avr 2023
Don't forget to scale the results by dx*dy.
Star Strider
Star Strider le 3 Avr 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
.

Connectez-vous pour commenter.

Plus de réponses (2)

Samyuktha
Samyuktha le 3 Avr 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 le 3 Avr 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

Catégories

En savoir plus sur Numerical Integration and Differentiation dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by