How to double integral over a non rectangular region using trapz?
Mostrar comentarios más antiguos
I have a data containing the depth and width of a cross section, and these corresponding velocity at certain depth and width. And I would like to get the average velocity over the cross section using double integral over depth and width. But I am not sure how to do so by trapz, since the cross area is not rectangular. The data of depth, width and velocity(d,w) is like below.
depth =
0 0 0 0 0 0
0.2700 0.5400 1.0800 1.6200 2.1600 2.4300
0.2800 0.5600 1.1200 1.6800 2.2400 2.5200
0.3000 0.6000 1.2000 1.8000 2.4000 2.7000
0.3000 0.6000 1.2000 1.8000 2.4000 2.7000
0.2900 0.5800 1.1600 1.7400 2.3200 2.6100
0.2900 0.5800 1.1600 1.7400 2.3200 2.6100
0.3000 0.6000 1.2000 1.8000 2.4000 2.7000
0.2000 0.4000 0.8000 1.2000 1.6000 1.8000
0.3000 0.6000 1.2000 1.8000 2.4000 2.7000
0.3000 0.6000 1.2000 1.8000 2.4000 2.7000
0.3300 0.6600 1.3200 1.9800 2.6400 2.9700
0.3300 0.6600 1.3200 1.9800 2.6400 2.9700
0.3400 0.6800 1.3600 2.0400 2.7200 3.0600
0.3300 0.6600 1.3200 1.9800 2.6400 2.9700
0.2300 0.4600 0.9200 1.3800 1.8400 2.0700
0 0 0 0 0 0
width =
0 0 0 0 0 0
6 6 6 6 6 6
9 9 9 9 9 9
12 12 12 12 12 12
15 15 15 15 15 15
18 18 18 18 18 18
21 21 21 21 21 21
24 24 24 24 24 24
27 27 27 27 27 27
30 30 30 30 30 30
33 33 33 33 33 33
36 36 36 36 36 36
39 39 39 39 39 39
42 42 42 42 42 42
45 45 45 45 45 45
50 50 50 50 50 50
57 57 57 57 57 57
V(d,w)=
0 0 0 0 0 0
0.5200 0.5200 0.4000 0.4400 0.4000 0.6700
0.8000 0.9200 1.1200 1.4000 1.4000 1.3400
1.3700 1.7500 1.8200 1.6800 1.5300 1.4000
1.5600 2.0300 1.9800 1.8200 1.5300 1.5300
1.6800 2.3200 2.1800 2.1800 1.4000 1.6400
1.7900 2.5300 2.5800 2.2300 1.9800 1.8200
2.4200 2.6500 2.5800 2.1600 2.2300 1.9800
2.5800 3.0200 2.9600 2.7100 2.1800 2.1200
2.7700 3.0900 3.1600 2.1300 2.7100 2.3700
2.7700 3.1600 3.1600 2.8900 2.5800 2.6500
2.7100 3.0900 3.0200 2.7100 2.4700 1.9800
2.1800 2.7700 2.7700 2.6500 2.5300 2.2300
2.0800 2.4700 2.5300 2.2300 2.2300 1.3700
0.5600 0.6700 1.4600 1.3400 1.4900 1.5300
0.2800 0.3350 0.7300 0.7000 0.7450 0.7650
0 0 0 0 0 0
I am trying to do it like this
d=[0.1,0.2,0.4,0.6,0.8,0.9].*num(:,2);
for i=1:17
I1(i)=trapz(depth(i,:),velocity(i:));
end
I2=trapz(width(:,1),I1)
v_averaye=I2/Area
Respuestas (0)
Categorías
Más información sobre Numerical Integration and Differentiation en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!