s1Eva_2021PAOII_T1 Interpolación para perfil de terreno

Ejercicio: 1Eva_2021PAOII_T1 Interpolación para perfil de terreno

a. Plantee y desarrolle un polinomio P3(d1) de grado 3, que describa el perfil del terreno en el intervalo [0,1300] de distancias a la primera antena d1.

Para plantear el ejercicio, se observan los punto en el intervalo [0,1300], asi como los tamaños de paso.

Como el polinomio es de grado 3,se requiere 3 tramos o 4 muestras, el intervalo presenta 5. Para incluir el punto de inicio, fin y máximo, las muestras seleccionadas son las que se muestran en la tabla siguiente:

Δd1 distancia d1 Perfil de Terreno DifDiv1 DifDiv2 DifDiv3
350 0 85 DifDiv11 = 0.02857 DifDiv12 = -6.122E-05 DifDiv13 =  -1.123E-05
350 350 95 DifDiv21 = -0.01428 DifDiv22 = -1.127E-05
600 700 90 DifDiv31 =
-0.025
1300 75

Los tamaños de paso, Δd1, son diferentes, por lo que se pueden usar el método de diferencias divididas de Newton o el Método de Lagrange.

Usando diferencias divididas de Newton, se completa la tabla con las expresiones:

DifDiv_{11} = \frac{95-85}{350-0} = 0.02857143 DifDiv_{21} = \frac{90-95}{700-350} = -0.01428 DifDiv_{31} = \frac{75-90}{1300-700} =-0.025 DifDiv_{12} = \frac{-0.01428-0.02857}{700-0} = -6.122E-05 DifDiv_{22} = \frac{-0.025-(-0.01428)}{1300-350} = -1.127E-05 DifDiv_{13} = \frac{(-1.127E-05) -(6.122E-05)}{1300-0} = 1.123E-05

con lo que se puede construir el polinomio

p_{3}(d) = 85 + 0.02857(d-0)+(-6.122E5)(d-0)(d-350)+ -(1.123E-5)(d-0)(d-350)(d-700)

simplificando el polinomio se obtiene:

p_{3}(d) = 85.0+ 0.05941 d - 0.0001015 d^2 +(3.842E-8)d^3

b. Calcule el error sobre el o los datos que no se usaron en el intervalo

El valor no usado que estaba en el intervalo es d=1000, que se evalúa en p3(d) y se compara con el valor muestreado para ver el error del modelo

p_{3}(1000) = 85.0+ 0.05941 (1000) - 0.0001015 (1000)^2 +(3.842E-8)(1000)^3 p_{3}(1000) = 81.26 Error = |81.26 - 80| = 1.26

encontrando que el error es de 1.26m de altitud del terreno a los 1000m de distancia desde la referencia a la izquierda.

c. Desarrolle y justifique una propuesta para disminuir los errores encontrados en el literal anterior, sobre el mismo intervalo, es decir obtiene un nuevo polinomio (use algoritmo).

En caso de requerir una mayor precisión, se puede aumentar el grado del polinomio al incluir el punto d=1000 no usado en el paso anterior.

Usando el algoritmo con Python se obtiene:

Tabla Diferencia Dividida
[['i   ', 'xi  ', 'fi  ', 'F[1]', 'F[2]', 'F[3]', 'F[4]', 'F[5]']]
[[ 0.0000e+00  0.0000e+00  8.5000e+01  2.8571e-02 -6.1224e-05  3.1920e-08  2.1666e-11  0.0000e+00]
 [ 1.0000e+00  3.5000e+02  9.5000e+01 -1.4286e-02 -2.9304e-05  6.0086e-08  0.0000e+00  0.0000e+00]
 [ 2.0000e+00  7.0000e+02  9.0000e+01 -3.3333e-02  2.7778e-05  0.0000e+00  0.0000e+00  0.0000e+00]
 [ 3.0000e+00  1.0000e+03  8.0000e+01 -1.6667e-02  0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00]
 [ 4.0000e+00  1.3000e+03  7.5000e+01  0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00  0.0000e+00]]
