Programación
Clase 8. Aplicaciones Numéricas
Prof. Gonzalo Müller [email protected]
Facultad de Ingeniería
Universidad Central de Venezuela
Programación
Clase Anterior
Funciones Matemáticas en JavaScript. Tradicionales: seno, coseno,…Números Aleatorios.
Primeras aplicaciones Numéricas
Algunas áreas de aplicaciones Numéricas: Geometría.Álgebra.
Optimización. Cálculo.
Primeras aplicaciones Numéricas
Resolución Numérica: Métodos Secuenciales. Métodos Iterativos.Primeras aplicaciones Numéricas
Métodos Secuenciales: Se realiza una secuencia de pasos que obtienen la solución del problema.… …
…
Solución
Primeras aplicaciones Numéricas
Métodos Iterativos: Se realiza un proceso de búsqueda cíclica por un número fijo de iteraciones.… k = 0 Solución0 Búsqueda de … … k < N V N: número de iteraciones k = k + 1 Soluciónk Búsqueda de nueva solución
Primeras aplicaciones Numéricas
Métodos Evolutivos: Se realiza un proceso de búsqueda cíclica que parte de una solución inicial que evoluciona hasta una solución aceptable.k = 0 Solución0 … Soluciónk … k < N && Solución no aceptable V k = k + 1 Soluciónk Búsqueda de nueva solución F Aunque existe un número fijo de iteraciones el proceso puede detenerse antes al encontrar una
Métodos Secuenciales
…
…
…
……
Álgebra Clásica
Sucesión: Sumatoria:{ }
Xk = X1, X2,L = g(k) = g(1), g(2),L Productoria: g(N) g(2) g(1) g(k) N 1 k + + + =∑
= L g(N) g(2) g(1) g(k) N 1 k ∗ ∗ ∗ =∏
= LÁlgebra Clásica
Sucesión: Sumatoria:{ }
Xk = X1, X2,L = g(k) = g(1), g(2),L … g(1) … g(N) N Productoria: g(N) g(2) g(1) g(k) N 1 k + + + =∑
= L g(N) g(2) g(1) g(k) N 1 k ∗ ∗ ∗ =∏
= L … ∑g(k) N … ∏g(k) NEstadística Descriptiva
Media: Establece cual es el comportamiento promedio de un conjunto de datos: Datos de Entrada: El número N de puntos. El número N de puntos. Puntos X. Procedimiento:∑
= = N 1 k k X N 1 µEstadística Descriptiva
Media: Establece cual es el comportamiento promedio de un conjunto de datos: Datos de Entrada: El número N de puntos. El número N de puntos. Puntos X. Procedimiento:∑
= N k X N 1 µ N … µ X … XEstadística Descriptiva
Varianza: Establece que tan disperso están un conjunto de datos: Datos de Entrada: El número N de puntos. El número N de puntos. Puntos X. Procedimiento: 2 N 1 k k N 1 k 2 k 2 X N 1 X N 1 σ − =∑
∑
= =Estadística Descriptiva
Varianza: Establece que tan disperso están un conjunto de datos: Datos de Entrada: El número N de puntos. El número N de puntos. Puntos X. Procedimiento: 2 N k N 2 k 2 X N 1 X N 1 σ − =∑
∑
N … σ2 X … XEstadística Descriptiva
Regresión:Mínimos Cuadrados: Permite obtener la recta y=m x + b que mejor se aproxima a N puntos en R2.
Datos de Entrada:
Datos de Entrada:
El número N de puntos. Puntos (X, Y)
Estadística Descriptiva
Procedimiento: − − =∑
∑
∑
∑
∑
= = = N 2 k 2 N k k N 1 k k N 1 k k N 1 k k X N X Y X N Y X m − ∑
=∑
k=1 k 1 k k N X X − − =∑
∑
∑
∑
∑
∑
= = = = = = N 1 k 2 k 2 N 1 k k N 1 k k N 1 k 2 k k N 1 k k N 1 k k X N X Y X Y X X bEstadística Descriptiva
Procedimiento: − − =∑
∑
∑
∑
∑
= = = N 2 k 2 N k k N 1 k k N 1 k k N 1 k k X N X Y X N Y X m − ∑
=∑
k=1 k 1 k k N X X − − =∑
∑
∑
∑
∑
∑
= = = = = = N 1 k 2 k 2 N 1 k k N 1 k k N 1 k 2 k k N 1 k k N 1 k k X N X Y X Y X X b … m b N X1,Y1… XN ,YNCálculo
Integración:Suma de Riemann: Se calcula la integral de una función f(x) como la suma de rectángulos.
Datos de Entrada:
El intervalo de integración [A, B].
Cálculo
Procedimiento: Suma Derecha: {Xk}= A + k * ∆ ∆ = (B – A)/N∫
∑
= ∆ = N 1 k k B A ) f(X f(x) Punto Medio: {Ck}= A + (k – ½) * ∆ ∆ = (B – A)/N∫
∑
= ∆ = N 1 k k B A ) f(C f(x)Cálculo
Procedimiento: Suma Derecha: {Xk}= A + k * ∆ ∆ = (B – A)/N∫
∑
= ∆ = N 1 k k B A ) f(X f(x) Punto Medio: {Ck}= A + (k – ½) * ∆ ∆ = (B – A)/N … A, B∑
∫
= ∆ = N 1 k k B A ) f(C f(x)Métodos Secuenciales
Ejemplo: Construir una pagina web con JavaScript para calcular la integral entre A y B utilizando la Suma de Riemann por la Derecha, para función f(x)=x2
Fase 1: Análisis y Diseño: DES,DRE ó DF, LV y CF.
Fase 2: Codificación: página web con Javascript.
Etapa 1: Sucesión Etapa 2: Integral
Métodos Iterativos
xk+1 = f(xk)
x
k+1x
k xk+1 = f(xk)
x
k+1Solución de una ecuación f(x) = 0
Método de Newton: Converge más rápidamente a la solución que el método de bisección, ya que toma en cuenta información de f(x).Partiendo de un punto relativamente cercano al 0. La intersección de la tangente de la curva en el
punto dado es una buena aproximación al 0. punto dado es una buena aproximación al 0.
Solución de una ecuación f(x) = 0
Método de Newton: Converge más rápidamente a la solución que el método de bisección, ya que toma en cuenta información de f(x).Partiendo de un punto relativamente cercano al 0. La intersección de la tangente de la curva en el
punto dado es una buena aproximación al 0. punto dado es una buena aproximación al 0.
Solución de una ecuación f(x) = 0
Método de Newton: Converge más rápidamente a la solución que el método de bisección, ya que toma en cuenta información de f(x).Partiendo de un punto relativamente cercano al 0. La intersección de la tangente de la curva en el
punto dado es una buena aproximación al 0. punto dado es una buena aproximación al 0.
x1
Solución de una ecuación f(x) = 0
Método de Newton: Converge más rápidamente a la solución que el método de bisección, ya que toma en cuenta información de f(x).Partiendo de un punto relativamente cercano al 0. La intersección de la tangente de la curva en el
punto dado es una buena aproximación al 0. punto dado es una buena aproximación al 0.
x1
Solución de una ecuación f(x) = 0
Método de Newton: Converge más rápidamente a la solución que el método de bisección, ya que toma en cuenta información de f(x).Partiendo de un punto relativamente cercano al 0. La intersección de la tangente de la curva en el
punto dado es una buena aproximación al 0. punto dado es una buena aproximación al 0.
x1 x0
Solución de una ecuación f(x) = 0
Datos de Entrada:x0: Un valor inicial para comenzar la búsqueda de la solución, tal que:
x0 ∈ (A, B)
M: El número máximo de iteraciones para la M: El número máximo de iteraciones para la
búsqueda.
Solución:
x = xM
Solución de una ecuación f(x) = 0
Procedimiento: Se genera un sucesión de puntos {xk} a partir del valor inicial, tal que:
x0 x1 = x0 – f(x0)/f´(x0) x = x – f(x )/f´(x ) Iteración 1 Iteración 2 x2 = x1 – f(x1)/f´(x1) … xk+1 = xk – f(xk)/f´(xk) … xM = xM-1 – f(xM-1)/f´(xM-1) Iteración 2 Iteración M
Solución de una ecuación f(x) = 0
Procedimiento: Se genera un sucesión de puntos {xk} a partir del valor inicial, tal que:
xk+1 = xk – f(xk)/f´(xk)
x
k+1x
k x k+1 = xk – f(xk)/f´(xk)x
k+1x
k … xM x0 MBúsqueda del Máximo o Mínimo de f(x)
1 + 1: Se realiza proceso de búsqueda evolutiva hasta obtener una solución aceptable.x0
Datos de Entrada:
x0: Un valor inicial para comenzar la búsqueda de la solución, tal que:
x0 ∈ (A, B)
x1 x1
Búsqueda del Máximo o Mínimo de f(x)
1 + 1: Se realiza proceso de búsqueda evolutiva hasta obtener una solución aceptable.x0
Datos de Entrada:
x0: Un valor inicial para comenzar la búsqueda de la solución, tal que:
x0 ∈ (A, B)
x1
Búsqueda del Máximo o Mínimo de f(x)
1 + 1: Se realiza proceso de búsqueda evolutiva hasta obtener una solución aceptable.x0
Datos de Entrada:
x0: Un valor inicial para comenzar la búsqueda de la solución, tal que:
x0 ∈ (A, B)
x1 Minimización
Búsqueda del Máximo o Mínimo de f(x)
∆: Un delta de búsqueda alrededor de la solución actual.
δ(∆) = ∆ * Aleatorio(0, 1)
Aleatorio(0, 1): Número aleatorio uniformemente Aleatorio(0, 1): Número aleatorio uniformemente distribuido entre 0 y 1
M: El número máximo de iteraciones para la búsqueda.
Búsqueda del Máximo o Mínimo de f(x)
Solución:x = xM o
x = xh
h: iteración donde no se logro obtener mejor solución a la actual.
Condición de uso:
Búsqueda del Máximo o Mínimo de f(x)
Procedimiento: Se genera un sucesión de puntos {xk}, {ck} y {dk}, tal que: c0 = x0 – δ(∆), d0 = x0 + δ(∆) Si (f(c0) > f(x0)) x1 = c0 sino Si (f(d00) > f(x00)) x1 1 = d00 sino DETENER … ck = xk – δ(∆), dk = xk + δ(∆) Si (f(ck) > f(xk)) xk+1 = ck sino Si (f(dk) > f(xk)) xk+1 = dk
Búsqueda del Máximo o Mínimo de f(x)
Procedimiento: Se genera un sucesión de puntos {xk}, {ck} y {dk}, tal que: c0 = x0 – δ(∆), d0 = x0 + δ(∆) Si (f(c0) > f(x0)) x1 = c0 sino Si (f(d00) > f(x00)) x1 1 = d00 sino DETENER … ck = xk – δ(∆), dk = xk + δ(∆) Si (f(ck) > f(xk)) xk+1 = ck sino Si (f(dk) > f(xk)) xk+1 = dk sino DETENER Maximización
Búsqueda del Máximo o Mínimo de f(x)
Procedimiento: Se genera un sucesión de puntos {xk}, {ck} y {dk}, tal que: ck = xk – δ(∆), dk = xk + δ(∆) Si (f(ck) > f(xk)) xk+1 = ck
x
k+1x
k sino Si (f(dk) > f(xk)) xk+1 = dk sino DETENERx
k+1x
k … xk x0 ∆Métodos Iterativos
Ejemplo: Construir una pagina web con JavaScript para estimar una raíz dado un valor inicial x por Newton para función f(x)=x2
Fase 1: Análisis y Diseño: DES,DRE ó DF, LV y CF.
Métodos Iterativos
…a
k+1,
b
k+1,
a
k,
b
k,
…b
k+1,
…
b
k,
…
Reducción de intervalosSolución de una ecuación f(x) = 0
Método de bisección: Forma parte de los métodos iterativos.Toma en cuenta los cambios de signo de la función.
Datos de Entrada:
[A, B]: El intervalo de búsqueda.
M: El número máximo de iteraciones para la búsqueda.
Solución de una ecuación f(x) = 0
Método de bisección: Forma parte de los métodos iterativos.Toma en cuenta los cambios de signo de la función.
Datos de Entrada:
[A, B]: El intervalo de búsqueda.
M: El número máximo de iteraciones para la
Solución de una ecuación f(x) = 0
Método de bisección: Forma parte de los métodos iterativos.Toma en cuenta los cambios de signo de la función.
Datos de Entrada:
[A, B]: El intervalo de búsqueda.
M: El número máximo de iteraciones para la búsqueda.
b0 a0
Solución de una ecuación f(x) = 0
Método de bisección: Forma parte de los métodos iterativos.Toma en cuenta los cambios de signo de la función.
Datos de Entrada:
[A, B]: El intervalo de búsqueda.
M: El número máximo de iteraciones para la
b0 a0
Solución de una ecuación f(x) = 0
Método de bisección: Forma parte de los métodos iterativos.Toma en cuenta los cambios de signo de la función.
Datos de Entrada:
[A, B]: El intervalo de búsqueda.
M: El número máximo de iteraciones para la búsqueda.
a1 b1
m1
a0
Solución de una ecuación f(x) = 0
Método de bisección: Forma parte de los métodos iterativos.Toma en cuenta los cambios de signo de la función.
Datos de Entrada:
[A, B]: El intervalo de búsqueda.
M: El número máximo de iteraciones para la
a1 b1
a0
Solución de una ecuación f(x) = 0
Solución:x ∈ [aM, bM]
Condición de uso:
f(A) > 0 y f(B) < 0 o viceversa
Garantiza un cruce de f(x) por el eje x
Procedimiento: Se genera un sucesión de puntos {ak},{bk} y {mk}, tal que:
Solución de una ecuación f(x) = 0
Si (Signo(f(b0)) == Signo(f(m0))) a1 = a0 , b1 = m0 sino a1 = m0 , b1 = b0 m1 = (a1 + b1)/2 a1 b1 m1 … Si (Signo(f(bk)) == Signo(f(mk))) ak+1=ak, bk+1=mk sino ak+1=mk, bk+1=bk mk+1 = (ak+1 + bk+1)/2 … ak bk mkSolución de una ecuación f(x) = 0
Procedimiento: Se genera un sucesión de puntos {ak},{bk} y {mk}, tal que: Si (Signo(f(bk)) == Signo(f(mk))) ak+1=ak, bk+1=mk
a
k+1b
a
kb
ak+1=ak, bk+1=mk sino ak+1=mk, bk+1=bk mk+1 = (ak+1 + bk+1)/2b
k+1m
k+1b
km
k … aM,bM A, B MSolución de una ecuación f(x) = 0
Procedimiento: Se genera un sucesión de puntos {ak},{bk} y {mk}, tal que: Si (Signo(f(bk)) == Signo(f(mk))) ak+1=ak, bk+1=mk
a
k+1b
a
kb
ak+1=ak, bk+1=mk sino ak+1=mk, bk+1=bk mk+1 = (ak+1 + bk+1)/2b
k+1m
k+1b
km
k … mM A, B MBúsqueda del Máximo o Mínimo de f(x)
Búsqueda de Sección Dorada: Se realiza proceso de búsqueda iterativa.A B
Datos de Entrada:
[A, B]: El intervalo de búsqueda.
M: El número máximo de iteraciones para la búsqueda.
Búsqueda del Máximo o Mínimo de f(x)
Búsqueda de Sección Dorada: Se realiza proceso de búsqueda iterativa.a0 b0 d0
c0
Datos de Entrada:
[A, B]: El intervalo de búsqueda.
M: El número máximo de iteraciones para la búsqueda.
Búsqueda del Máximo o Mínimo de f(x)
Búsqueda de Sección Dorada: Se realiza proceso de búsqueda iterativa.a0 b0 d0
c0
Datos de Entrada:
[A, B]: El intervalo de búsqueda.
M: El número máximo de iteraciones para la búsqueda.
Búsqueda del Máximo o Mínimo de f(x)
Búsqueda de Sección Dorada: Se realiza proceso de búsqueda iterativa.a0 b0
Datos de Entrada:
[A, B]: El intervalo de búsqueda.
M: El número máximo de iteraciones para la búsqueda.
a1 b1 d1
Búsqueda del Máximo o Mínimo de f(x)
Solución: x ∈ [aM, bM] Condición de uso: f convexa | x ∈ [A, B] 2 2 1 5 r − = Sección DoradaBúsqueda del Máximo o Mínimo de f(x)
Procedimiento: Se genera un sucesión de puntos {ak},{bk},{ck} y {dk}, tal que: a0 = A, b0 = B, c0 = a0 + r(b0– a0), d0 = b0 – r(b0– a0) … Si (f(c ) > f(d )) ← Maximización a Si (f(ck) > f(dk)) ← Maximización ak+1= ak, bk+1= dk, dk+1= ck, ck+1= ak + r(dk– ak) sino ak+1= ck, bk+1= bk, ck+1 = dk, dk+1= bk – r(bk– ck) … ak bk ck dk
Búsqueda del Máximo o Mínimo de f(x)
Procedimiento: Se genera un sucesión de puntos {ak},{bk},{ck} y {dk}, tal que: Si (f(ck) > f(dk)) a = a , b = d , d = c , …
a
k+1b
k+1a
kb
k Maximización ak+1= ak, bk+1= dk, dk+1= ck, … sino ak+1= ck, bk+1= bk, ck+1 = dk, …b
k+1c
k+1d
k+1b
kc
kd
k … ak,bk A, B MBúsqueda del Máximo o Mínimo de f(x)
Procedimiento: Se genera un sucesión de puntos {ak},{bk},{ck} y {dk}, tal que: Si (f(ck) > f(dk)) a = a , b = d , d = c , …
a
k+1b
k+1a
kb
k Maximización ak+1= ak, bk+1= dk, dk+1= ck, … sino ak+1= ck, bk+1= bk, ck+1 = dk, …b
k+1c
k+1d
k+1b
kc
kd
k … mk A, B MMétodos Iterativos
Ejemplo: Construir una pagina web con JavaScript para estimar una raíz en un intervalo A y B por Bisección para función f(x)=x2
Fase 1: Análisis y Diseño: DES,DRE ó DF, LV y CF.
Ejercicios
8. Construir un programa en Javascript para:
a) Calcular la integral entre A y B utilizando el teorema fundamental del cálculo, para la siguiente función:
función:
Fase 1: Análisis y Diseño: DES, DRE ó DF, LV y CF. Señalar estructuras, acumuladores y contadores, inicialización, acumulación y conteo.
Fase 2: Codificación: pagina Web con JavaScript.
(x)
sen
Ejercicios
8. Construir un programa en Javascript para:
b) Calcular la integral entre A y B utilizando la Suma
de Riemann por Punto Medio y el teorema
fundamental del cálculo y compare, para la siguiente función:
función:
Fase 1: Análisis y Diseño: DES, DRE ó DF, LV y CF. Señalar estructuras, acumuladores y contadores, inicialización, acumulación y conteo.
Fase 2: Codificación: pagina Web con JavaScript.
(x)
sen
Ejercicios
8. Construir un programa en Javascript para:
c) Estimar una raíz en un intervalo A y B por Newton para la siguiente función:
(x)
cos
x
2−
4Fase 1: Análisis y Diseño: DES, DRE ó DF, LV y CF. Señalar estructuras, acumuladores y contadores, inicialización, acumulación y conteo.
Fase 2: Codificación: pagina Web con JavaScript.
(x)
cos
Ejercicios
8. Construir un programa en Javascript para:
d) Estimar una raíz por Bisección en un intervalo A y B para la siguiente función:
(x)
cos
x
2−
4Fase 1: Análisis y Diseño: DES, DRE ó DF, LV y CF. Señalar estructuras, acumuladores y contadores, inicialización, acumulación y conteo.
Fase 2: Codificación: pagina Web con JavaScript.
(x)
cos
Ejercicios
8. Construir un programa en Javascript para:
e) Estimar un máximo en un intervalo A y B por 1+1 para la siguiente función:
(x)
cos
x
2−
4Fase 1: Análisis y Diseño: DES, DRE ó DF, LV y CF. Señalar estructuras, acumuladores y contadores, inicialización, acumulación y conteo.
Fase 2: Codificación: pagina Web con JavaScript.
(x)
cos
Ejercicios
8. Construir un programa en Javascript para:
f) Estimar un máximo en un intervalo A y B por Sección Dorada para la siguiente función:
(x)
cos
x
2−
4Fase 1: Análisis y Diseño: DES, DRE ó DF, LV y CF. Señalar estructuras, acumuladores y contadores, inicialización, acumulación y conteo.
Fase 2: Codificación: pagina Web con JavaScript.
(x)
cos
Ejercicios
8. Construir un programa en Javascript para: g) Dado el siguiente método
Iteración de punto Fijo: Método para resolver f(x)=x xk+1 = f(xk)
x
k+1x
k Condición de uso: |f´(x)| < 1 y f, f´ continuas | x ∈ [A, B] xk+1 = f(xk)x
k+1x
k … xM x0 MEjercicios
Estimar una solución dado un valor inicial x para:
x
(x)
cos
x
2−
4=
Fase 1: Análisis y Diseño: DES, DRE ó DF, LV y CF. Señalar estructuras, acumuladores y contadores, inicialización, acumulación y conteo.
Resumen
Algunas aplicaciones numéricas:Métodos Secuenciales
Sucesión, Sumatoria y Productoria.
Estadística Descriptiva: Media, Varianza, Regresión. Integración: Suma de Riemann.
Métodos Iterativos
Métodos Iterativos
Solución de una ecuación f(x) = 0: Newton
Métodos Evolutivos
Búsqueda del Máximo o Mínimo de f(x): 1 + 1.
Métodos Iterativos – Reducción de Intervalos
Solución de una ecuación f(x) = 0: Bisección.