1.3 Aproximación numérica – Máximo en intervalo

Ejemplo: [ 1. Máximo en intervalo ]  [ 2. Máximo en intervalo ]
..


Ejemplo 1 . Máximo en intervalo

Referencia: Burden 7Ed capítulo 1.1-ejemplo 1 p6; Burden 10Ed  p5

Determine el valor máximo de |f(x)|  en los intervalos: [1, 2] y [0.5, 1]. Siendo la función:

f(x) = 5 \cos(2x) - 2x \sin(2x)

Se puede usar dos opciones para el desarrollo: la analítica y la numérica.

1.1 Solución analítica

Se determina la derivada de f(x) y se determina el valor de x cuando f'(x) toma el valor de cero.

f(x) = 5 \cos(2x) - 2x \sin(2x) f'(x) = 5 (- 2 \sin(2x)) - [2x (2 \cos(2x)) + 2 \sin(2x) ] f'(x) = - 12 \sin(2x) - 4x \cos(2x)

f'(x) en el rango [1,2] toma el valor de cero en:

0 = - 12 \sin(2x) - 4x \cos(2x)

Situación que requiere un poco de trabajo adicional para encontrar el punto buscado…

1.2 Solución numérica

Otra forma es determinar el valor usando un método numérico, cuya precisión dependerá de la cantidad de muestras discreta, o tamaño de paso, que se utilicen para la evaluación.

Una gráfica permite estimar las intersecciones con los ejes y extremos de las funciones.

el máximo se encuentra en: 1.358
con el valor f(x) de: 5.67530054527

El valor máximo de |fx| en magnitud se cumple cuando la derivada es cero en un punto del intervalo.

Algoritmo en Python

  • Para observar la función, se realiza la gráfica en el rango [0.5, 2].
  • El algoritmo base corresponde al usado para una gráfica 2D, si no dispones de información previa, consulte el enlace: Gráficas 2D de línea
  • La función fx se escribe en formato lambda por simplicidad. Si no tiene  información previa sobre funciones numéricas en formato lambda revise el enlace: Funciones def-return vs lambda.
  • La precisión a usar es de mil tramos, o mil uno muestras en el intervalo [a,b], que es (2-0.5)/1000 = 0.0015‬
  • Se usa el algoritmo de búsqueda de posición del valor mayor en la función valor absoluto «fxabs».

Las instrucciones usadas en Python son:

# Burden capítulo 1.1-ejemplo 1 p6, pdf16
# Determine el maximo entre [a,b] para fx
import numpy as np
import matplotlib.pyplot as plt

# INGRESO
fx = lambda x: 5*np.cos(2*x)-2*x*np.sin(2*x)
a = 0.5
b = 2
muestras = 1001

# PROCEDIMIENTO
xi = np.linspace(a,b,muestras)
fi = fx(xi)

fiabs = np.abs(fi)
donde = np.argmax(fiabs)

# SALIDA
print('el máximo se encuentra en: ', xi[donde])
print('con el valor f(x): ', fiabs[donde])

# GRAFICA
plt.plot(xi,fi, label='f(x)')
plt.plot(xi,fiabs, label='|f(x)|')
plt.axhline(y=0, color='g')
plt.xlabel('x')
plt.ylabel('fx')
plt.legend()
plt.title('f(x) y |f(x)|')
plt.show()

1.3 Usando Scipy.Optimize

La librería Scipy dispone de varios algoritmos de optimización que se desarrollarán durante el curso.

valor inicial de x0

La comprensión de cada uno de ellos permite una aplicación efectiva de los algoritmos para obtener el resultado buscado.

Por ejemplo, usando la derivada de la función y un punto de partida x0 donde se supone, intuye o cercano donde se pretende obtener, se busca cuándo su valor es mínimo con la instrucción fsolve() se obtiene:

[ 1.35822987]
>>>

 

las instrucciones del algoritmo son:

# Burden capítulo 1.1-ejemplo 1 p6, pdf16
# Determine el maximo entre [a,b] para fx
# Encontrar el máximo cuando f'(x) pasa por cero

import numpy as np
import scipy.optimize as opt

# INGRESO
fx = lambda x: 5*np.cos(2*x)-2*x*np.sin(2*x)
dfx = lambda x: -12*np.sin(2*x)-4*x*np.cos(2*x)
a = 0.5
b = 2
muestras = 1001
x0 = 1 # punto inicial de búsqueda

# PROCEDIMIENTO
dondemax  = opt.fsolve(dfx,x0)

# SALIDA
print(dondemax)

compare con los resultados anteriores.

Ejemplo: [ 1. Máximo en intervalo ]  [ 2. Máximo en intervalo ]
..


Ejemplo 2. Máximo en un intervalo

Referencia: Burden 7Ed Capítulo 1.1 Ejercicio 3a p15, Burden 10Ed p6