dDividida: 
[ 2.8571e-02 -6.1224e-05  3.1920e-08  2.1666e-11  0.0000e+00]
polinomio: 
2.16658863275405e-11*x*(x - 1000.0)*(x - 700.0)*(x - 350.0) + 3.19204604918891e-8*x*(x - 700.0)*(x - 350.0) - 6.12244897959184e-5*x*(x - 350.0) + 0.0285714285714286*x + 85.0
polinomio simplificado: 
2.16658863275405e-11*x**4 - 1.24946064795689e-8*x**3 - 6.6683650518237e-5*x**2 + 0.0525123706702654*x + 85.0

junto a la gráfica:

d. Escriba sus conclusiones y recomendaciones sobre los resultados obtenidos entre los dos polinomios.

Dado que el error se considera mínimo en el intervalo, y el coeficiente del polinomio para x4 es del orden de 10-11 se recomendaría usar el polinomio de grado 3.


Instrucciones en Python

# Polinomio interpolación
# Diferencias Divididas de Newton
# Tarea: Verificar tamaño de vectores,
#        verificar puntos equidistantes en x
import numpy as np
import sympy as sym
import matplotlib.pyplot as plt

# INGRESO , Datos de prueba
xi = np.array([0.0,350,700,1000,1300])
fi = np.array([85.0,95,90,80,75])

# PROCEDIMIENTO

# Tabla de Diferencias Divididas Avanzadas
titulo = ['i   ','xi  ','fi  ']
n = len(xi)
ki = np.arange(0,n,1)
tabla = np.concatenate(([ki],[xi],[fi]),axis=0)
tabla = np.transpose(tabla)

# diferencias divididas vacia
dfinita = np.zeros(shape=(n,n),dtype=float)
tabla = np.concatenate((tabla,dfinita), axis=1)

# Calcula tabla, inicia en columna 3
[n,m] = np.shape(tabla)
diagonal = n-1
j = 3
while (j < m):
    # Añade título para cada columna
    titulo.append('F['+str(j-2)+']')

    # cada fila de columna
    i = 0
    paso = j-2 # inicia en 1
    while (i < diagonal):
        denominador = (xi[i+paso]-xi[i])
        numerador = tabla[i+1,j-1]-tabla[i,j-1]
        tabla[i,j] = numerador/denominador
        i = i+1
    diagonal = diagonal - 1
    j = j+1

# POLINOMIO con diferencias Divididas
# caso: puntos equidistantes en eje x
dDividida = tabla[0,3:]
n = len(dfinita)

# expresión del polinomio con Sympy
x = sym.Symbol('x')
polinomio = fi[0]
for j in range(1,n,1):
    factor = dDividida[j-1]
    termino = 1
    for k in range(0,j,1):
        termino = termino*(x-xi[k])
    polinomio = polinomio + termino*factor

# simplifica multiplicando entre (x-xi)
polisimple = polinomio.expand()

# polinomio para evaluacion numérica
px = sym.lambdify(x,polisimple)

# Puntos para la gráfica
muestras = 101
a = np.min(xi)
b = np.max(xi)
pxi = np.linspace(a,b,muestras)
pfi = px(pxi)

# SALIDA
np.set_printoptions(precision = 4)
print('Tabla Diferencia Dividida')
print([titulo])
print(tabla)
print('dDividida: ')
print(dDividida)
print('polinomio: ')
print(polinomio)
print('polinomio simplificado: ' )
print(polisimple)

# Gráfica
plt.plot(xi,fi,'o', label = 'Puntos')
##for i in range(0,n,1):
##    plt.axvline(xi[i],ls='--', color='yellow')
plt.plot(pxi,pfi, label = 'Polinomio')
plt.legend()
plt.xlabel('xi')
plt.ylabel('fi')
plt.title('Diferencias Divididas - Newton')
plt.show()

1Eva_2021PAOII_T3 Nutrientes en asociación de cultivos

1ra Evaluación 2021-2022 PAO II. 24/Noviembre/2021

Tema 3. (40 puntos) La asociación de cultivos es la siembra de dos o más especies vegetales muy próximas entre sí, de tal manera que una o ambas pueden obtener tales como la mejora de la productividad, control de plagas, la prevención de enfermedades o adquirir un mejor sabor.

