Autor: Edison Del Rosario

  • 3Eva_2023PAOII_T2 perfil de un peón

    3ra Evaluación 2023-2024 PAO II. 15/Febrero/2024

    Tema 2 (30 puntos) Las medidas del perfil de un objeto se describen por medio de los siguientes puntos:

    xi 0 3 5 9.985 14.97 17.97 40.04 43.29 51.64560 60
    yi 15 15 13.25 14.155 9.676 9.676 4.64 4.64 8.976 0

    perfil de un peon 01a. Plantee el o los polinomios de interpolación P(x) que describan el perfil del objeto en el intervalo
    [0, 14.97] . Justifique la selección del método de interpolación polinómica.

    b. Desarrolle los polinomios planteados de forma analítica.

    c. Estime el mayor error sobre el o los datos en el intervalo [5, 9.985]. Use como referencia la ecuación del círculo del tema anterior.

    d. Escriba sus conclusiones y recomendaciones sobre los resultados obtenidos. Adjunte los archivos realizados como algoritmos.py, resultados.txt y gráficas.png

    Rúbrica: literal a (9 puntos), literal b (12 puntos), literal c (6 puntos), literal d (3 puntos)

    xi=[ 0, 3, 5.  , 9.985 , 14.97 , 17.97, 40.04, 43.29, 51.6449, 60]
    yi=[15,15,13.25,14.1552, 9.6768,  9.67,  4.64,  4.64,  8.9768, 0.]
    
  • s3Eva_2023PAOII_T2 perfil de un peón

    Ejercicio: 3Eva_2023PAOII_T2 perfil de un peón

    literal a y b

    perfil de un peon 01Para el planteamiento de los polinomios, es necesario observar la gráfica proporcionada para el ejercicio y la correspondiente tabla de datos:

    xi 0 3 5 9.985 14.97 17.97 40.04 43.29 51.6456 60
    yi 15 15 13.25 14.155 9.676 9.676 4.64 4.64 8.976 0

    Para el intervalo [0,3], El perfil se describe con una constante, por lo tanto:

    p_1(x) = 15

    Para el intervalo [3,5] el perfil se describe como una recta con pendiente negativa.

    p_2(x) =a_0 + a_1 x a_1 = \frac{ 13.25-15}{5-3} = -0.875 p_2(5) = 13.25 =a_0 -0.875 (5) a_0 = 13.25 +0.875 (5) = 17.625 p_2(x) = -0.875 x + 17.625

    Para el con los puntos xi = [5, 9.985, 14.97] el perfil se describe con tres puntos, por lo que el polinomio de interpolación puede ser de grado 2. Usando el método de Lagrange:

    p_3(x) =\frac{(x-9.985)( x-14.97)}{(5-9.985)( 5-14.97)} 13.25 + +\frac{(x-5)( x-14.97)}{(9.985-5)( 9.985-14.97)} 14.155 + +\frac{(x-5)( x-9.985)}{(14.97-5)( 14.97-9.985)} 9.676 +

    simplificando la expresión con Python y Sympy:

    P_3(x) = -0.1083 x^2 + 1.8047 x + 6.9341

    interpola peon 01

    literal c

    El error para los polinomios acorde a la gráfica proporcionada es cero para los tramos [0,3] y [3,5], dado que el primero es una constante y el segundo es una recta con pendiente.

    El error de mayor magnitud se presenta con la interpolación entre el círculo de la ecuación del tema 1 y el polinomio de grado 2 en el intervalo [5, 14.97]. Tomando como ejemplo el punto intermedio del tramo derecho en:

    x_k = \frac{14.97-5}{4} + 9.985= 12.4775 p_3(12.4775) = -0.1083(12.4775)^2 + 1.8047(12.4775) + 6.9341 = 12.5889 f(12.4775) = \sqrt{6.7^2-(12.4775-8.6)^2} + 7.6 = 13.0639 errado = |p_3(12.4775) - f(12.4775)| = 0.4750

    literal d

    Se puede mejorar la aproximación del polinomio aumentando el grado y número de puntos a usar dentro del intervalo. El resultado se debería acercar mas al perfil superior del círculo de referencia del tema 1.

    Resultados para el intervalo [5, 14.97]

        valores de fi:  [13.25   14.1552  9.6768]
    divisores en L(i):  [ 49.70045  -24.850225  49.70045 ]
    
    Polinomio de Lagrange, expresiones
    0.266597183727713*(x - 14.97)*(x - 9.985) 
    - 0.569620596996607*(x - 14.97)*(x - 5.0) 
    + 0.194702462452553*(x - 9.985)*(x - 5.0)
    
    Polinomio de Lagrange: 
    -0.108320950816341*x**2 + 1.80477420224566*x + 6.93415275918024
    

    Instrucciones Python

    # 3Eva_2023PAOII_T2 perfil de un peón
    import sympy as sym
    import numpy as np
    import matplotlib.pyplot as plt
    
    # INGRESO
    xj=[ 0, 3, 5.  , 9.985 , 14.97 , 17.97, 40.04, 43.29, 51.6449, 60]
    yj=[15,15,13.25,14.1552, 9.6768,  9.67,  4.64,  4.64,  8.9768, 0.]
    
    
    #  Datos de prueba
    ia = 2
    ib = 4+1
    xi = np.array(xj[ia:ib])
    fi = np.array(yj[ia:ib])
    
    g = lambda x: np.sqrt(6.7**2-(x-8.6)**2) + 7.6
    muestras = 21
    
    # PROCEDIMIENTO
    # Polinomio de Lagrange
    n = len(xi)
    x = sym.Symbol('x')
    polinomio = 0
    divisorL = np.zeros(n, dtype = float)
    for i in range(0,n,1):
        
        # Termino de Lagrange
        numerador = 1
        denominador = 1
        for j  in range(0,n,1):
            if (j!=i):
                numerador = numerador*(x-xi[j])
                denominador = denominador*(xi[i]-xi[j])
        terminoLi = numerador/denominador
    
        polinomio = polinomio + terminoLi*fi[i]
        divisorL[i] = denominador
    
    # simplifica el polinomio
    polisimple = polinomio.expand()
    
    # para evaluación 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)
    gi = g(pxi)
    
    # SALIDA
    print('    valores de fi: ',fi)
    print('divisores en L(i): ',divisorL)
    print()
    print('Polinomio de Lagrange, expresiones')
    print(polinomio)
    print()
    print('Polinomio de Lagrange: ')
    print(polisimple)
    
    # Gráfica
    plt.plot(xi,fi,'o', label = 'Puntos')
    plt.plot(pxi,pfi, label = 'Polinomio')
    plt.plot(pxi,gi, label = 'g(x)')
    plt.legend()
    plt.xlabel('xi')
    plt.ylabel('fi')
    plt.title('Interpolación Lagrange')
    plt.grid()
    plt.show()
    

     

  • 3Eva_2023PAOII_T1 Intersección con círculo

    3ra Evaluación 2023-2024 PAO II. 15/Febrero/2024

    Tema 1 (30 puntos) Encuentre las raíces de las ecuaciones simultaneas siguientes:

    2y+1.75 x= 35.25 (y-7.6)^2 + (x-8.6)^2 = (6.7)^2

    a. Use el enfoque gráfico para obtener los valores iniciales. Presente la gráfica realizada con Python.
    b. Encuentre un intervalo apropiado para aproximar este valor mediante el método de Newton-Raphson
    c. Realice al menos 3 iteraciones de forma analítica, usando tolerancia de 10-4
    d. Realice el análisis de la convergencia del método.
    Adjunte los archivos realizados como algoritmos.py, resultados.txt y gráficas.png

    Rúbrica: literal a (5 puntos), literal b (5 puntos), iteraciones(9 puntos), errores entre iteraciones (6 puntos), análisis de convergencia (5 puntos).

  • s3Eva_2023PAOII_T1 Intersección con círculo

    Ejercicio: 3Eva_2023PAOII_T1 Intersección con círculo
    Encuentre las raíces de las ecuaciones simultaneas siguientes:

    literal a y b

    Use el enfoque gráfico para obtener los valores iniciales.

    2y+1.75 x = 35.25 (y-7.6)^2 + (x-8.6)^2 = (6.7)^2

    se despeja la variable dependiente de cada ecuación, para la primera:

    f(x) = y = \frac{35.25}{2} - \frac{1.75}{2} x

    para la segunda:

    (y-7.6)^2 = (6.7)^2 - (x-8.6)^2 g(x) = y = \sqrt{(6.7)^2 - (x-8.6)^2} + 7.6

    Al buscar la intersección entre f(x) y g(x) se puede encontrar con la raiz de:

    distancia(x) = f(x) - g(x) distancia(x) = \Big( \frac{35.25}{2} - \frac{1.75}{2} x\Big) - \Big(\sqrt{(6.7)^2 - (x-8.6)^2} + 7.6\Big)

    La primera ecuación es una recta, por lo que no aporta a las cotas de la gráfica.

    La segunda ecuación es la general de un círculo centrado en (7.6, 8.6) y radio 6.7, por lo que se considera el intervalo para la gráfica entre:

    [7.6 -6.7, 7.6+6.7] [0.9, 14.3]

    Con lo que se puede formar la gráfica de la parte superior del círculo en Python:

    interseccion con circulo

    Instrucciones en Python

    # 3Eva_2023PAOII_T1 Intersección con círculo
    import numpy as np
    import matplotlib.pyplot as plt
    
    # INGRESO
    f = lambda x: -(1.75/2)*x + (35.25/2)
    g = lambda x: np.sqrt(6.7**2-(x-8.6)**2) + 7.6
    distancia = lambda x: f(x)- g(x)
    
    a = 0.5
    b = 16
    muestras = 21
    
    # PROCEDIMIENTO
    # literal a y b
    xi = np.linspace(a,b,muestras)
    fi = f(xi)
    gi = g(xi)
    dist_i = distancia(xi)
    
    # SALIDA - Grafica
    # literal a y b
    plt.plot(xi,fi, label='f(x)')
    plt.plot(xi,gi, label='g(x)')
    plt.plot(xi,dist_i, label='f(x)-g(x)')
    plt.axhline(0, color='black', linestyle='dashed')
    plt.axvline(5, color='red', linestyle='dashed')
    plt.xlabel('x')
    plt.ylabel('y')
    plt.legend()
    plt.grid()
    plt.show()
    

    literal c

    Un punto inicial de búsqueda dentro del intervalo puede ser x0=3.

    Para Newton-Raphson se usa:

    f(x) = \Big( \frac{35.25}{2} - \frac{1.75}{2} x\Big) - \Big(\sqrt{(6.7)^2 - (x-8.6)^2} + 7.6\Big) \frac{d}{dx}f(x) = -\frac{8.6(0.1162-0.0135x)}{\sqrt{0.0609-(0.1162x-1)^2}}-0.875

    (derivada obtenida con sympy)

    itera = 0 ; xi = 3

    f(3) = \Big( \frac{35.25}{2} - \frac{1.75}{2} (3)\Big) - \Big(\sqrt{(6.7)^2 - ((3)-8.6)^2} + 7.6\Big) \frac{d}{dx}f(3) = -\frac{8.6(0.1162-0.0135(3))}{\sqrt{0.0609-(0.1162(3)-1)^2}}-0.875 x_1 = x_0 - \frac{f(3)}{\frac{d}{dx}f(3)} = 4.55 tramo = |4.55-3| = 1.55

    itera = 1 ; xi = 4.55

    f(3) = \Big( \frac{35.25}{2} - \frac{1.75}{2} (4.55)\Big) - \Big(\sqrt{(6.7)^2 - ((4.55)-8.6)^2} + 7.6\Big) \frac{d}{dx}f(3) = -\frac{8.6(0.1162-0.0135(4.55))}{\sqrt{0.0609-(0.1162(4.55)-1)^2}}-0.875 x_2 = x_1 - \frac{f(4.55)}{\frac{d}{dx}f(4.55)} = 4.98 tramo = |4.98-4.55| = 0.43

    itera = 2 ; xi = 4.98

    f(3) = \Big( \frac{35.25}{2} - \frac{1.75}{2} (4.98)\Big) - \Big(\sqrt{(6.7)^2 - ((4.98)-8.6)^2} + 7.6\Big) \frac{d}{dx}f(3) = -\frac{8.6(0.1162-0.0135(4.98))}{\sqrt{0.0609-(0.1162(4.98)-1)^2}}-0.875 x_3 = x_2 - \frac{f(4.98)}{\frac{d}{dx}f(4.98)} = 4.99 tramo = |4.99-4.98| = 0.01

    literal d

    El error disminuye en cada iteración, por lo que el método converge.

    Con el algoritmo se muestra que converge a x=5

    dfg(x) = 
         8.6*(0.116279069767442 - 0.0135208220659816*x)          
    - --------------------------------------------------- - 0.875
         ________________________________________________        
        /                                              2         
      \/  0.606949702541915 - (0.116279069767442*x - 1)          
    
    ['xi', 'xnuevo', 'tramo']
    [[3.0000e+00 4.5524e+00 1.5524e+00]
     [4.5524e+00 4.9825e+00 4.3018e-01]
     [4.9825e+00 4.9995e+00 1.6999e-02]
     [4.9995e+00 4.9996e+00 2.3865e-05]]
    raiz en:  4.9995611025201585
    con error de:  2.3865455016647275e-05

    Instrucciones en Python

    # 3Eva_2023PAOII_T1 Intersección con círculo
    import sympy as sym
    import numpy as np
    import matplotlib.pyplot as plt
    
    # INGRESO
    # forma algebraica con sympy
    x = sym.Symbol('x')
    f = -(1.75/2)*x + (35.25/2)
    g = sym.sqrt(6.7**2-(x-8.6)**2) + 7.6
    distancia = f - g
    
    x0 = 3
    tolera = 0.0001 # 1e-4
    
    # PROCEDIMIENTO
    # literal c
    dfg = sym.diff(distancia,x)
    # convierte a forma numerica con numpy
    # Newton-Raphson
    fx = sym.lambdify(x,distancia)
    dfx = sym.lambdify(x,dfg)
    
    tabla = []
    tramo = abs(2*tolera)
    xi = x0
    while (tramo>=tolera):
        xnuevo = xi - fx(xi)/dfx(xi)
        tramo  = abs(xnuevo-xi)
        tabla.append([xi,xnuevo,tramo])
        xi = xnuevo
    
    # convierte la lista a un arreglo.
    tabla = np.array(tabla)
    n = len(tabla)
    
    # SALIDA
    print('dfg(x) = ')
    sym.pprint(dfg)
    print()
    print(['xi', 'xnuevo', 'tramo'])
    np.set_printoptions(precision = 4)
    print(tabla)
    print('raiz en: ', xi)
    print('con error de: ',tramo)
    
  • 2Eva_2023PAOII_T3 EDP desarrolle expresión

    2ra Evaluación 2023-2024 PAO II. 30/Enero/2024

    Tema 3 (30 puntos) Para la siguiente Ecuación Diferencial Parcial con b = 2, resuelva usando las condiciones mostradas

    \frac{\partial ^2 u}{\partial x^2} + b\frac{\partial u}{\partial x} = \frac{\partial u}{\partial dt}
    0 < x < 1

    0 < t < 0.5

    Condiciones de frontera:
    u(0,t)=0, u(1,t)= 1, 0≤t≤0.5
    Condiciones iniciales:
    u(x,0)=0, 0≤x≤1

    Utilice diferencias finitas centradas y hacia adelante para las variables independientes x,t

    a. Plantee las ecuaciones para usar un método numérico en un nodo i,j

    b. Realice la gráfica de malla,

    c. Desarrolle y obtenga el modelo discreto para u(xi,tj)

    d. Realice al menos tres iteraciones en el eje tiempo.

    e. Estime el error de u(xi,tj) y adjunte los archivos del algoritmo y resultados.

    f. Con el algoritmo, estime la solución para b = 0 y b=-4. Realice las observaciones de resultados para cada caso.

    Rúbrica: Aproximación de las derivadas parciales (5 puntos), construcción de la malla (5), desarrollo de iteraciones (10), literal e (10 puntos), literal f (5 puntos extra)

    Referencia: EDP Parabólicas. Chapra & Canale. 5ta Ed. Ejercicio 30.15. P.904

  • s2Eva_2023PAOII_T2 EDO Cable cuelga entre apoyos A y B

    Ejercicio: 2Eva_2023PAOII_T2 EDO Cable cuelga entre apoyos A y B

    Literal a

    La ecuación diferencial a resolver es:

    \frac{d^2y}{dx^2} = \frac{w_0}{T_0} \Big[ 1+ \sin \Big(\frac{\pi x}{2l_B} \Big) \Big]

    donde w0 = 1 000 lbs/ft, T0. = 0.588345×106.
    dy(0)/dx = 0 y lB=200 de la gráfica presentada.

    \frac{d^2y}{dx^2} = \frac{1000}{0.588345×10^6} \Big[ 1+ \sin \Big(\frac{\pi x}{2(200)} \Big) \Big]

    Para usar Runge Kutta para segunda derivada:

    z= y' = f(x,y,z) z' = (y')' = 0z + \frac{1000}{0.588345×10^6} \Big[ 1+ \sin \Big(\frac{\pi x}{2(200)} \Big) \Big] g(x,y,z) = \frac{1}{0.588345×10^3} \Big[ 1+ \sin \Big(\frac{\pi x}{2(200)} \Big) \Big]

    los valores iniciales para el ejercicio acorde al enunciado son: x0 = 0, y0=0, z0 = 0, con h=0.5

    literal b

    para itera 0

    K1y = h*z = 0.5*0 = 0 K1z = (0.5)\frac{1}{0.588345×10^3} \Big[ 1+ \sin \Big(\frac{\pi (0)}{2(200)} \Big) \Big] = 0.0008498 K2y = h*(z+K1z) = (0.5) (0+0.00084984) = 0.0004249 K2z = (0.5)\frac{1}{0.588345×10^3} \Big[ 1+ \sin \Big(\frac{\pi (0+0.5)}{2(200)} \Big) \Big] =0.0008531 y = 0+\frac{0+0.0004249}{2} = 0.0002124 z = 0+\frac{0.0008498+0.0008531}{2} = 0.0008515 x = 0 + 0.5 = 0.5

    ...

    Desarrollar dos iteraciones adicionales como tarea.

    Para las primeras iteraciones de un total de 400+1, los valores con Python y en resultados.txt :

    estimado[xi,yi,zi,K1y,K2y,K1z,K2z]
    [0.0000 0.0000e+00 0.0000e+00 
    0.0000e+00 0.0000e+00 
    0.0000e+00 0.0000e+00]
    
    [0.5000 2.124603761398499073e-04 8.515101601627471980e-04 
    0.000000000000000000e+00 4.249207522796998146e-04 
    8.498415045593996292e-04 8.531788157660947667e-04]
    
    [1.0000 8.515101601627470896e-04 1.706357605799455881e-03 
    4.257550800813735990e-04 8.523444879644209281e-04 
    8.531788157660947667e-04 8.565160755073224913e-04]
    
    [1.5000 1.918817981939305653e-03 2.564542259712321911e-03 
    8.531788028997279406e-04 1.281436840653389295e-03 
    8.565160755073224913e-04 8.598532323184093513e-04]
    
    [2.0000 3.416052419875068892e-03 3.426063993239661116e-03 
    1.282271129856160955e-03 1.712197746015365740e-03 
    8.598532323184093513e-04 8.631902347362692754e-04]
    ...
    

    literal c

    resultado en archivo.txt al ejecutar el algoritmo.

    literal d

    cable entre apoyos A y B

    Algoritmo con Python

    # 2Eva_2023PAOII_T2 Cable cuelga entre apoyos A y B
    import numpy as np
    
    def rungekutta2_fg(f,g,x0,y0,z0,h,muestras):
        tamano = muestras + 1
        estimado = np.zeros(shape=(tamano,3+4),dtype=float)
    
        # incluye el punto [x0,y0,z0]
        estimado[0] = [x0,y0,z0,0,0,0,0]
        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,K1y,K2y,K1z,K2z]
        return(estimado)
    
    # PROGRAMA PRUEBA
    # Ref Rodriguez 9.1.1 p335 ejemplo.
    # prueba y'-y-x+(x**2)-1 =0, y(0)=1
    
    # INGRESO
    T0 = 0.588345e6
    LB = 200
    f = lambda x,y,z: z
    g = lambda x,y,z: (1000/T0)*(1+np.sin(np.pi*x/(2*LB)))
    x0 = 0
    y0 = 0
    z0 = 0
    h  = 0.5
    muestras = 401
    
    # PROCEDIMIENTO
    puntosRK2 = rungekutta2_fg(f,g,x0,y0,z0,h,muestras)
    xi = puntosRK2[:,0]
    yiRK2 = puntosRK2[:,1]
    
    # SALIDA
    np.set_printoptions(precision=4)
    print('estimado[xi,yi,zi,K1y,K2y,K1z,K2z]')
    print(puntosRK2)
    np.savetxt("tablaRk2.txt",puntosRK2)
    
    
    # Gráfica
    import matplotlib.pyplot as plt
    
    plt.plot(xi[0],yiRK2[0],
             'o',color='r', label ='[x0,y0]')
    plt.plot(xi[1:],yiRK2[1:],
             color='m',
             label ='y Runge-Kutta 2 Orden')
    
    plt.title('EDO: Solución con Runge-Kutta 2do Orden')
    plt.xlabel('x')
    plt.ylabel('y')
    plt.legend()
    plt.grid()
    plt.show()
    

     

  • 2Eva_2023PAOII_T2 EDO Cable cuelga entre apoyos A y B

    2ra Evaluación 2023-2024 PAO II. 30/Enero/2024

    Tema 2 (40 puntos) Un cable cuelga de dos apoyos en A y B. cable colgante entre apoyos

    El cable sostiene una carga distribuida cuya magnitud varía con x según la ecuación

    w = w_0 \Big[ 1+ \sin \Big(\frac{\pi x}{2l_B} \Big) \Big]

    donde w0 = 1 000 lbs/ft y T0. = 0.588345x106.
    La pendiente del cable (dy/dx) = 0 en x = 0, que es el punto más bajo del cable.

    También es el punto donde la tensión del cable alcanza un mínimo de T0. La ecuación diferencial que gobierna el cable es

    \frac{d^2y}{dx^2} = \frac{w_0}{T_0} \Big[ 1+ \sin \Big(\frac{\pi x}{2l_B} \Big) \Big]

    a. Realice el planteamiento del ejercicio usando Runge-Kutta de 2do Orden

    b. Desarrolle tres iteraciones para y(x) con tamaño de paso h=0.5

    c. Usando el algoritmo, aproxime la solución para x en el intervalo entre [0,200], adjunte sus resultados.txt en la evaluación.

    d. Realice sus observaciones sobre los resultados obtenidos sobre la altura y(200) alcanzada en el extremo derecho del cable y lo indicado en la gráfica del enunciado.

    Rúbrica: literal a (5 puntos), literal b (15 puntos), literal c resultados.txt (10 puntos), grafica.png (5 puntos), literal d (5 puntos),

    Referencia: Cable entre dos apoyos con carga distribuida. Chapra & Canale. 5ta Ed. Ejercicio 28.21. P849

  • s2Eva_2023PAOII_T1 Volumen por solido de revolución

    Ejercicio: 2Eva_2023PAOII_T1 Volumen por solido de revolución

    Integra Revolucion 02El volumen se calcula a partir de la expresión:

    V = \int_{a}^{b} \pi (f(x))^2 dx

    literal a y c

    Para el volumen con f(x) con al menos 3 tramos y un método de Simpson, directamente se puede usar 3/8. Por lo que se Se reemplaza en la fórmula de volumen del sólido de revolución f(x) con:

    f(x) = \sqrt{\sin (x/2)}

    obteniendo:

    V_{fx} = \int_{a}^{b} \pi \Big(\sqrt{\sin (x/2)} \Big)^2 dx = \int_{a}^{b} \pi \sin (x/2) dx

    La expresión dentro del integral se denomina como fv:

    f_v (x)= \pi \sin (x/2)

    en el intervalo [0.1, 1.8],  con al menos 3 tramos, se requieren 4 muestras con tamaño de paso hf: y truncando a 4 decimales los resultados calculados con Python.

    h_f =\frac{b-a}{tramos} = \frac{1.8-0.1}{3} = 0.5666

    los puntos de muestra quedan np.linspace(0.1,1.8,3+1):

    xis= [0.1, 0.6666, 1.2333, 1.8 ]

    El integral se calcula con los puntos de muestra,

    V_{fx} = \frac{3}{8} (0.5666) \Big( f_v(0.1) +3 f_v(0.6666) + + 3 f_v(1.2333)+ f_v(1.8)\Big)

    recordando que se usa en radianes,

    V_{fx} = \frac{3}{8} (0.5666) \Bigg( \pi \sin \Big(\frac{0.1}{2}\Big) +3 \pi \sin \Big(\frac{0.6666}{2}\Big) + + 3 \pi \sin\Big(\frac{1.2333}{2}\Big)+ \pi \sin \Big(\frac{1.8}{2}\Big)\Bigg) = \frac{3}{8} (0.5666) \Big( 0.1570+3 (1.0279) + + 3 (1.8168)+ 2.4608\Big)

    literal d. el volumen generado por f(x) tiene como resultado:

    V_{fx} = 2.3698

    la cota de error para fx es el orden de O(h5) = O(0.56665) = O(0.05843), queda como tarea completar la cota de error total.

    literal b y c

    Para el volumen con g(x) con al menos 2 tramos y Cuadratura de Gauss de dos puntos, se reemplaza en la fórmula de volumen de sólido de revolución:

    g(x) = e^{x/3} - 1 V_{gx} = \int_{a}^{b} \pi (e^{x/3} - 1)^2 dx

    La expresión dentro del integral se denomina como gv:

    g_v = \pi (e^{x/3} - 1)^2

    en el intervalo [0.1, 1.8],  con al menos 2 tramos, se requieren 3 muestras con tamaño de paso hg:

    h_g =\frac{b-a}{tramos} = \frac{1.8-0.1}{2} = 0.85

    xic = [0.1, 0.95, 1.8 ]

    tramo 1: [0.1, 0.95] , a = 0.1 , b= 0.95, truncando a 4 decimales

    x_a = \frac{0.95+0.1}{2} - \frac{0.95-0.1}{2}\frac{1}{\sqrt{3}} = 0.2796 x_b = \frac{0.95+0.1}{2} + \frac{0.95-0.1}{2}\frac{1}{\sqrt{3}} = 0.7703 g_v(0.2796) = \pi (e^{0.2796/3} - 1)^2 = 0.02998 g_v(0.7703) = \pi (e^{0.7703/3} - 1)^2 = 0.2692 V_{c1} = \frac{0.95-0.1}{2}(g_v(0.2796) + g_v(0.7703)) V_{c1} = \frac{0.95-0.1}{2}(0.02998 + 0.2692) V_{c1} = 0.1271

    tramo 2: [0.95, 1.8] , a = 0.95 , b= 1.8

    x_a = \frac{1.8+0.95}{2} - \frac{1.8-0.95}{2}\frac{1}{\sqrt{3}} = 1.1296 x_b = \frac{1.8+0.95}{2} - \frac{1.8-0.95}{2}\frac{1}{\sqrt{3}} = 1.6203 g_v(1.1296) = \pi (e^{1.1296/3} - 1)^2 = 0.6567 g_v(1.6203) = \pi (e^{1.6203/3} - 1)^2 = 1.6115 V_{c2} = \frac{1.8-0.95}{2}(g_v(1.1296) + g_v(1.6203)) V_{c2} = \frac{1.8-0.95}{2}(0.6567 + 1.6115) V_{c2} = 0.9640

    literal d. volumen generado por g(x)

    V_{gx} = V_{c1} + V_{c2} = 0.1271 + 0.9640 = 1.0912

    completar la cota de error para cuadratura de Gauss de dos puntos.

    literal e. El volumen de revolución se genera como la resta del volumen de f(x) y volumen g(x)

    V = V_{fx} - V_{gx} = 2.3698 - 1.0912 = 1.2785

    Algoritmo con Python

    Los resultados usando el algoritmo con las operaciones usadas en el planteamiento son:

    para f(x):
    xis= [0.1        0.66666667 1.23333333 1.8       ]
    fiv= [0.15701419 1.02791246 1.81684275 2.46089406]
    Volumenfx:  2.369836948864926
    
    para g(x):
    Por tramos: [0.1  0.95 1.8 ]
    xab= [0.2796261355944091, 0.770373864405591,
          1.129626135594409, 1.620373864405591]
    gab= [0.02998177327492598, 0.26928904479784566,
          0.6567986343358181, 1.6115494735531555]
    Vc1= 0.12719009768092793  ; Vc2= 0.964047945852814
    Volumengx:  1.0912380435337419
    
    Volumen solido revolucion: 1.2785989053311841

    Considerando realizar los cálculos para cada sección:

    # 2Eva_2023PAOII_T1 Volumen por solido de revolución
    import numpy as np
    
    # INGRESO
    fx = lambda x: np.sqrt(np.sin(x/2))
    gx = lambda x: np.exp(x/3)-1
    a = 0.1
    b = 1.8
    tramosSimpson = 3
    tramosCGauss = 2
    
    # PROCEDIMIENTO
    # Volumen para f(x) con Simpson
    fv = lambda x: np.pi*np.sin(x/2)
    hs = (b-a)/tramosSimpson
    xis = np.linspace(a,b,tramosSimpson +1)
    fiv = fv(xis)
    Vs = (3/8)*hs*(fiv[0]+3*fiv[1]+3*fiv[2]+ fiv[3])
    
    # Volumen para g(x) con Cuadratura de Gauss
    gv = lambda x: np.pi*(np.exp(x/3)-1)**2
    hc = (b-a)/tramosSimpson
    xic = np.linspace(a,b,tramosCGauss +1)
    # tramo 1
    ac = xic[0]
    bc = xic[1]
    xa = (bc+ac)/2 + (bc-ac)/2*(-1/np.sqrt(3)) 
    xb = (bc+ac)/2 + (bc-ac)/2*(1/np.sqrt(3))
    Vc1 = (bc-ac)/2*(gv(xa)+gv(xb))
    xab = [xa,xb]
    gab = [gv(xa),gv(xb)]
    # tramo 2
    ac = xic[1]
    bc = xic[2]
    xa = (bc+ac)/2 + (bc-ac)/2*(-1/np.sqrt(3)) 
    xb = (bc+ac)/2 + (bc-ac)/2*(1/np.sqrt(3))
    Vc2 = (bc-ac)/2*(gv(xa)+gv(xb))
    Vc = Vc1+Vc2
    xab.append(xa)
    xab.append(xb)
    gab.append(gv(xa))
    gab.append(gv(xb))
    
    # Volumen solido revolucion
    Volumen = Vs - Vc
    
    # SALIDA
    print("para f(x):")
    print("xis=", xis)
    print("fiv=", fiv)
    print("Volumenfx: ",Vs)
    print()
    print("para g(x):")
    print("Por tramos:",xic)
    print("xab=", xab)
    print("gab=", gab)
    print("Vc1=",Vc1," ; Vc2=",Vc2) 
    print("Volumengx: ",Vc)
    print()
    print("Volumen solido revolucion:",Volumen)
    

    para la gráfica presentada en el enunciado (no requerida) , se complementa con las instrucciones:

    Integra Revolucion 02

    # para grafica -------------------
    import matplotlib.pyplot as plt
    muestras = 21 # grafica
    xi = np.linspace(a,b,muestras)
    fi = fx(xi)
    gi = gx(xi)
    xig = np.linspace(a,b,tramosCGauss+1)
    fis = fx(xis)
    gig = gx(xig)
    
    # grafica
    plt.plot(xi,fi, label="f(x)")
    plt.plot(xi,gi, label="g(x)")
    plt.plot([0.0,2.0],[0,0], marker=".", color="blue")
    plt.fill_between(xi,fi,gi,color="lightgreen")
    plt.axhline(0)
    plt.axvline(a, linestyle="dashed")
    plt.axvline(b, linestyle="dashed")
    plt.xlabel('x')
    plt.ylabel('f(x), g(x)')
    plt.legend()
    plt.plot(xis,fis,'.b')
    plt.plot(xig,gig,'.r')
    plt.grid()
    plt.show()

    Gráfica de sólido de revolución en 3D

    sólido de revolución 3D

    Instrucciones en Python

    # 2Eva_2023PAOII_T1 Volumen por solido de revolución
    import numpy as np
    import matplotlib.pyplot as plt
    from mpl_toolkits.mplot3d import axes3d
    
    # INGRESO
    f = lambda x: np.sqrt(np.sin(x/2))
    g = lambda x: np.exp(x/3)-1
    
    # eje x
    xa = 0.1
    xb = 1.8
    xmuestras = 31
    # angulo w de rotación
    w_a = 0
    w_b = 2*np.pi
    w_muestras = 31
    
    # PROCEDIMIENTO
    # muestreo en x y angulo w
    xi = np.linspace(xa, xb, xmuestras)
    wi = np.linspace(w_a, w_b, w_muestras)
    X, W = np.meshgrid(xi, wi)
    
    # evalua f(x) en 3D
    Yf = f(xi)*np.cos(W)
    Zf = f(xi)*np.sin(W)
    
    # evalua g(x) en 3D
    Yg = g(xi)*np.cos(W)
    Zg = g(xi)*np.sin(W)
    
    # SALIDA
    
    # grafica 3D
    figura = plt.figure()
    grafica = figura.add_subplot(111, projection='3d')
    
    grafica.plot_surface(X, Yf, Zf,
                         color='blue', label='f(x)',
                         alpha=0.3, rstride=6, cstride=12)
    grafica.plot_surface(X, Yg, Zg,
                         color='orange', label='g(x)',
                         alpha=0.3, rstride=6, cstride=12)
    
    grafica.set_title('Solidos de revolución')
    grafica.set_xlabel('x')
    grafica.set_ylabel('y')
    grafica.set_zlabel('z')
    # grafica.legend()
    eleva = 45
    rota = 45
    deltaw = 5
    grafica.view_init(eleva, rota)
    
    # rotacion de ejes
    for angulo in range(rota, 360+rota, deltaw ):
        grafica.view_init(eleva, angulo)
        plt.draw()
        plt.pause(.001)
    plt.show()
    
  • 2Eva_2023PAOII_T1 Volumen por solido de revolución

    2da Evaluación 2023-2024 PAO II. 30/Enero/2024

    Tema 1 (30 puntos) Los sólidos de revolución se generan al girar una región plana alrededor de un eje. solido de revolucion 1

    V = \int_{a}^{b} \pi (f(x))^2 dx

    El volumen generado al girar la región de la función f(x) en el intervalo [a,b], se puede calcular como el volumen del disco de radio f(x) y anchura dx. Integra área de Revolucion 02

    f(x) = \sqrt{\sin (x/2)} g(x) = e^{x/3} - 1

    Calcule el volumen de revolución generado por la región sombreada de la gráfica que ese encuentra entre: f(x) y g(x).
    Las funciones se usan en el intervalo [0.1 , 1.8]:

    Realice el planteamiento de las ecuaciones para el ejercicio, considerando que

    a. Para el integral con f(x), use formulas de Simpson con al menos 3 tramos, mientras que

    b. Para el integral con g(x) use Cuadratura de Gauss de dos puntos con al menos 2 tramos.

    c. Desarrolle las expresiones completas del ejercicio para cada función.

    d. Indique el resultado obtenido para el área requerida y la cota de error.

    e. Determine el volumen de revolución generado por la región sombreada

    Rúbrica: literal a (5 puntos), literal b (5 puntos), literal c (10 puntos), literal d (5 puntos), literal e (5 puntos)

    Referencia:  [1] Volúmenes de sólidos de revolución. Moisés Villena Muñoz.Capítulo 4 p78. https://www.dspace.espol.edu.ec/bitstream/123456789/4800/4/7417.pdf
    [2] 8.2.2 Gráficas en 3D en Python, sólidos de revolución. http://blog.espol.edu.ec/ccpg1001/graficas-en-3d-en-python-sistema-de-ecuaciones-y-planos/
    [3] Volumes: Washer Method Animation 2. Stacey Roshan. 24 Abril 2016.

  • 1Eva_2023PAOII_T3 aceleración en avión de acrobacias

    1ra Evaluación 2023-2024 PAO II. 21/Noviembre/2023

    Tema 3. (30 puntos) Por medio del acelerómetro o sensor de fuerzas g de un avión se acrobacias se obtienen datos cada 5 segundos.

    t 0 5 10 15 20 25 30 35 40 45 50
    Aceleración (G) 1 1.2 1.3 2.5 4.5 3.2 1.4 0.0 -0.9 -1.0 0.2

    acrobacias avion 01Para un estudio detallados de la acrobacia realizada se requiere disponer de datos cada segundo
    usando interpolación polinómica con el método de Lagrange.

    a. Plantear el ejercicio describiendo los criterios a usar para el o los polinomios para el eje y.

    b. Desarrolle el método sobre los puntos seleccionados con las expresiones completas desarrolladas con el algoritmo.

    c. Presentar el polinomio resultante y la gráfica usando la resolución requerida para el estudio.

    d. Encuentre el error obtenido entre el polinomio y el o los puntos de prueba de los datos no usados para generar el polinomio.

    e. Adjunte los archivos: algoritmos.py, resultados.txt y gráfica.png del polinomio.

    t = [0,5,10,15,20,25,30,35,40,45,50]
    G = [1,1.2,1.3,2.5,4.5,3.2,1.4,0.0,-0.9,-1.0,0.2]
    

    Rúbrica: literal a (5 puntos), literal b (10 puntos), literal c (5 puntos), literal d (5 puntos), literal e (5 puntos).

    Referencias: [1] VUELO ACROBÁTICO. TDP Club. RTVE. 30 enero 2020

    [2] High intensity aerobatic flying with C.J. Wilson and Kirby Chambliss. Red Bull. 6 mar 2014.