Demuestre que f'(x) se anula al menos una vez en el  intervalo [0,1].

f(x) = 1 - e^{x} + (e-1)sen \Big( \frac{\pi}{2}x \Big)

2.1 Desarrollo analítico

Se usa el «teorema de Rolle«, si los extremos del intervalo son iguales, existe un punto intermedio c en el que la derivada es cero, en donde la función tiene un máximo.

f(0) = 1 - e^{0} + (e-1)sen(\frac{\pi}{2}0) = = 1 - 1 + (e-1)(0) = 0 f(1) = 1 - e^{1} + (e-1)sen(\frac{\pi}{2}1) = = 1 - e + (e-1)(1) = 0 f(0) = f(1)

por el teorema, debe existir un máximo, o existe un c tal que f'(c) = 0.

2.2 Desarrollo numérico y gráfico

Para encontrar el máximo, se evalúa en los extremos, se aplica Rolle y como comprobación se muestra la gráfica.

Puntos en extremos de intervalo
(xi,fi)
0 0.0
1 0.0

Algoritmo en Python

Semejante al ejercicio anterior, el punto de partida es el algoritmo para gráficas 2D.

Se plantea la función en formato lambda, usando el intervalo con 50 tramos o

# Burden Capítulo 1.1 Ejercicio 3a p15, pdf 25
import numpy as np
import matplotlib.pyplot as plt

# INGRESO
fx = lambda x: 1-np.exp(x)+(np.exp(1)-1)*np.sin((np.pi/2)*x)
a = 0
b = 1
muestras = 51

# PROCEDIMIENTO
fa = fx(a)
fb = fx(b)

xi = np.linspace(a,b,muestras)
fi = fx(xi)

# SALIDA
print('Puntos en extremos de intervalo')
print('[xi,fi]')
print(a,fa)
print(b,fb)

# GRAFICA
plt.plot(xi,fi)
plt.xlabel('x')
plt.ylabel('f(x)')
plt.axhline(0,color='g')
plt.show()

añada las instrucciones para encontrar el punto donde f'(x) pasa por cero, que es donde existe el máximo. use como referencia el ejemplo 1.


Ejemplo: [ 1. Máximo en intervalo ]  [ 2. Máximo en intervalo ]

1.2 Error-por tipos en computadoras

Referencia: Chapra 3.3 p56, Burden definición 1.15 p14

Error: [ Absoluto ] [ Relativo ] [ Redondeo ] [ Redondeo Absoluto ]
[ Redondeo Relativo ] [ truncamiento ]
..


1. Error absoluto

Es la magnitud (sin signo) entre el valor «conocido» real X y el valor «estimado» Xk.

E = |X-X_k|

El valor dependerá de la magnitud de X, por ejemplo:

– Al contar monedas de 1 centavo, una persona cuenta Xk = 98 y una máquina contadora de monedas determina que el valor X = 100, el error absoluto es de 2 centavos ó 0.02 dólares.

¿Que pasaría si el conteo fuese con monedas de 1 dólar y se mantienen las mismas cantidades de monedas?

Error: [ Absoluto ] [ Relativo ] [ Redondeo ] [ Redondeo Absoluto ]
[ Redondeo Relativo ] [ truncamiento ]
..


2. Error relativo

Continuando el tema del ejemplo anterior, se puede mejorar  dimensionando proporcionalmente los errores, es decir ponderarlos respecto a la magnitud usada.

e = \frac{|X-X_k|}{X}

Ponderar el error, calculando el error relativo para ambos ejemplos anteriores, se hacen comparables cuando las monedas son de un centavo o un dolar:

e = \frac{|100-98|}{100} = 0.02

Error: [ Absoluto ] [ Relativo ] [ Redondeo ] [ Redondeo Absoluto ]
[ Redondeo Relativo ] [ truncamiento ]
..


3. Error de redondeo

Aparece cuando se usa una calculadora o computadora para los cálculos con números reales. La calculadora usa una cantidad finita de dígitos.
Por ejemplo:

  • el número π tiene un número infinito de dígitos,
  • si el número resultante de \sqrt{3} se eleva al cuadrado, se debería obtener 3

Sin embargo podemos comprobar que lo enunciado no se cumple al usar el computador,  así obtenemos el error de redondeo.

Usando Python se obtiene:

>>> import numpy as np
>>> numeropi=np.pi
>>> numeropi
3.141592653589793

>>> b=np.sqrt(3)
>>> b
1.7320508075688772
>>> b**2
2.9999999999999996
>>> 

Error: [ Absoluto ] [ Relativo ] [ Redondeo ] [ Redondeo Absoluto ]
[ Redondeo Relativo ] [ truncamiento ]..


4. Error de redondeo absoluto

si X_k es una aproximación de X, el error absoluto es

E = |X-X_k|

Este error se enfoca solo en la magnitud de las diferencias, no importa el signo.