Los beneficios se obtienen a través de la absorción de nutrientes o de cambios en el medio ambiente.

Una forma de medir la absorción de un nutriente de cada especie por ciclo de cultivo es cambiar la cantidad de especies vegetales en distintas parcelas. La diferencia de un nutriente entre el fin e inicio del cultivo se encuentra mostrada en la siguiente tabla.

plátano café cacao Absorción de nutriente
40 110 310 750
400 15 25 445
200 560 310 10

a. Realice el planteamiento del sistema de ecuaciones, presente en la forma Ax=B.

b. De ser necesario, realice operaciones con la matriz aumentada para mejorar la convergencia con un método iterativo.

c. En el contexto del problema, proponga un vector inicial y tolerancia.

d. Realice 3 iteraciones con el método de Gauss-Seidel y estime el error (papel y lápiz)

e. Describa y justifique su observación sobre la convergencia del método y estime una descripción de los resultados.

Rúbrica: literal a (5 puntos), literal b (5 puntos), literal c (5 puntos), iteraciones (15 puntos) cálculo de error(5 puntos), literal d(5 puntos)

Referencia: Asociación de cultivos https://huertocity.com/index.php/asociacion-de-cultivos/
Tabla Asociación de cultivos: 12 ejemplos, importancia. https://ingenieriaambiental.net/asociacion-de-cultivos/

 

1Eva_2021PAOII_T2 Intersección de funciones – Obstrucción Radioenlace

1ra Evaluación 2021-2022 PAO II. 24/Noviembre/2021

Tema 2. (30 puntos) En un enlace radioeléctrico, se denomina “Zona de Fresnel” al espacio entre un emisor y receptor debe estar libre para minimizar atenuaciones a la onda de propagación.

Una obstrucción es una parte del perfil del terreno que se encuentra dentro de la Zona de Fresnel. El perfil del terreno es la expresión del polinomio del tema anterior P3(d1) en el intervalo [0,1300].

Cuando las antenas del transmisor y receptor se encuentran a la misma altura, la parte inferior del lóbulo, f(d1), se determina a partir de las siguientes fórmulas:

Considere los valores de las constantes hantena= 100 m, n =1, λ=0.3278, denlace=3700 m

Para analizar la obstrucción, se debe determinar los puntos de intersección entre P3(d1) y f(d1)

a. Establezca un intervalo de análisis para cada raíz.

b. Realice al menos 3 iteraciones con el método de la Bisección para encontrar la primera raíz (izquierda)

c. Desarrolle al menos 3 iteraciones con el método del Punto fijo para encontrar el segundo punto (derecha)

d. Realice al menos 3 iteraciones con el método de Newton-Raphson para determinar la altura del perfil que genera el mayor obstáculo dentro del intervalo (altura máxima).

Rúbrica: literal a (4 puntos), literal b (10 puntos), literal c (10 puntos), literal d (6 puntos)

Referencia: Zona de Fresnel, https://youtu.be/v371pPLdf_c

1Eva_2021PAOII_T1 Interpolación para perfil de terreno

1ra Evaluación 2021-2022 PAO II. 24/Noviembre/2021

Tema 1. (30 puntos) Para el diseño de los enlaces radioeléctricos “punto a punto” se analiza “Zona de Fresnel” que para una buena propagación de señal debe estar libre de obstrucciones.

La altura o perfil del terreno muestra la sección que produce atenuación en la señal del enlace.

La tabla muestra el perfil para un enlace donde se requiere analizar el intervalo entre 0 y 1300 metros desde la antena ubicada en el extremo izquierdo.

distancia d1 0 350 700 1000 1300 1600 2000 3000 3300 3500 3700
Perfil de Terreno 85 95 90 80 75 70 20 25 42 21 71

a. Plantee y desarrolle un polinomio P3(d1) de grado 3, que describa el perfil del terreno en el intervalo [0,1300] de distancias a la primera antena d1.
b. Calcule el error sobre el o los datos que no se usaron en el intervalo
c. Desarrolle y justifique una propuesta para disminuir los errores encontrados en el literal anterior, sobre el mismo intervalo, es decir obtiene un nuevo polinomio (use algoritmo).
d. Escriba sus conclusiones y recomendaciones sobre los resultados obtenidos entre los dos polinomios.

