Ejercicio: 2Eva_IT2018_T4 Dragado acceso marítimo
a) La matriz para remover sedimentos se determina como la diferencia entre la profundidad y la matriz de batimetría.
Considere el signo de la profundidad para obtener el resultado:
matriz remover sedimentos: [[ 4.21 0. 0.96 0. 3.76 3.09] [ 2.15 0.11 2.05 3.77 0. 3.07] [ 0. 1.14 1.65 0. 1.62 1.35] [ 3.7 0. 0.59 2.33 0. 4.23] [ 0. 1.38 3.53 4.49 1.98 1.4 ] [ 0. 0.77 0.32 1.06 4.24 3.54]]
se obtiene con la instrucciones:
# 2da Evaluación I Término 2018 # Tema 4. canal acceso a Puertos de Guayaquil import numpy as np # INGRESO profcanal = 11 xi = np.array([ 0., 50., 100., 150., 200., 250.]) yi = np.array([ 0., 100., 200., 300., 400., 500.]) batimetria = [[ -6.79,-12.03,-10.04,-11.60, -7.24,-7.91], [ -8.85,-10.89, -8.95, -7.23,-11.42,-7.93], [-11.90, -9.86, -9.35,-12.05, -9.38,-9.65], [ -7.30,-11.55,-10.41, -8.67,-11.84,-6.77], [-12.17, -9.62, -7.47, -6.51, -9.02,-9.60], [-11.90,-10.23,-10.68, -9.94, -6.76,-7.46]] batimetria = np.array(batimetria) # PROCEDIMIENTO [n,m] = np.shape(batimetria) # Matriz remover sedimentos remover = batimetria + profcanal for i in range(0,n,1): for j in range(0,m,1): if remover[i,j]<0: remover[i,j]=0 # SALIDA print('matriz remover sedimentos: ') print(remover)
b) el volumen se calcula usando el algoritmo de Simpson primero por un eje, y luego con el resultado se continúa con el otro eje,
Considere que existen 6 puntos, o 5 tramos integrar en cada eje.
- Al usar Simpson de 1/3 que usan tramos pares, faltaría integrar el último tramo.
- En el caso de Simpson de 3/8 se requieren tramos multiplos de 3, porl que faltaría un tramo para volver a usar la fórmula.
La solución por filas se implementa usando una combinación de Simpson 3/8 para los puntos entre remover[i, 0:3] y Simpson 1/3 para los puntos entre remover[i, 3:5].
Luego se completa el integral del otro eje con el resultado anterior, aplicando el mismo método.
Se obtuvieron los siguientes resultados:
Integral en eje x: [ 219.1 309.83 260.44 217.75 511.21 137.85] Volumen: 160552.083333
que se obtiene usando las instrucciones a continuación de las anteriores:
# literal b) --------------------------- def simpson13(fi,h): s13 = (h/3)*(fi[0] + 4*fi[1] + fi[2]) return(s13) def simpson38(fi,h): s38 = (3*h/8)*(fi[0] + 3*fi[1] + 3*fi[2]+ fi[3]) return(s38) Integralx = np.zeros(n,dtype = float) for i in range(0,n,1): hx = xi[1]-xi[0] fi = remover[i, 0:(0+4)] s38 = simpson38(fi,hx) fi = remover[i, 3:(3+3)] s13 = simpson13(fi,hx) Integralx[i] = s38 + s13 hy = yi[1] - yi[0] fj = Integralx[0:(0+4)] s38 = simpson38(fj,hy) fj = Integralx[3:(3+3)] s13 = simpson13(fj,hy) volumen = s38 + s13 # Salida np.set_printoptions(precision=2) print('Integral en eje x: ') print(Integralx) print('Volumen: ', volumen)
Para el examen escrito, se requieren realizar al menos 3 iteraciones/ filas para encontrar el integral.