Ejercicio : 1Eva_IT2010_T2_MN Uso de televisores
Para la función dada:
p ( x ) = 1 2 . 5 ( − 1 0 sin ( 1 2 x 7 ) e − 2 4 x 7 + 4 8 x 7 e − 8 x 7 + 0 . 8 ) p(x) =\frac{1}{2.5} \Big(-10 \sin \Big(\frac{12x}{7} \Big) e^{-\frac{24x}{7}} + \frac{48x}{7}e^{-\frac{8x}{7}} + 0.8 \Big) p ( x ) = 2 . 5 1 ( − 1 0 sin ( 7 1 2 x ) e − 7 2 4 x + 7 4 8 x e − 7 8 x + 0 . 8 )
0≤x ≤4
literal a
El enunciado indica encontrar el máximo y luego el mínimo, por lo que la curva bajo análisis es la derivada de la función dp(x)/dx.
Adicionalmente, para encontrar los puntos se requiere usar el método de Newton-Raphson que corresponden a las raíces de dp(x)/dx. La función bajo análisis ahora es la derivada y para el método se usa la derivada: d2 p(x)/dx2 .
Al usar el computador para las fórmulas, se usa la forma simbólica de la función p(x), para obtener dpx y d2px.
primera derivada:
-3.13469387755102*x*exp(-8*x/7)
+ 2.74285714285714*exp(-8*x/7)
+ 13.7142857142857*exp(-24*x/7)*sin(12*x/7)
- 6.85714285714286*exp(-24*x/7)*cos(12*x/7)
segunda derivada:
3.58250728862974*x*exp(-8*x/7)
- 6.26938775510204*exp(-8*x/7)
- 35.265306122449*exp(-24*x/7)*sin(12*x/7)
+ 47.0204081632653*exp(-24*x/7)*cos(12*x/7)
La gráfica requiere la evaluación las funciones, que por simplicidad de evaluación, su formas simbólicas se convierten a su forma ‘lambda’.
Con la gráfica se verifica que la raíz de dp(x)/dx (en naranja) pasa por el máximo y mínimo de p(x) (en azul).
que se obtienen con las siguientes instrucciones en Python:
# 1ra Evaluación I Término 2010
# tema 2. encendido tv
# Tarea: aplicar el método de Newton-Raphson
# solo se muestra la función y sus derivadas 1 y 2
import numpy as np
import sympy as sym
import matplotlib.pyplot as plt
# función bajo análisis en forma simbólica
x = sym.Symbol('x' )
pxs = (1/2.5)*(-10*sym.sin(12*x/7)*sym.exp(-24*x/7) \
+ (48*x/7)*sym.exp(-8*x/7)+0.8)
# derivadas
dpxs = pxs.diff(x,1)
d2pxs = pxs.diff(x,2)
d2pxs = sym.expand(d2pxs)
# SALIDA
print ('primera derivada: ' )
print (dpxs)
print ('segunda derivada: ' )
print (d2pxs)
# conversion a lambda
pxn = sym.utilities.lambdify(x,pxs, 'numpy' )
dpxn = sym.utilities.lambdify(x,dpxs, 'numpy' )
d2pxn = sym.utilities.lambdify(x,d2pxs, 'numpy' )
# observar gráfica
a = 0
b = 4
muestras = 51
tolera = 0.0001
xi = np.linspace(a,b, muestras)
pxi = pxn(xi)
dpxi = dpxn(xi)
d2pxi = d2pxn(xi)
# Gráfica
plt.plot(xi,pxi, label = 'pxi' )
plt.plot(xi,dpxi, label = 'dpxi' )
plt.plot(xi,d2pxi, label = 'd2pxi' )
plt.axhline(0)
plt.legend()
plt.show()
literal b
Usando el método de Newton-Raphson a partir de la primera y segunda derivada según lo planteado, usando x0=0,se tiene:
f ( x ) = − 3 . 1 3 4 6 9 3 8 7 7 5 5 1 0 2 x e ( − 8 x / 7 ) f(x) = -3.13469387755102 x e^{(-8 x/7)} f ( x ) = − 3 . 1 3 4 6 9 3 8 7 7 5 5 1 0 2 x e ( − 8 x / 7 )
+ 2 . 7 4 2 8 5 7 1 4 2 8 5 7 1 4 e ( − 8 x / 7 ) +2.74285714285714 e^{(-8 x/7)} + 2 . 7 4 2 8 5 7 1 4 2 8 5 7 1 4 e ( − 8 x / 7 )
+ 1 3 . 7 1 4 2 8 5 7 1 4 2 8 5 7 e ( − 2 4 x / 7 ) sin ( 1 2 x 7 ) + 13.7142857142857 e^{(-24 x/7)} \sin\Big(\frac{12x}{7}\Big) + 1 3 . 7 1 4 2 8 5 7 1 4 2 8 5 7 e ( − 2 4 x / 7 ) sin ( 7 1 2 x )
− 6 . 8 5 7 1 4 2 8 5 7 1 4 2 8 6 e ( − 2 4 x / 7 ) cos ( 1 2 x 7 ) - 6.85714285714286 e^{(-24x/7)} \cos\Big(\frac{12x}{7}\Big) − 6 . 8 5 7 1 4 2 8 5 7 1 4 2 8 6 e ( − 2 4 x / 7 ) cos ( 7 1 2 x )
f ′ ( x ) = 3 . 5 8 2 5 0 7 2 8 8 6 2 9 7 4 x e ( − 8 x / 7 ) f'(x) = 3.58250728862974 x e^{(- 8 x/7)} f ′ ( x ) = 3 . 5 8 2 5 0 7 2 8 8 6 2 9 7 4 x e ( − 8 x / 7 )
− 6 . 2 6 9 3 8 7 7 5 5 1 0 2 0 4 e ( − 8 x / 7 ) - 6.26938775510204 e^{(- 8 x/7)} − 6 . 2 6 9 3 8 7 7 5 5 1 0 2 0 4 e ( − 8 x / 7 )
− 3 5 . 2 6 5 3 0 6 1 2 2 4 4 9 e ( − 2 4 x / 7 ) sin ( 1 2 x 7 ) - 35.265306122449 e^{(-24x/7)} \sin \Big(\frac{12x}{7}\Big) − 3 5 . 2 6 5 3 0 6 1 2 2 4 4 9 e ( − 2 4 x / 7 ) sin ( 7 1 2 x )
+ 4 7 . 0 2 0 4 0 8 1 6 3 2 6 5 3 e ( − 2 4 x / 7 ) cos ( 1 2 x 7 ) + 47.0204081632653 e^{(-24x/7)} \cos\Big(\frac{12x}{7}\Big) + 4 7 . 0 2 0 4 0 8 1 6 3 2 6 5 3 e ( − 2 4 x / 7 ) cos ( 7 1 2 x )
itera = 0, x0 = 0
f ( 0 ) = − 3 . 1 3 4 6 9 3 8 7 7 5 5 1 0 2 ( 0 ) e ( − 8 ( 0 ) / 7 ) f(0) = -3.13469387755102 (0) e^{(-8 (0)/7)} f ( 0 ) = − 3 . 1 3 4 6 9 3 8 7 7 5 5 1 0 2 ( 0 ) e ( − 8 ( 0 ) / 7 )
+ 2 . 7 4 2 8 5 7 1 4 2 8 5 7 1 4 e ( − 8 ( 0 ) / 7 ) +2.74285714285714 e^{(-8 (0)/7)} + 2 . 7 4 2 8 5 7 1 4 2 8 5 7 1 4 e ( − 8 ( 0 ) / 7 )
+ 1 3 . 7 1 4 2 8 5 7 1 4 2 8 5 7 e ( − 2 4 ( 0 ) / 7 ) sin ( 1 2 ( 0 ) 7 ) + 13.7142857142857 e^{(-24 (0)/7)} \sin\Big(\frac{12(0)}{7}\Big) + 1 3 . 7 1 4 2 8 5 7 1 4 2 8 5 7 e ( − 2 4 ( 0 ) / 7 ) sin ( 7 1 2 ( 0 ) )
− 6 . 8 5 7 1 4 2 8 5 7 1 4 2 8 6 e ( − 2 4 ( 0 ) / 7 ) cos ( 1 2 ( 0 ) 7 ) = − 4 . 1 1 4 3 - 6.85714285714286 e^{(-24(0)/7)} \cos\Big(\frac{12(0)}{7}\Big) = -4.1143 − 6 . 8 5 7 1 4 2 8 5 7 1 4 2 8 6 e ( − 2 4 ( 0 ) / 7 ) cos ( 7 1 2 ( 0 ) ) = − 4 . 1 1 4 3
f ′ ( 0 ) = 3 . 5 8 2 5 0 7 2 8 8 6 2 9 7 4 ( 0 ) e ( − 8 ( 0 ) / 7 ) f'(0) = 3.58250728862974 (0) e^{(- 8 (0)/7)} f ′ ( 0 ) = 3 . 5 8 2 5 0 7 2 8 8 6 2 9 7 4 ( 0 ) e ( − 8 ( 0 ) / 7 )
− 6 . 2 6 9 3 8 7 7 5 5 1 0 2 0 4 e ( − 8 ( 0 ) / 7 ) - 6.26938775510204 e^{(- 8(0)/7)} − 6 . 2 6 9 3 8 7 7 5 5 1 0 2 0 4 e ( − 8 ( 0 ) / 7 )
− 3 5 . 2 6 5 3 0 6 1 2 2 4 4 9 e ( − 2 4 ( 0 ) / 7 ) sin ( 1 2 ( 0 ) 7 ) - 35.265306122449 e^{(-24(0)/7)} \sin \Big(\frac{12(0)}{7}\Big) − 3 5 . 2 6 5 3 0 6 1 2 2 4 4 9 e ( − 2 4 ( 0 ) / 7 ) sin ( 7 1 2 ( 0 ) )
+ 4 7 . 0 2 0 4 0 8 1 6 3 2 6 5 3 e ( − 2 4 ( 0 ) / 7 ) cos ( 1 2 ( 0 ) 7 ) = 4 0 . 7 5 1 + 47.0204081632653 e^{(-24(0)/7)} \cos\Big(\frac{12(0)}{7}\Big) = 40.751 + 4 7 . 0 2 0 4 0 8 1 6 3 2 6 5 3 e ( − 2 4 ( 0 ) / 7 ) cos ( 7 1 2 ( 0 ) ) = 4 0 . 7 5 1
x 1 = 0 − − 4 . 1 1 4 3 4 0 . 7 5 1 = 0 . 1 0 1 x_1 = 0 - \frac{-4.1143}{40.751} =0.101 x 1 = 0 − 4 0 . 7 5 1 − 4 . 1 1 4 3 = 0 . 1 0 1
e r r o r = ∣ 0 . 1 0 1 − 0 ∣ = 0 . 1 0 1 error = | 0.101-0 |=0.101 e r r o r = ∣ 0 . 1 0 1 − 0 ∣ = 0 . 1 0 1
itera = 1
f ( 0 . 1 0 1 ) = − 3 . 1 3 4 6 9 3 8 7 7 5 5 1 0 2 ( 0 . 1 0 1 ) e ( − 8 ( 0 . 1 0 1 ) / 7 ) f(0.101) = -3.13469387755102 (0.101) e^{(-8 (0.101)/7)} f ( 0 . 1 0 1 ) = − 3 . 1 3 4 6 9 3 8 7 7 5 5 1 0 2 ( 0 . 1 0 1 ) e ( − 8 ( 0 . 1 0 1 ) / 7 )
+ 2 . 7 4 2 8 5 7 1 4 2 8 5 7 1 4 e ( − 8 ( 0 . 1 0 1 ) / 7 ) +2.74285714285714 e^{(-8 (0.101)/7)} + 2 . 7 4 2 8 5 7 1 4 2 8 5 7 1 4 e ( − 8 ( 0 . 1 0 1 ) / 7 )
+ 1 3 . 7 1 4 2 8 5 7 1 4 2 8 5 7 e ( − 2 4 ( 0 . 1 0 1 ) / 7 ) sin ( 1 2 ( 0 . 1 0 1 ) 7 ) + 13.7142857142857 e^{(-24 (0.101)/7)} \sin\Big(\frac{12(0.101)}{7}\Big) + 1 3 . 7 1 4 2 8 5 7 1 4 2 8 5 7 e ( − 2 4 ( 0 . 1 0 1 ) / 7 ) sin ( 7 1 2 ( 0 . 1 0 1 ) )
− 6 . 8 5 7 1 4 2 8 5 7 1 4 2 8 6 e ( − 2 4 ( 0 . 1 0 1 ) / 7 ) cos ( 1 2 ( 0 . 1 0 1 ) 7 ) = − 0 . 9 4 5 6 - 6.85714285714286 e^{(-24(0.101)/7)} \cos\Big(\frac{12(0.101)}{7}\Big) = -0.9456 − 6 . 8 5 7 1 4 2 8 5 7 1 4 2 8 6 e ( − 2 4 ( 0 . 1 0 1 ) / 7 ) cos ( 7 1 2 ( 0 . 1 0 1 ) ) = − 0 . 9 4 5 6
f ′ ( 0 . 1 0 1 ) = 3 . 5 8 2 5 0 7 2 8 8 6 2 9 7 4 ( 0 . 1 0 1 ) e ( − 8 ( 0 . 1 0 1 ) / 7 ) f'(0.101) = 3.58250728862974 (0.101) e^{(- 8 (0.101)/7)} f ′ ( 0 . 1 0 1 ) = 3 . 5 8 2 5 0 7 2 8 8 6 2 9 7 4 ( 0 . 1 0 1 ) e ( − 8 ( 0 . 1 0 1 ) / 7 )
− 6 . 2 6 9 3 8 7 7 5 5 1 0 2 0 4 e ( − 8 ( 0 . 1 0 1 ) / 7 ) - 6.26938775510204 e^{(- 8 (0.101)/7)} − 6 . 2 6 9 3 8 7 7 5 5 1 0 2 0 4 e ( − 8 ( 0 . 1 0 1 ) / 7 )
− 3 5 . 2 6 5 3 0 6 1 2 2 4 4 9 e ( − 2 4 ( 0 . 1 0 1 ) / 7 ) sin ( 1 2 ( 0 . 1 0 1 ) 7 ) - 35.265306122449 e^{(-24(0.101)/7)} \sin \Big(\frac{12(0.101)}{7}\Big) − 3 5 . 2 6 5 3 0 6 1 2 2 4 4 9 e ( − 2 4 ( 0 . 1 0 1 ) / 7 ) sin ( 7 1 2 ( 0 . 1 0 1 ) )
+ 4 7 . 0 2 0 4 0 8 1 6 3 2 6 5 3 e ( − 2 4 ( 0 . 1 0 1 ) / 7 ) cos ( 1 2 ( 0 . 1 0 1 ) 7 ) = 2 3 . 2 0 5 4 + 47.0204081632653 e^{(-24(0.101)/7)} \cos\Big(\frac{12(0.101)}{7}\Big) =23.2054 + 4 7 . 0 2 0 4 0 8 1 6 3 2 6 5 3 e ( − 2 4 ( 0 . 1 0 1 ) / 7 ) cos ( 7 1 2 ( 0 . 1 0 1 ) ) = 2 3 . 2 0 5 4
x 2 = 0 . 1 0 1 − − 0 . 9 4 5 6 2 3 . 2 0 5 4 = 0 . 1 4 1 7 x_2 = 0.101 - \frac{-0.9456}{23.2054} =0.1417 x 2 = 0 . 1 0 1 − 2 3 . 2 0 5 4 − 0 . 9 4 5 6 = 0 . 1 4 1 7
e r r o r = ∣ 0 . 1 4 1 7 − 0 . 1 0 1 ∣ = 0 . 0 4 0 7 error = | 0.1417-0.101 |=0.0407 e r r o r = ∣ 0 . 1 4 1 7 − 0 . 1 0 1 ∣ = 0 . 0 4 0 7
itera = 2
f ( 0 . 1 4 1 7 ) = − 3 . 1 3 4 6 9 3 8 7 7 5 5 1 0 2 ( 0 . 1 4 1 7 ) e ( − 8 ( 0 . 1 4 1 7 ) / 7 ) f(0.1417) = -3.13469387755102 (0.1417) e^{(-8 (0.1417)/7)} f ( 0 . 1 4 1 7 ) = − 3 . 1 3 4 6 9 3 8 7 7 5 5 1 0 2 ( 0 . 1 4 1 7 ) e ( − 8 ( 0 . 1 4 1 7 ) / 7 )
+ 2 . 7 4 2 8 5 7 1 4 2 8 5 7 1 4 e ( − 8 ( 0 . 1 4 1 7 ) / 7 ) +2.74285714285714 e^{(-8 (0.1417)/7)} + 2 . 7 4 2 8 5 7 1 4 2 8 5 7 1 4 e ( − 8 ( 0 . 1 4 1 7 ) / 7 )
+ 1 3 . 7 1 4 2 8 5 7 1 4 2 8 5 7 e ( − 2 4 ( 0 . 1 4 1 7 ) / 7 ) sin ( 1 2 ( 0 . 1 4 1 7 ) 7 ) + 13.7142857142857 e^{(-24 (0.1417)/7)} \sin\Big(\frac{12(0.1417)}{7}\Big) + 1 3 . 7 1 4 2 8 5 7 1 4 2 8 5 7 e ( − 2 4 ( 0 . 1 4 1 7 ) / 7 ) sin ( 7 1 2 ( 0 . 1 4 1 7 ) )
− 6 . 8 5 7 1 4 2 8 5 7 1 4 2 8 6 e ( − 2 4 ( 0 . 1 4 1 7 ) / 7 ) cos ( 1 2 ( 0 . 1 4 1 7 ) 7 ) = − 0 . 1 1 0 0 5 - 6.85714285714286 e^{(-24(0.1417)/7)} \cos\Big(\frac{12(0.1417)}{7}\Big) = -0.11005 − 6 . 8 5 7 1 4 2 8 5 7 1 4 2 8 6 e ( − 2 4 ( 0 . 1 4 1 7 ) / 7 ) cos ( 7 1 2 ( 0 . 1 4 1 7 ) ) = − 0 . 1 1 0 0 5
f ′ ( 0 . 1 4 1 7 ) = 3 . 5 8 2 5 0 7 2 8 8 6 2 9 7 4 ( 0 . 1 4 1 7 ) e ( − 8 ( 0 . 1 4 1 7 ) / 7 ) f'(0.1417) = 3.58250728862974 (0.1417) e^{(- 8 (0.1417)/7)} f ′ ( 0 . 1 4 1 7 ) = 3 . 5 8 2 5 0 7 2 8 8 6 2 9 7 4 ( 0 . 1 4 1 7 ) e ( − 8 ( 0 . 1 4 1 7 ) / 7 )
− 6 . 2 6 9 3 8 7 7 5 5 1 0 2 0 4 e ( − 8 ( 0 . 1 4 1 7 ) / 7 ) - 6.26938775510204 e^{(- 8 (0.1417)/7)} − 6 . 2 6 9 3 8 7 7 5 5 1 0 2 0 4 e ( − 8 ( 0 . 1 4 1 7 ) / 7 )
− 3 5 . 2 6 5 3 0 6 1 2 2 4 4 9 e ( − 2 4 ( 0 . 1 4 1 7 ) / 7 ) sin ( 1 2 ( 0 . 1 4 1 7 ) 7 ) - 35.265306122449 e^{(-24(0.1417)/7)} \sin \Big(\frac{12(0.1417)}{7}\Big) − 3 5 . 2 6 5 3 0 6 1 2 2 4 4 9 e ( − 2 4 ( 0 . 1 4 1 7 ) / 7 ) sin ( 7 1 2 ( 0 . 1 4 1 7 ) )
+ 4 7 . 0 2 0 4 0 8 1 6 3 2 6 5 3 e ( − 2 4 ( 0 . 1 4 1 7 ) / 7 ) cos ( 1 2 ( 0 . 1 4 1 7 ) 7 ) = 0 . 1 7 9 5 7 + 47.0204081632653 e^{(-24(0.1417)/7)} \cos\Big(\frac{12(0.1417)}{7}\Big) = 0.17957 + 4 7 . 0 2 0 4 0 8 1 6 3 2 6 5 3 e ( − 2 4 ( 0 . 1 4 1 7 ) / 7 ) cos ( 7 1 2 ( 0 . 1 4 1 7 ) ) = 0 . 1 7 9 5 7
x 3 = 0 . 1 4 1 7 − − 0 . 1 1 0 0 5 0 . 1 7 9 5 7 = 0 . 1 4 7 8 4 x_3 = 0.1417 - \frac{-0.11005}{0.17957} =0.14784 x 3 = 0 . 1 4 1 7 − 0 . 1 7 9 5 7 − 0 . 1 1 0 0 5 = 0 . 1 4 7 8 4
e r r o r = ∣ 0 . 1 4 7 8 4 − 0 . 1 4 1 7 ∣ = 0 . 0 0 6 1 2 8 7 error = | 0.14784- 0.1417 |=0.0061287 e r r o r = ∣ 0 . 1 4 7 8 4 − 0 . 1 4 1 7 ∣ = 0 . 0 0 6 1 2 8 7
se observa que el error disminuye en cada iteración, por lo que el método converge.
Se continúan las operaciones con el algoritmo obteniendo:
i ['xi', 'fi', 'dfi', 'xnuevo', 'tramo']
0 [ 0. -4.1143 40.751 0.101 0.101 ]
1 [ 0.101 -0.9456 23.2054 0.1417 0.0407]
2 [ 1.4171e-01 -1.1005e-01 1.7957e+01 1.4784e-01 6.1287e-03]
3 [ 1.4784e-01 -2.1916e-03 1.7245e+01 1.4797e-01 1.2708e-04]
4 [ 1.4797e-01 -9.2531e-07 1.7231e+01 1.4797e-01 5.3701e-08]
raíz en: 0.1479664890264113
literal c
la otra raíz se encuentra con x0=1
i ['xi', 'fi', 'dfi', 'xnuevo', 'tramo']
0 [ 1. 0.3471 -2.207 1.1573 0.1573]
1 [ 1.1573 0.0539 -1.5338 1.1924 0.0352]
2 [ 1.1924 0.0024 -1.397 1.1941 0.0017]
3 [ 1.1941e+00 5.7065e-06 -1.3904e+00 1.1942e+00 4.1041e-06]
raíz en: 1.1941511721360376
Instrucciones en Python
# 1Eva_IT2010_T2_MN Uso de televisores
import numpy as np
import matplotlib.pyplot as plt
def newton_raphson (fx,dfx,xi, tolera, iteramax=100, vertabla=False , precision=4):
'''
funciónx y fxderiva en forma numérica lambda
xi es el punto inicial de búsqueda
'''
itera=0
tramo = abs (2*tolera)
if vertabla==True :
print ('i' , ['xi' ,'fi' ,'dfi' , 'xnuevo' , 'tramo' ])
np.set_printoptions(precision)
while (tramo>=tolera and itera<iteramax):
fi = fx(xi)
dfi = dfx(xi)
xnuevo = xi - fi/dfi
tramo = abs (xnuevo-xi)
if vertabla==True :
print (itera,np.array([xi,fi,dfi,xnuevo,tramo]))
xi = xnuevo
itera = itera + 1
if itera>=iteramax:
xi = np.nan
print ('itera: ' ,itera, 'No converge,se alcanzó el máximo de iteraciones' )
return (xi)
# INGRESO
fx = lambda x: -3.13469387755102*x*np.exp(-8*x/7) \
+ 2.74285714285714*np.exp(-8*x/7) \
+ 13.7142857142857*np.exp(-24*x/7)*np.sin(12*x/7) \
- 6.85714285714286*np.exp(-24*x/7)*np.cos(12*x/7)
dfx = lambda x: (3.58250728862974*x - 6.26938775510204 \
- 35.265306122449*np.exp(-16*x/7)*np.sin(12*x/7) \
+ 47.0204081632653*np.exp(-16*x/7)*np.cos(12*x/7))*np.exp(-8*x/7)
x0 = 0.5
tolera = 0.0001
# PROCEDIMIENTO
respuesta = newton_raphson(fx,dfx,x0, tolera, vertabla=True )
# SALIDA
print ('raíz en: ' , respuesta)