Rúbrica: literal a (10 puntos), literal b (4 puntos), literal c (10 puntos), literal d (6 puntos)

Referencia: Zona de Fresnel. https://es.wikipedia.org/wiki/Zona_de_Fresnel

s3Eva_2021PAOI_T3 Respuesta a entrada cero en un sistema LTIC

Ejercicio: 3Eva_2021PAOI_T3 Respuesta a entrada cero en un sistema LTIC

la ecuación a resolver es:

\frac{\delta^2 y(t)}{\delta t^2}+3 \frac{\delta y(t)}{ \delta t}+2 y(t) =0

con valores iniciales: y0(t)=0 , y’0(t) =-5

se puede escribir como:

y"+3 y'+2y = 0 y" = -3y'-2y

sutituyendo las expresiones de las derivadas como las funciones f(x) por z y g(x) por z’:

y’ = z = f(x)

y» = z’= -3z-2y = g(x)

Los valores iniciales de t0=0, y0=0, z0=-5 se usan en el algoritmo.

En este caso también se requiere conocer un intervalo de tiempo a observar [0,tn=6] y definir el tamaño de paso o resolución del resultado

h = \delta t = \frac{b-a}{n} = \frac{6-0}{60} = 0.1

t0 = 0, y0 = 0,  y’0 = z0 = -5

iteración 1

K1y = h * f(ti,yi,zi) = 0.1 (-5) = -0.5

K1z = h * g(ti,yi,zi) ) = 0.1*(-3(-5)-2(0)) = 1.5

K2y = h * f(ti+h, yi + K1y, zi + K1z) = 0.1(-5+1.5) = -0.35

K2z = h * g(ti+h, yi + K1y, zi + K1z) = 0.1 ( -3(-5+1.5) – 2(0-0.5)) = 1.15

yi = yi + (K1y+K2y)/2 =0+(-0.5-0.35)/2=-0.425

zi = zi + (K1z+K2z)/2 = -5+(1.5+1.15)/2 = -3.675

ti = ti + h = 0+0.1 = 0.1

iteración 2

K1y = 0.1 (-3.675) = -0.3675

K1z = 0.1*(-3(-3.675)-2(-0.425)) = 1.1875

K2y = 0.1(-3.675+ 1.1875) = -0.24875

K2z = 0.1 ( -3(-3.675+ 1.1875) – 2(-0.425-0.3675)) = 0.90475

yi = -0.425+(-0.3675-0.24875)/2=-0.7331

zi = -3.675+( 1.1875+0.90475)/2 = -2.6288

ti =0.1+0.1 = 0.2

iteración 3

continuar como ejercicio

El algoritmo permite obtener la gráfica y la tabla de datos.

los valores de las iteraciones son:

t, y, z
[[ 0.        0.       -5.      ]
 [ 0.1      -0.425    -3.675   ]
 [ 0.2      -0.733125 -2.628875]
 [ 0.3      -0.949248 -1.807592]
 [ 0.4      -1.093401 -1.167208]
 [ 0.5      -1.18168  -0.67202 ]
 [ 0.6      -1.226984 -0.293049]
 [ 0.7      -1.239624 -0.006804]
 [ 0.8      -1.227806  0.205735]
 [ 0.9      -1.19804   0.359943]
 [ 1.       -1.155465  0.468225]
 [ 1.1      -1.104111  0.540574]
 [ 1.2      -1.047121  0.585021]
 [ 1.3      -0.986923  0.608001]
 [ 1.4      -0.925374  0.614658]
 [ 1.5      -0.863874  0.609087]
 [ 1.6      -0.803463  0.594537]
 [ 1.7      -0.744893  0.573574]
 [ 1.8      -0.68869   0.548208]
 [ 1.9      -0.635205  0.520011]
 [ 2.       -0.584652  0.490193]
 [ 2.1      -0.53714   0.459683]
 [ 2.2      -0.492695  0.42918 ]
 [ 2.3      -0.451288  0.399206]
 [ 2.4      -0.412843  0.370135]
 [ 2.5      -0.377253  0.342233]
 [ 2.6      -0.34439   0.315674]
 [ 2.7      -0.314114  0.290567]
 [ 2.8      -0.286275  0.266966]
 [ 2.9      -0.26072   0.244887]
 [ 3.       -0.237297  0.224314]
 [ 3.1      -0.215858  0.205211]
 [ 3.2      -0.196256  0.187526]
 [ 3.3      -0.178354  0.171195]
 [ 3.4      -0.162019  0.156149]
 [ 3.5      -0.147126  0.142312]
 [ 3.6      -0.133558  0.129611]
 [ 3.7      -0.121206  0.117969]
 [ 3.8      -0.109966  0.107312]
 [ 3.9      -0.099745  0.097569]
 [ 4.       -0.090454  0.08867 ]
 [ 4.1      -0.082013  0.080549]
 [ 4.2      -0.074346  0.073146]
 [ 4.3      -0.067385  0.066401]
 [ 4.4      -0.061067  0.06026 ]
 [ 4.5      -0.055334  0.054673]
 [ 4.6      -0.050134  0.049591]
 [ 4.7      -0.045417  0.044972]
 [ 4.8      -0.04114   0.040776]
 [ 4.9      -0.037263  0.036964]
 [ 5.       -0.033748  0.033503]
 [ 5.1      -0.030563  0.030362]
 [ 5.2      -0.027677  0.027512]
 [ 5.3      -0.025062  0.024926]
 [ 5.4      -0.022692  0.022581]
 [ 5.5      -0.020546  0.020455]
 [ 5.6      -0.018602  0.018527]
 [ 5.7      -0.016841  0.01678 ]
 [ 5.8      -0.015246  0.015196]
 [ 5.9      -0.013802  0.013761]
 [ 6.       -0.012494  0.012461]]

Instrucciones en Python

# Respuesta a entrada cero
# solucion para (D^2+ D + 1)y = 0
import numpy as np
import matplotlib.pyplot as plt

def rungekutta2_fg(f,g,x0,y0,z0,h,muestras):
    tamano = muestras + 1
    estimado = np.zeros(shape=(tamano,3),dtype=float)
    # incluye el punto [x0,y0]
    estimado[0] = [x0,y0,z0]
    xi = x0
    yi = y0
    zi = z0
    for i in range(1,tamano,1):
        K1y = h * f(xi,yi,zi)
        K1z = h * g(xi,yi,zi)
        
        K2y = h * f(xi+h, yi + K1y, zi + K1z)
        K2z = h * g(xi+h, yi + K1y, zi + K1z)

        yi = yi + (K1y+K2y)/2
        zi = zi + (K1z+K2z)/2
        xi = xi + h
        
        estimado[i] = [xi,yi,zi]
    return(estimado)

# PROGRAMA
f = lambda t,y,z: z
g = lambda t,y,z: -3*z -2*y

t0 = 0
y0 = 0
z0 = -5

h = 0.1
tn = 6
muestras = int((tn-t0)/h)

tabla = rungekutta2_fg(f,g,t0,y0,z0,h,muestras)
ti = tabla[:,0]
yi = tabla[:,1]
zi = tabla[:,2]

# SALIDA
np.set_printoptions(precision=6)
print('t, y, z')
print(tabla)

# GRAFICA
plt.plot(ti,yi, label='y(t)')

plt.ylabel('y(t)')
plt.xlabel('t')
plt.title('Runge-Kutta 2do Orden d2y/dx2 ')
plt.legend()
plt.grid()
plt.show()

s3Eva_2021PAOI_T2 Tensiones mínimas en cables por carga variable

Ejercicio: 3Eva_2021PAOI_T2 Tensiones mínimas en cables por carga variable

El ejercicio usa el resultado del tema anterior, planteando una función de Python como la solución para valores dados. Se requiere una función, para disponer de los valores solución en cada llamada para el intervalo de análisis.

Por lo que básicamente lo que se pide es usar algún algoritmo de búsqueda de raíces. Para simplicidad en la explicación se toma el algoritmo de la bisección.

