Ejercicio: 2Eva2021PAOII_T1 Promedio de precipitación de lluvia en área
Los datos de la tabla corresponden a las medidas de precipitación lluviosa en cada cuadrícula. El área observada es de 300x250, los tramos horizontales 6 y los verticales 4.
Los tamaños de paso son:
h = 300/6 = 50
k = 250/4 = 62.5
| i \ j | 1 | 2 | 3 | 4 | 5 | 6 |
|---|---|---|---|---|---|---|
| 1 | 0.02 | 0.36 | 0.82 | 0.65 | 1.7 | 1.52 |
| 2 | 3.15 | 3.57 | 6.25 | 5 | 3.88 | 1.8 |
| 3 | 0.98 | 0.98 | 2.4 | 1.83 | 0.04 | 0.01 |
| 4 | 0.4 | 0.04 | 0.03 | 0.03 | 0.01 | 0.08 |
Para obtener el integral doble, usando la forma compuesta de Simpson, primero desarrolla por filas.
i=1
I_1 = \frac{3}{8}(50) ( 0.02+3(0.36)+3(0.82)+0.65) + \frac{1}{3}(50) (0.65+4(1.7)+1.52) = 228.43i=2
I_2 = \frac{3}{8}(50) ( 3.15+3(3.57)+3(6.25)+5) + \frac{1}{3}(50) (5+4(3.88)+1.8) = 1077.18i=3
I_3 = \frac{3}{8}(50) ( 0.98+3(0.98)+3(2.4)+1.83) + \frac{1}{3}(50) (1.83+4(0.04)+0.01) = 276.14i=4
I_4 = \frac{3}{8}(50) ( 0.4+3(0.04)+3(0.03)+0.03) + \frac{1}{3}(50) (0.03+4(0.01)+0.08) = 14.5con los resultados, luego se desarrolla por columnas:
columnas = [ 228.43, 1077.18, 276.14, 14.5 ]
I_{total} = \frac{3}{8}(62.5) ( 228.43+3(1077.18)+3(276.14)+14.5) I_{total} = 100850.09para el promedio se divide el integral total para el área de rectángulo.
Precipitacion_{promedio} = \frac{100850.09}{(300)(250)} = 1.34Solución con algoritmo
Resultados usando algoritmos con Python:
integral por fila: [ 228.4375 1077.1875 276.14583333 14.5 ]
integral total: 100850.09765625
promedio precipitación: 1.34466796875
>>>
Instrucciones con Python
# 2Eva_2021PAOII_T1 Promedio de precipitación de
# lluvia en área
import numpy as np
def simpson_compuesto(vector,h):
m = len(vector)
suma = 0
j = 0
while (j+3)<m: # Simpson 3/8
f = vector[j:j+4]
s = (3*h/8)*(f[0]+3*f[1]+3*f[2]+f[3])
suma = suma + s
j = j + 3
while (j+2)<m: # Simpson 1/3
f = vector[j:j+3]
s = (h/3)*(f[0]+4*f[1]+f[2])
suma = suma + s
j = j + 2
while (j+1)<m: # Trapecio
f = vector[j:j+2]
s = (h/2)*(f[0]+f[1])
suma = suma + s
j = j + 1
return(suma)
# INGRESO
A = [[0.02, 0.36, 0.82, 0.65, 1.7 , 1.52],
[3.15, 3.57, 6.25, 5. , 3.88, 1.8 ],
[0.98, 0.98, 2.4 , 1.83, 0.04, 0.01],
[0.4 , 0.04, 0.03, 0.03, 0.01, 0.08]]
base = 300
altura = 250
h = base/6
k = altura/4
# PROCEDIMIENTO
A = np.array(A)
[n,m] = np.shape(A)
columna = np.zeros(n,dtype=float)
for i in range(0,n,1):
vector = A[i]
integralfila = simpson_compuesto(vector,h)
columna[i] = integralfila
total = simpson_compuesto(columna,k)
promedio = total/(base*altura)
# SALIDA
print('integral por fila:', columna)
print('integral total:', total)
print('promedio precipitación: ', promedio)