How to compute the double integral over dx and dy?

9 Ansichten (letzte 30 Tage)
Kalasagarreddi Kottakota am 3 Apr. 2023
Kommentiert: Star Strider am 3 Apr. 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);
0 Kommentare-2 ältere Kommentare anzeigen-2 ältere Kommentare ausblenden

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Star Strider am 3 Apr. 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 KommentareKeine anzeigenKeine ausblenden
Torsten am 3 Apr. 2023
Don't forget to scale the results by dx*dy.
Star Strider am 3 Apr. 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
.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (2)

Samyuktha am 3 Apr. 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!
0 Kommentare-2 ältere Kommentare anzeigen-2 ältere Kommentare ausblenden

Melden Sie sich an, um zu kommentieren.

Torsten am 3 Apr. 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
0 Kommentare-2 ältere Kommentare anzeigen-2 ältere Kommentare ausblenden

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Numerical Integration and Differentiation finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by