Los resultados se grafican como theta vs Tensiones, y el punto a buscar es cuando las tensiones en los cables son de igual magnitud, es decir:

TCA = TCB

Resultando en :

Resultado: [TCA, TCB], diferencia
[array([3.46965006e-14, 4.00000000e+02]), -399.99999999999994]
tetha, TCA, TCB
[[-2.61799388e-01  3.46965006e-14  4.00000000e+02]
 [-1.74532925e-01  3.70996817e+01  3.85789041e+02]
 [-8.72664626e-02  7.39170124e+01  3.68641994e+02]
 [ 8.32667268e-17  1.10171790e+02  3.48689359e+02]
 [ 8.72664626e-02  1.45588094e+02  3.26082988e+02]
 [ 1.74532925e-01  1.79896384e+02  3.00994928e+02]
 [ 2.61799388e-01  2.12835554e+02  2.73616115e+02]
 [ 3.49065850e-01  2.44154918e+02  2.44154918e+02]
 [ 4.36332313e-01  2.73616115e+02  2.12835554e+02]
 [ 5.23598776e-01  3.00994928e+02  1.79896384e+02]
 [ 6.10865238e-01  3.26082988e+02  1.45588094e+02]
 [ 6.98131701e-01  3.48689359e+02  1.10171790e+02]
 [ 7.85398163e-01  3.68641994e+02  7.39170124e+01]
 [ 8.72664626e-01  3.85789041e+02  3.70996817e+01]]
       raiz en:  0.34898062924398343 radianes
       raiz en:  19.995117187500004 grados
error en tramo:  8.522115488257542e-05
>>> 

Instrucciones en Python

se añaden las instrucciones de la bisección al algoritmo del tema anterior, para encontrar el punto de intersección,

import numpy as np
import matplotlib.pyplot as plt

# Tema 1
def funcion(P,theta,alfa,beta):
    # ecuaciones
    A = np.array([[np.cos(alfa), -np.cos(beta)],
                  [np.sin(alfa),  np.sin(beta)]])
    B = np.array([P*np.sin(theta), P*np.cos(theta)])

    # usar un algoritmo directo
    X = np.linalg.solve(A,B)
    
    diferencia = X[0]-X[1]
    return([X,diferencia])    

# INGRESO
alfa = np.radians(35)
beta = np.radians(75)
P = 400

# PROCEDIMIENTO
theta = beta-np.radians(90)
resultado = funcion(P,theta,alfa, beta)

# SALIDA
print("Resultado: [TCA, TCB], diferencia")
print(resultado)

# Tema 1b --------------
# PROCEDIMIENTO
dtheta = np.radians(5)
theta1 = beta-np.radians(90)
theta2 = np.radians(90)-alfa

tabla = []
theta = theta1
while not(theta>=theta2):
    X = funcion(P,theta,alfa,beta)[0] # usa vector X
    tabla.append([theta,X[0],X[1]])
    theta = theta + dtheta
    
tabla = np.array(tabla)
thetai = np.degrees(tabla[:,0])
Tca = tabla[:,1]
Tcb = tabla[:,2]

# SALIDA
print('tetha, TCA, TCB')
print(tabla)

# Grafica
plt.plot(thetai,Tca, label='Tca')
plt.plot(thetai,Tcb, label='Tcb')
# plt.axvline(np.degrees(c))
plt.legend()
plt.xlabel('theta')
plt.ylabel('Tensión')
plt.show()


# Tema 2 -------------------------
# busca intersección con Bisección
diferencia = Tca-Tcb
donde_min  = np.argmin(np.abs(diferencia))
a = tabla[donde_min-1,0]
b = tabla[donde_min+1,0]
tolera = 0.0001

tramo = b-a
while not(tramo<tolera):
    c = (a+b)/2
    fa = funcion(P,a,alfa,beta)[1] # usa delta
    fb = funcion(P,b,alfa,beta)[1]
    fc = funcion(P,c,alfa,beta)[1]
    cambia = np.sign(fa)*np.sign(fc)
    if cambia < 0: 
        a = a
        b = c
    if cambia > 0:
        a = c
        b = b
    tramo = b-a