Error: [ Absoluto ] [ Relativo ] [ Redondeo ] [ Redondeo Absoluto ]
[ Redondeo Relativo ] [ truncamiento ]
..


5. Error de redondeo relativo

El error relativo es más significativo al usar la proporción del error en lugar del tamaño del valor.

e = \frac{|X-X_k|}{X}

Error: [ Absoluto ] [ Relativo ] [ Redondeo ] [ Redondeo Absoluto ]
[ Redondeo Relativo ] [ truncamiento ]
..


6. Error de truncamiento

Resultan al usar una aproximación en lugar de un procedimiento matemático exacto. Es la diferencia entre una respuesta esperada y el valor calculado con una fórmula iterativa.

Ejemplo, al usar un polinomio de Taylor en lugar de la función original f(x).


Error: [ Absoluto ] [ Relativo ] [ Redondeo ] [ Redondeo Absoluto ]
[ Redondeo Relativo ] [ truncamiento ]

1.1 Error y Precisión en computadoras

Referencia: Chapra 3.2 p54, Burden 10Ed 1.2 p12

Error o precisión : [ Imagen ] [ Audio ] [ video ] [ otros ]
..


Imágenes

En el uso cotidiano de computadoras para el manejo de imágenes permite disponer de un conocimiento previo acerca de la precisión y error.

Por ejemplo, observe las siguientes imágenes:

ESPOL Monumento 01
ESPOL Monumento 01

Al ampliar la imagen, se obtiene la siguiente:

ESPOL Monumento 02
ESPOL Monumento 02

De lo observado en las imágenes, en el contexto de resolución en pixeles, describa lo siguiente:

1. Sinónimos de precisión usados en imagenes de computadora
2. Sinónimos de error usados en imagenes de computadora

Error o precisión: [ Imagen ] [ Audio ] [ video ] [ otros ]
..


Audio

Para el caso de archivos de audio, disponemos de dos archivos con el mismo contenido.
Escuche como referencia cada uno para realizar sus observaciones:

Archivo01 – Karla Kanora – Invernal 01

Archivo02 – Karla Kanora – Invernal 02

Luego de escuchar los archivos de sonido, con lo observado respecto a la «calidad» del sonido, comparela con la calidad de radio AM y FM. A partir de sus observaciones describa lo siguiente:

1. Sinónimos de precisión usados en audio de computadora
2.Sinónimos de error usados en audio de computadora

Error o precisión: [ Imagen ] [ Audio ] [ video ] [ otros ]
..


Video

Para el caso de video, la observación es más sencilla, implica unificar las observaciones anteriores.

Para la observación se usa un video de Youtube acerca de las islas Galápagos.

Cambie la resolución del video entre las opciones que se muestran en el menú de configuración

Con lo observado, describa lo siguiente:

1. Sinónimos de precisión usados en video digital
2. Sinónimos de error usados en video digital

Error o precisión: [ Imagen ] [ Audio ] [ video ] [ otros ]
..


Otra perspectiva

En ésta ocasión, las instrucciones son semejantes a los ejemplos anteriores.
Observe el experimento mostrado, en especial énfasis de lo que pretenden obtener:

Otro ejemplo en un experimento básico. Observe  primer minuto (0:00-01:00) del video siguiente. Solo es necesario revisar el primer experimento realizado con la imagen del perro.


Preguntas

Tomando como base los ejercicios anteriores:

1. Escriba su definición de precisión

2. Escriba su definición de error

3. Describa la diferencia entre: precisión y error

4. Para el estudio académico, ¿se enfocaría en la precisión o en el error?.

5. ¿Cómo valora si  el error es tolerable o la precisión es buena o suficiente?


Error o precisión: [ Imagen ] [ Audio ] [ video ] [ otros ]

Unidad 1 Introducción y Conceptos

Error y Precisión en computadoras

Error por tipos en computador

Polinomio de Taylor

Polinomio de Taylor – Ejemplos con Sympy-Python

Polinomio de Taylor – Tabla y Gráfica


«El FORTRAN es un nuevo y emocionante lenguaje, usado por programadores para comunicarse con computadoras. Es emocionante porque es el camino al Futuro.», … , «2400 multiplicaciones por segundo , … , hay que saber programarla.. o ¿quieren quedarse sin empleo?» (en 1960)

Talentos Ocultos (Hidden Figures). 2016. Fox 2000 Pictures.

 

Ejemplos – ejercicios resueltos con Python

Ejercicios resueltos en forma simplificada con los algoritmos en Python. Contienen tareas por desarrollar, observaciones a otras formas de algoritmos.

Evaluaciones – ejercicios por temas

Más de 300 ejercicios de Métodos numéricos y Análisis numérico de evaluaciones anteriores, clasificados por temas.
Más de 130 ejercicios resueltos con Python, se presentan en la sección de "soluciones propuestas" en el menú.

Unidades – Temas de estudio