Subido por Andrey Garro

Catálogo

Anuncio
Instituto Tecnológico de Costa Rica
Ingenierı́a en Computadores
Nombre:Andrey Sibaja Garro
CE-3102: Análisis Numéricos para Ingenierı́a
Semestre: II - 2019
Carnet: 2017101898
Catálogo del Curso
1
1.1
1.1.1
Solución de Ecuaciones No Lineales
Método de la Bisección
Fórmula Matemática
xk =
1.1.2
a+b
2
(1)
Descripción breve del método
Para utilizar este método se hace el uso de un teorema llamado: ”Teorema del Bolzano”, el cual nos asegura
la existencia de al menos un cero en un cierto intervalo [a, b], esto si se cumple la siguiente inecuación:
f (a) ∗ f (b) 6 0
(2)
Los valores iniciales del método son los proporcionados por el intervalo [a,b].
Su orden de convergencia es lineal, es decir, q = 1.
Ventajas: este siempre converge y se puede utilizar su aproximación como valor inicial para otros métodos.
Desventajas: al utilizar el teorema del bolzano solo toma en cuenta el signo y hace una aproximación
intermedia, en el peor de los casos la aproximación podrı́a ser uno de los valores iniciales y harı́a que este
haga varias recursiones, haciendo que sea poco eficiente
1.1.3
Pseudocódigo del método
Entradas: a, b, tol, funcion.
Salidas: [valorX, iteraciones]
Donde:
a = lı́mite mı́nimo del intervalo.
b = lı́mite máximo del intervalo.
tol = tolerancia aceptada.
funcion = función para realizar la aproximación.
valorX = aproximación final de ”X” con la tolerancia dada.
iteraciones = cantidad de iteraciones hechas para llegar a la solución.
1
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
if f (a) ∗ f (b) 6 0 then
xk = (a + b)/2
while abs(xk) 6 tol do
if (f (a) ∗ f (xk) 6 0) then
b = xk
else
a = xk
end if
iteraciones ++
end while
return[xk, iteraciones]
else
No se puede garantizar un cero en el intervalo
end if
2
1.1.4
Código OCTAVE del Método
3
1.1.5
1.2
1.2.1
Código Python del Método
Método de Newton-Raphson
Fórmula Matemática
xk+1 = xk −
1.2.2
f (xk )
f 0 (xk )
(3)
Descripción breve del método
Este método es de los más utilizados y más efectivos, no necesita ningún intervalo si no que se basa en
procesos iterativos con un solo valor inicial. Utiliza la recta tangente a f(x) en un punto (xn , f (xn )) y
toma como una siguiente aproximación (xn+1 ) la intersección con el eje ”x” de la tangente calculada. El
valor xn+1 se calcula mediante (3). La estructura de este método, al necesitar una sola iteración se le llama
”método sin uso de memoria”, ya que este solo usa el valor calculado en esa iteración.
Su orden de convergencia es cuadrático, es decir, q = 2.
Entre sus ventajas tenemos que es un método certero en la identificación y resolución de ecuaciones y
ecuaciones lineales y da muy buenas aproximaciones, sin embargo, una de sus desventajas en lo lento que
es para converger y además de esto se necesita el cálculo de la derivada de la función original.
4
1.2.3
Pseudocódigo del método
Entradas: xk , tol, funcion.
Salidas: [valorX, iteraciones]
Donde:
xk = valor inicial.
tol = tolerancia aceptada.
funcion = función para realizar la aproximación.
valorX = aproximación final de ”X” con la tolerancia dada.
iteraciones = cantidad de iteraciones hechas para llegar a la solución.
1:
2:
3:
4:
5:
6:
7:
8:
9:
Se calcula la derivada de la función.
if derivada == 0 then
Error. Derivada no puede ser cero
end if
while abs(xk ) 6 tol do
xk+1 = xk - f (xk )/f 0 (xk )
iteraciones ++
end while
return[xk, iteraciones]
5
1.2.4
Código OCTAVE del Método
6
1.2.5
1.3
1.3.1
Código Python del Método
Método de la Secante
Fórmula Matemática
xk+1 = xk −
1.3.2
f (xk ) − (xk − xk−1 )
f (xk ) − f (xk−1 )
(4)
Descripción breve del método
El método de Newton-Raphson visto anteriormente tiene como restricción el cálculo de la derivada, el
método de la secante busca eliminar esto, sabiendo la definición de la derivada y sustituyendo en la
ecuación (3) se obtiene la ecuación (4). La estructura de este método, al necesitar más de una iteración
se le llama ”método con uso de memoria”, ya que este usa √
el valor calculado anteriormente.
Su orden de convergencia si f es p veces diferenciable es
7
1+
1+4(p−1)
.
2
La ventaja de este método es que se puede aplicar a funciones más complejas ya que no requieren el cálculo
de una derivada, además para sistemas informáticos es más eficiente que Newton-Raphson por la misma
razón, ya que solo se hacen cálculos algebraicos. Su desventaja es que es de los métodos que poseen una
menor aproximación al valor de X y si posee varios valores no asegura encontrar uno.
1.3.3
Pseudocódigo del método
Entradas: xo , xk , tol, funcion.
Salidas: [valorX, iteraciones]
Donde:
xk = valor inicial.
tol = tolerancia aceptada.
funcion = función para realizar la aproximación.
valorX = aproximación final de ”X” con la tolerancia dada.
iteraciones = cantidad de iteraciones hechas para llegar a la solución.
1:
2:
3:
4:
5:
6:
7:
8:
k −xo )
xnuevo = xk − ff(x(xk k)∗(x
)−f (xo )
while f (xnuevo ) 6 tol do
temp = xnuevo
)∗(xnuevo −xk )
xnuevo = xn uevo − f (xfnuevo
(xnuevo )−f (xk )
xk = temp
iteraciones + +
end while
return[xnuevo , iteraciones]
8
1.3.4
Código OCTAVE del Método
9
1.3.5
1.4
1.4.1
Código Python del Método
Método de Falsa Posición
Fórmula Matemática
xk+1 = xk −
xk − C k
∗ f (xk )
f (xk ) − f (Ck )
(5)
Donde:
Ck es ak si se selecciona el intervalo [ak , xk ] o bk si se selecciona el intervalo [xk , bk ].
1.4.2
Descripción breve del método
Este método consiste en una combinación entre los métodos de la bisección y el de la secante. Este método
mediante dos valores iniciales, como intervalo [a, b], se traza una linea tangente a las imágenes de estos
dos (f(a) y f(b)) y su intersección con el eje es el nuevo valor para el intervalo, se escoge un dependiendo
10
de los casos expuestos en la ecuación (5). Utiliza del método de la bisección el teorema del bolzano para
saber que intervalo escoger y del método de la secante se realiza la aproximación al siguiente valor de x.
Su orden de convergencia si φ0 () = m 6= 0 es lineal y si φ = 0 y φ00 () = m 6= 0 entonces es cuadrática (q
= 2).
Una de sus ventajas es que al buscar un nuevo valor de x esta estará más cerca de la aproximación que con
el caso de la bisección que este divide el intervalo en mitades. Su principal desventaja es que este converje
muy lentamente hacia la solución.
1.4.3
Pseudocódigo del método
Entradas: a, b, tol, funcion.
Salidas: [valorX, iteraciones]
Donde:
a = valor inicial del intervalo.
b = valor final del intervalo.
tol = tolerancia aceptada.
funcion = función para realizar la aproximación.
valorX = aproximación final de ”X” con la tolerancia dada.
iteraciones = cantidad de iteraciones hechas para llegar a la solución.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
if f (a) ∗ f (b) 6 0 then
(b−a)
∗ f (b)
xnuevo = b − f (b)−f
(a)
while abs(xnuevo ) 6 tol do
if (f (a) ∗ f (xk) 6 0) then
b = xnuevo
else
a = xnuevo
end if
(b−a)
∗ f (b)
xnuevo = b − f (b)−f
(a)
iteraciones + +s
end while
end if
11
1.4.4
Código OCTAVE del Método
12
1.4.5
Código Python del Método
13
2
Métodos Iterativos para Optimización
3
Sistemas de Ecuaciones Lineales: Métodos Directos
4
Sistemas de Ecuaciones Lineales: Métodos Iterativos
5
Interpolación
6
Regresión Numérica
7
Diferenciación Numérica
8
Integración Numérica
9
Ecuaciones Diferenciales Numéricas
10
Método Iterativos para Calcular Valores Propios
14
Descargar