# SALIDA
print('       raiz en: ', c,"radianes")
print('       raiz en: ', np.degrees(c),"grados")
print('error en tramo: ', tramo)

# Grafica
plt.plot(thetai,Tca, label='Tca')
plt.plot(thetai,Tcb, label='Tcb')
plt.axvline(np.degrees(c))
plt.legend()
plt.xlabel('theta')
plt.ylabel('Tensión')
plt.show()

s3Eva_2021PAOI_T1 Tensiones en cables por carga variable

Ejercicio: 3Eva_2021PAOI_T1 Tensiones en cables por carga variable

Planteamiento del problema

Las ecuaciones de equilibrio del sistema corresponden a:

-T_{CA} \cos (\alpha) + T_{CB} \cos (\beta) + P \sin (\theta) = 0 T_{CA} \sin (\alpha) + T_{CB} \sin (\beta) - P \cos (\theta) = 0

se reordenan considerando que P y θ son valores constantes para cualquier caso

T_{CA} \cos (\alpha) - T_{CB} \cos (\beta) = P \sin (\theta) T_{CA} \sin (\alpha) + T_{CB} \sin (\beta) = P \cos (\theta)

se convierte a la forma matricial

\begin{bmatrix} \cos (\alpha) & -\cos (\beta) \\ \sin (\alpha) & \sin (\beta) \end{bmatrix} \begin{bmatrix} T_{CA} \\ T_{CB} \end{bmatrix} = \begin{bmatrix} P \sin (\theta) \\ P \cos (\theta) \end{bmatrix}

tomando valores por ejemplo:

α = 35°, β = 75°, P = 400 lb, Δθ = 5°

θ = 75-90 = -15

\begin{bmatrix} \cos (35) & -\cos (75) \\ \sin (35) & \sin (75) \end{bmatrix} \begin{bmatrix}T_{CA} \\ T_{CB} \end{bmatrix} = \begin{bmatrix} 400 \sin (-15) \\ 400 \cos (15) \end{bmatrix}

Desarrollo analítico

matriz aumentada

\begin{bmatrix} \cos (35) & - \cos (75) & 400 \sin (-15) \\ \sin (35) & \sin (75 ) & 400 \cos (15 ) \end{bmatrix}
A = 
[[ 0.81915204 -0.25881905]
 [ 0.57357644  0.96592583]]
B = 
[-103.52761804  386.37033052]

AB = 
[[ 0.81915204 -0.25881905 -103.52761804]
 [ 0.57357644  0.96592583 386.37033052]]

Pivoteo parcial por filas

cos(-15°) tendría mayor magnitud que sin(-15°), por lo que la matriz A se encuentra pivoteada

Eliminación hacia adelante

pivote =  0.81915204/0.57357644
[[ 0.81915204 -0.25881905 -103.52761804]
 [ 0.0         1.63830408  655.32162903]]

Sustitución hacia atras

usando la última fila:

1.63830408 TCB = 655.32162903
TCB = 400

luego la primera fila:

0.81915204TCA -0.25881905TCB = -103.52761804

0.81915204TCA = 0.25881905TCB  -103.52761804

TCA = 2,392 x10-6 ≈ 0

Se deja como tarea realizar el cálculo para:  θ+Δθ

Instrucciones en Python

Resultado:

Resultado: [TCA, TCB], diferencia 
[array([3.46965006e-14, 4.00000000e+02]), -399.99999999999994]

usando el intervalo para θ1 y θ2:

con las instrucciones:

import numpy as np
import matplotlib.pyplot as plt

# Tema 1
def funcion(P,theta,alfa,beta):
    # ecuaciones
    A = np.array([[np.cos(alfa), -np.cos(beta)],
                  [np.sin(alfa),  np.sin(beta)]])
    B = np.array([P*np.sin(theta), P*np.cos(theta)])

    # usar un algoritmo directo
    X = np.linalg.solve(A,B)
    
    diferencia = X[0]-X[1]
    return([X,diferencia])    

# INGRESO
alfa = np.radians(35)
beta = np.radians(75)
P = 400

# PROCEDIMIENTO
theta = beta-np.radians(90)
resultado = funcion(P,theta,alfa, beta)

