s2Eva_2021PAOII_T1 Promedio de precipitación de lluvia en área

Ejercicio: 2Eva_2021PAOII_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 300×250, los tramos horizontales 6 y los verticales 4.

Los tamaños de paso son:
h = 300/6 = 50
k = 250/4 = 62.5

f(xi,yj)
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.43

i=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.18

i=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.14

i=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.5

con 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.09

para el promedio se divide el integral total para el área de rectángulo.

Precipitacion_{promedio} = \frac{100850.09}{(300)(250)} = 1.34

Solució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)