# SALIDA
print("Resultado: [TCA, TCB], diferencia")
print(resultado)

# Tema 1b --------------
# PROCEDIMIENTO
dtheta = np.radians(5)
theta1 = beta-np.radians(90)
theta2 = np.radians(90)-alfa

tabla = []
theta = theta1
while not(theta>=theta2):
    X = funcion(P,theta,alfa,beta)[0] # usa vector X
    tabla.append([theta,X[0],X[1]])
    theta = theta + dtheta
    
tabla = np.array(tabla)
thetai = np.degrees(tabla[:,0])
Tca = tabla[:,1]
Tcb = tabla[:,2]

# SALIDA
print('tetha, TCA, TCB')
print(tabla)

# Grafica
plt.plot(thetai,Tca, label='Tca')
plt.plot(thetai,Tcb, label='Tcb')
# plt.axvline(np.degrees(c))
plt.legend()
plt.xlabel('theta')
plt.ylabel('Tensión')
plt.show()

3Eva_2021PAOI_T4 Integral con Cuadratura Gaussiana

3ra Evaluación 2021-2022 PAO I. 14/Septiembre/2021

Tema 4 (30 puntos) Aproximar el siguiente integral usando Cuadratura Gaussiana

\int_0^{\pi/4} x^2 \sin (x) \delta x

a) Usado dos segmentos o tramos, y para dos puntos, n=2

b) compare sus resultados con n=3

c) Calcule error entre resultados

Referencia: Burden 8th Edition. Ejercicios 4.7 d.

Rúbrica: Planteo del ejercicio (5 puntos), literal a, con expresiones y valores completos (10 puntos), literal b, con n=3 (10 puntos). literal c (5 puntos).

3Eva_2021PAOI_T3 Respuesta a entrada cero en un sistema LTIC

3ra Evaluación 2021-2022 PAO I. 14/Septiembre/2021

Tema 2 (30 puntos) Para un circuito eléctrico mostrado en la figura, conocido también como un sistema LTIC (lineal contínuo invariante en el tiempo), la “respuesta a entrada cero” corresponde al comportamiento de la corriente y(t) cuando no se aplica una señal de entrada x(t) = 0.

La expresión que describe la relación de entrada x(t) y salida y(t) que permite analizar el sistema en un intervalo de tiempo es:

\frac{\delta^2 y(t)}{\delta t^2}+3 \frac{\delta y(t)}{ \delta t}+2 y(t) = \frac{\delta x(t)}{\delta t} =0

Los componentes inductores y capacitores almacenan energía representada como condiciones iniciales y0(t) =0 , y’0(t) =-5

Considere como de interés el intervalo de tiempo entre [0,6] con al menos 60 tramos.

a) Realice el planteamiento para encontrar y(t) con las condiciones dadas, usando el método de Runge-Kutta de 2do orden

b) Desarrolle tres iteraciones con expresiones y valores, mostrando el uso del método anterior.

Referencia: Lathi B.P and Green R.A.(2018). Capítulo 2.1 p151.Linear Systems and Signals Third Edition. Oxford University Press.
http://blog.espol.edu.ec/telg1001/ltic-respuesta-entrada-cero-con-python/

Rúbrica: Planteo de ejercicio para el método requerido (5 puntos), tamaño de paso (5 puntos), iteraciones completas (15 puntos), desarrollo algorítmico, gráfica (5 puntos)

3Eva_2021PAOI_T2 Tensiones mínimas en cables por carga variable

3ra Evaluación 2021-2022 PAO I. 14/Septiembre/2021

Tema 2 (20 puntos) Continuando con el ejercicio del tema anterior de la carga con dos cables, se requiere encontrar:

a) El valor de θ para el cual la tensión en los dos cables es la mínima posible. Use un algoritmo para encontrar las raíces, es decir TCA=TCB

b) Desarrolle al menos 2 iteraciones

c) El valor correspondiente de la tensión.

Nota: Plantear la solución del problema anterior como una función en Python, para usarla como parte del desarrollo de éste tema

Rúbrica: Planteamiento completo del ejercicio (5 puntos), desarrollo de expresiones  (10 puntos), literal b (5 puntos)