Está en la página 1de 49

Métodos Numéricos

Carlos Reales 1
1 Universidad de Córdoba

Carlos Reales (Unicor) Métodos Numéricos 18 de agosto de 2020 1 / 50


Tabla de Contenido

1 Algo de Matlab: Primeros Comandos

Carlos Reales (Unicor) Métodos Numéricos 18 de agosto de 2020 2 / 50


Tabla de Contenido

1 Algo de Matlab: Primeros Comandos

2 Ecuaciones no Lineales

Carlos Reales (Unicor) Métodos Numéricos 18 de agosto de 2020 2 / 50


Contenido

1 Algo de Matlab: Primeros Comandos

2 Ecuaciones no Lineales

Carlos Reales (Unicor) Métodos Numéricos 18 de agosto de 2020 3 / 50


Primeros Comandos

Comando Descripción
eye(m,n) Crea una matriz de orden m por n con unos en
la diagonal principal. Si m = n se obtendra la
matriz identidad de orden n.
ones(m,n) Crea una matriz de unos de orden m por n.
zeros(m,n) Crea una matriz de ceros de orden m por n.
a:b:c Genera un vector columna cuyo cuyo valor ini-
cial es a y un incremento b. El ultimo valor del
vector es es el numero mas grande de la for-
ma a + nb, con a + nb ≤ c y n entero. Si el
incremento es omitido se asume que su valor
es 1.

Carlos Reales (Unicor) Métodos Numéricos 18 de agosto de 2020 4 / 50


Primeros Comandos

Comando Descripción
sum(v) Calcula la suma de los elementos del vector v .
size(A) Entrega un vector con dos elementos que con-
tiene el numero de filas y columnas de A.
length(v) Entrega el tamaño del vector v .
[a b c] Entrega el vector cuyas entradas son a, b y c.
, La coma separa columnas si se usa entre ele-
mentos de vectores o matrices. Tambien se
puede usar el espacio
; El punto y coma separa filas si se usa entre
elementos de vectores o matrices. Si se coloca
al final de una linea suprime la salida

Carlos Reales (Unicor) Métodos Numéricos 18 de agosto de 2020 5 / 50


Ejemplos

Cree una matriz de ceros de dos filas y 4 columnas.


Cree un vector fila de números impares hasta 21.
Encuentre la suma S de los elementos del vector L.
Cree la matriz  
2 3 2
1 0 1
Cree un vector 6 × 1 de ceros usando el comando zeros.
Cree un vector fila b desde 325 hasta 405 con un intrevalo de 20.
Use el comando sum para hallar la suma de los elementos del
vector b.

Carlos Reales (Unicor) Métodos Numéricos 18 de agosto de 2020 6 / 50


Primeros Comandos

Comando Descripción
A(:,j) Muestra la j-esima columna de la matriz A
A(j,:) Muestra la j-esima fila de la matriz A
+ Suma componente a componente
.* Multiplica componente a componente
./ Divide componente a componente

Carlos Reales (Unicor) Métodos Numéricos 18 de agosto de 2020 7 / 50


Ejemplos

Sea Z=magic(5). Produzca las siguientes operaciones a Z en el


orden indicado:

Divida columna 2 por 3.
Sume los elementos de la tercera fila a los elementos de la quinta
fila (la tercera fila debe permanecer igual).
Multiplique los elementos de la primera columna por los
correspondientes elementos de la cuarta columna y ponga ese
resultado en la primera columna.
Haga los elementos de la diagonal igual a 2.

Carlos Reales (Unicor) Métodos Numéricos 18 de agosto de 2020 8 / 50


Primeros Comandos

Comando Descripción
find(A) Entrega los indices de los elementos de A dis-
tintos de cero.
find(A>0) Entrega los indices de los elementos de A ma-
yores que cero.
fliplr(X) Da vuelta de izquierda a derecha las compo-
nentes del vector fila X .
flipud(X) Da vuelta de arriba a abajo las componentes
del vector columna X .
max/min(X) Muestra el elemento mas grande(pequeño) de
un arreglo.
sort(X) Ordena en forma descendentes los elementos
de un arreglo.

Carlos Reales (Unicor) Métodos Numéricos 18 de agosto de 2020 9 / 50


Primeros Comandos

Crear dos vectores: uno cuyos elementos sean an = 2n − 1 y el


otro cuyos elementos sean bn = 2n + 1, con n = 0, 1, . . . , 7.
Determine los siguiente: a + b , a − b, a0 b, det(a0 b).
Dado el vector x = [17; −3; −47; 5; 29; −37; 51 : −7; 19]. Cree un
script que reorganice este vector en el siguiente
y = [−3; −7; −37; −47; 51; 29; 19; 17; 5].
Sea y = [0, −0,2, 0,4, −0,6, 0,8, −1,0, −1,2, −1,4, 1,6]. Si
z = sin(y ), Determine el minimo y el maximo de los valores
negativos de z. Determine la raiz cuadrada de los valores
positivos de z.

Carlos Reales (Unicor) Métodos Numéricos 18 de agosto de 2020 10 / 50


Ejemplos

Comando Descripción
linspace(a,b,N) Genera N puntos equiespaciados entre
ayb
linspace(a,b) Genera 100 puntos equiespaciados en-
tre a y b
logspace(a,b,N) Genera N puntos logaritmicamente
equiespaciados entre 10a y 10b
logspace(a,b) Genera 50 puntos logaritmicamente
equiespaciados entre 10a y 10b

Crear un vector de ocho elementos que sea igualmente


espaciado en la escala logaritmica. El primer elemento del vector
es 6 y el ultimo es 106.
Crear un nuevo vector cuyos elementos sean el primero, el
tercero, el quinto y el septimo elemento del vector creado en el
punto anterior.
Carlos Reales (Unicor) Métodos Numéricos 18 de agosto de 2020 11 / 50
Funciones Usuario

Tienen la siguiente estructura y deben ser guardadas en un archivo


nombre_funcion.m

function [salida] = nombre_funcion(entrada)

function [A, C] = circle(r)


A = pi*r.^2;
C = 2*pi*r;

Carlos Reales (Unicor) Métodos Numéricos 18 de agosto de 2020 12 / 50


function z = fun(x,y)
u = 3*x;
z = u + 6*y.^2;

>>x = 3; y = 7;
>>z = fun (x,y)
z =
303

>>z = fun(3,7)
z =
303

Carlos Reales (Unicor) Métodos Numéricos 18 de agosto de 2020 13 / 50


Como llamar una función

1. Como una cadena de caracteres que identifica la función archivo.m


apropiado, que es

function y = fun1(x)
y = x.^2-4;

La función debe ser llamada como sigue, para calcular el cero sobre el
dominio 0 ≤ x ≤ 3 :

>>x = fzero(’fun1’,[0, 3])

2. Como una función handle de un archivo.m existente:

>>x = fzero(@fun1,[0, 3])

Carlos Reales (Unicor) Métodos Numéricos 18 de agosto de 2020 14 / 50


Como llamar una función

3. Como una función objeto inline:

>>fun1 = ’x.^2-4’;
>>fun_inline = inline(fun1);
>>x = fzero(fun_inline,[0, 3])

4. Como una expresión cadena:

>>fun1 = ’x.^2-4’;
>>x = fzero(fun1,[0, 3])

o como

>>x = fzero(’x.^2-4’,[0, 3])

Carlos Reales (Unicor) Métodos Numéricos 18 de agosto de 2020 15 / 50


Use MATLAB para resolver las siguientes ecuaciones para x, y , y
z como función del parametro c

x − 5y − 2z = 11c
6x + 3y + z = 13c
7x + 3y − 5z = 10c

Grafique x, y , y z versus c en la misma grafica para


−10 ≤ c ≤ 10.

c=-10:1:10;
for i=1:length(c)
M(i,:)=misol(c(i));
end
M
plot(c,M(:,1),’b’,c,M(:,2),’g’,c,M(:,3),’m’)

Carlos Reales (Unicor) Métodos Numéricos 18 de agosto de 2020 16 / 50


Graficas

t = 0 : 0.1 : 10;g = 9.8;theta0 = 5*pi/12;


y0 = 0;x0 = 0;
y = y0 - 0.5 * g * t.^2 + v0*sin(theta0).*t;
x = x0 + v0*cos(theta0).*t;
figure;
plot(t,x);
title(’x(t) vs. t’);
xlabel(’Time (s)’);
ylabel(’Horizontal Distance (m)’);
grid on;figure;
plot(t,y);title(’y(t) vs. t’);
xlabel(’Time (s)’);ylabel(’Altitude (m)’);
grid on;

Carlos Reales (Unicor) Métodos Numéricos 18 de agosto de 2020 17 / 50


Contenido

1 Algo de Matlab: Primeros Comandos

2 Ecuaciones no Lineales

Carlos Reales (Unicor) Métodos Numéricos 18 de agosto de 2020 18 / 50


Ecuaciones No Lineales

En matemática, se conoce como raíz (o cero) de una función f (x) a


todo elemento x perteneciente al dominio de dicha función tal que se
cumpla: f (x) = 0.

Por ejemplo, dada la función f (x) = x 2 − 6x + 8, podemos afirmar que


2 y 4 son raíces ya que f (2) = 0 y f (4) = 0.

El teorema fundamental del álgebra determina que todo polinomio en


una variable compleja y de grado n tiene n raíces (contando sus
multiplicidades).

Carlos Reales (Unicor) Métodos Numéricos 18 de agosto de 2020 19 / 50


Una ecuación lineal es una ecuación relacionada con una línea recta,
por ejemplo f (x) = mx + c describe una recta con pendiente m y la
ecuación lineal f (x) = 0, que implica tal f , se resuelve fácilmente,
x = −c/m (siempre que m 6= 0).

Una ecuación se dice no lineal si contiene terminos polinomiales de


grado mayor que uno o si contiene terminos que no son polinómicos.
Las ecuaciones no lineales no pueden ser resueltas analíticamente.
Por lo tanto, la solución debe ser obtenida usando métodos iterativos.

El principio de estos métodos de solución consiste en partir de un


punto arbitrario, el más cercano posible a la solución, y llegar a la
solución gradualmente a través de iteraciones sucesivas.

Carlos Reales (Unicor) Métodos Numéricos 18 de agosto de 2020 20 / 50


La idea general de resolver una ecuación mediante la mejora sucesiva
de una estimación inicial agregando términos correctivos se ha usado
desde hace mucho tiempo.

La búsqueda de una raíz de una ecuación que modela una relación no


lineal es compleja y no es posible proporcionar un método que
funcione de manera optima en todos los casos.

Las dos clases principales de métodos disponibles para obtener la


aproximación de la raiz de una ecuación no lineal se distinguen por el
tipo de datos o valores iniciales.

Carlos Reales (Unicor) Métodos Numéricos 18 de agosto de 2020 21 / 50


Normalmente, un procedimiento iterativo comienza con una iteración
inicial x0 y produce una secuencia de iteraciones x1 , x2 , . . . , xk .

Podríamos concluir que la serie de iterados converge si los valores de


|f (xk )| y o |xk − xk −1 | tienden hacia 0 suficientemente rápido a medida
que aumenta el contador de iteración k .

Los siguientes criterios generales se utilizan para terminar con éxito el


proceso iterativo después de n iteraciones:
|xn − xn−1 | ≤ Atol
|xn − xn−1 | ≤ Rtol|xn |
|f (xn )| ≤ Ftol
donde Atol, Rtol y Ftol son constantes especificadas por el usuario.

Carlos Reales (Unicor) Métodos Numéricos 18 de agosto de 2020 22 / 50


bracketing methods

Los métodos cerrados calculan los puntos finales de una serie de


intervalos sucesivamente más pequeños que contienen una raíz.
Estos métodos requieren dos puntos iniciales, uno a cada lado de
la raíz.
Los métodos cerrados siempre funcionan,por lo que tambien son
llamados de convergencia garantizada, pero convergen
lentamente, es decir, típicamente toman más iteraciones para
obtener la respuesta adecuada.

Carlos Reales (Unicor) Métodos Numéricos 18 de agosto de 2020 23 / 50


Métodos abiertos

Los métodos abiertos usan uno o mas aproximaciones iniciales


de la raíz pero no hay necesidad de que la raiz este entre esas
aproximaciones.
En contraste, los métodos abiertos no siempre funcionan (es
decir, pueden diverger), pero cuando lo hacen, generalmente
convergen más rápido.

Carlos Reales (Unicor) Métodos Numéricos 18 de agosto de 2020 24 / 50


Por esta razón, es importante conocer las debilidades y fortalezas de
los métodos en lo teorico y en lo practico. En este sección
estudiaremos los métodos de Bisección, Posición Falsa,
Newton-Raphson, Secante y de Punto Fijo. Los cuatro son iterativos y
comienzan con una o varias aproximaciones de la ecuación f (x) = 0.

Las diferencias radican en


el número de valores iniciales,
la garantia de convergencia,
la velocidad de convergencia y
el costo computacional.

Carlos Reales (Unicor) Métodos Numéricos 18 de agosto de 2020 25 / 50


Método de Bisección

El problema consiste en, dada f : R → R (no lineal), encontrar x ∈ R


tal que f (x) = 0,

El método de bisección es un algoritmo de búsqueda de raíces que


trabaja dividiendo el intervalo de trabajo a la mitad y seleccionando el
subintervalo que tiene la raíz.

Este método es el algoritmo más simple y más robusto para encontrar


la raíz de una función continua unidimensional en un intervalo cerrado.

Carlos Reales (Unicor) Métodos Numéricos 18 de agosto de 2020 26 / 50


Método de Bisección

Teorema
Sea f : [a, b] → R una función continua en el intervalo [a, b] y
supongamos que f (a) < f (b). Entonces, para cada valor intermedio z
tal que f (a) < z < f (b), existe α ∈ (a, b) tal que f (α) = z. La misma
conclusión se obtiene para el caso que f (a) > f (b).

En particular, si f (a) y f (b) tienen signos opuestos, entonces z = 0 es


precisamente un valor intermedio y, por lo tanto, existe por lo menos
una raíz α de f en el intervalo (a, b).

Carlos Reales (Unicor) Métodos Numéricos 18 de agosto de 2020 27 / 50


Método de Bisección

Dados a y b tales que a < b y f ∈ C([a, b]) tal que f (a)f (b) < 0, sean
a0 := a y b0 := b. Por lo tanto f tiene una raíz en el intervalo (a0 , b0 ).
Sea c0 := (a0 + b0 )/2.
(a) f (a0 )f (c0 ) = 0: en este caso se tiene que f (c0 ) = 0; por lo tanto ya
localizamos una raíz, c0 , y se finaliza el proceso;
(b) f (a0 )f (c0 ) < 0: por lo tanto f tiene una raíz en el intervalo (a0 , c0 )
y definimos a1 = a0 y b1 = c0 ;
(c) f (a0 )f (c0 ) > 0: por lo tanto f tiene una raíz en el intervalo (c0 , b0 )
y definimos a1 = c0 y b1 = b0 .
En los casos b y c anteriores f tiene una raíz en el nuevo intervalo
(a1 , b1 ). Por lo tanto, el proceso se vuelve a repetir con el nuevo
intervalo (a1 , b1 ) y c1 := (a0 + b0 )/2, hasta que se satisfaga algún
criterio de detención.

Carlos Reales (Unicor) Métodos Numéricos 18 de agosto de 2020 28 / 50


Método de Bisección

a2
a1 x1
a0

x0 b0
b1

x2 b2

Figura: Método de Bisección

Carlos Reales (Unicor) Métodos Numéricos 18 de agosto de 2020 29 / 50


Método de Bisección

Teorema
Suponga que f ∈ C[a, b] y f (a)f (b) < 0. El método de bisección
genera una sucesión {cn }∞
n=1 de aproximación de un cero c de f tal
que
 k
1
|ck − α| ≤ (b − a) cuando n ≥ 1. (1)
2

Demostración.
Para cada k ≥ 1, tenemos bk − ak = (b − a)/2k y α ∈ (ak , bk ). Como
ck = (ak + bk )/2 para todo k ≥ 1 , resulta que
|ck − α| ≤ 12 (ak − bk ) = (b − a)/2k .

Carlos Reales (Unicor) Métodos Numéricos 18 de agosto de 2020 30 / 50


Ejemplo
Encuentre el numero de iteraciones que se requieren para alcanzar
una aproximación con una exactitud de 10−4 a la solución de
x 3 − x − 1 = 0 que se encuentra en el intervalo [1, 2].

Solución
Por (1) tenemos que |ck − α| ≤ (b − a)/2k para k ≥ 1. Como
queremos que |ck − α| ≤ 10−4 , esto requiere que
|ck − α| ≤ (b − a)/2k = 2−k < 10−4 así, despejando k se obtiene
k > 4/ ln 2 = 13,2. Luego el numero minimo de iteraciones para
alcanzar una precisión de 10−4 es 14.

Carlos Reales (Unicor) Métodos Numéricos 18 de agosto de 2020 31 / 50


Bisección implementado en Matlab

function raiz=bisec(funct,a,b,tol)
fa=feval(funct,a);
fb=feval(funct,b);
if (fb*fa>0)
error(’La funcion tiene el mismo signo en ambos ex
end
while (abs(b-a)>tol)
if (fa*fb==0)
if (fa==0)
raiz=a;
else
raiz=b;
end

Carlos Reales (Unicor) Métodos Numéricos 18 de agosto de 2020 32 / 50


Cont. Bisección implementado en Matlab

else
raiz=(a+b)/2;
fraiz=feval(funct,raiz);
if fraiz==0;
disp(’El punto medio es la raiz!’)
break
elseif (fa*fraiz>0)
a=raiz;
fa=fraiz;
else
b=raiz;
fb=fraiz;
end
end
end

Carlos Reales (Unicor) Métodos Numéricos 18 de agosto de 2020 33 / 50


Método de Bisección

Ejemplo

Encuentre una aproximación a 3 25 correcta con una exactitud de
10−4 usando el método de bisección.

Para aproximar 3 25 utilizamos la ecuación f (x) = x 3 − 25 = 0. Para
establecer √ el intervalo
√ donde buscaremos la raiz tenemos en cuenta
3
que 2 = 3 8 y 3 = 27 y comprobamos que f (2).f (3) < 0. Así
utilizaremos el método de bisección en la función f (x) = x 3 − 25 = 0
en [2, 3].

>> f=inline (’x^3 - 25’);


>> raiz=bisec(f,2,3,10^-4)
raiz = 2.9240

3
luego la solución es 2,9240, por tanto 25 es aproximadamente
2, 9240.
Carlos Reales (Unicor) Métodos Numéricos 18 de agosto de 2020 34 / 50
Método de Bisección

Ejemplo
Aplique el método de bisección para encontrar soluciones exactas
dentro de 10−5 para el problema: x cos(2x) − (x + 1)2 = 0 para
−3 ≤ x ≤ −2 y para −1 ≤ x ≤ 0.

Cuadro: Bisección xk := (ak + bk )/2.


k ak bk (ak + bk )/2 f (ak ) f ((ak + bk )/2) f (bk )
0 -3 -2 -2.5 -6.88051 -2.95916 3.07287e−1
1 -2.5 -2 -2.25000 -2.95916 -1.08821 3.07287e−1
2 -2.25000 -2 -2.12500 -1.08821 -3.17689e−1 3.07287e−1
. . . . . . .
. . . . . . .
. . . . . . .
16 -2.06537 -2.06531 -2.06534 -2.87010e−4 -1.33426e−4 2.01494e−5
17 -2.06534 -2.06531 -2.06532 -1.33426e−4 -5.66369e−5 2.01494e−5

Carlos Reales (Unicor) Métodos Numéricos 18 de agosto de 2020 35 / 50


Método de la Falsa Posición

Una desventaja del del método de bisección es que al dividir el


intervalo [a, b] en mitades iguales, no se tiene en cuenta las
magnitudes de f (a) y f (b).

(b, f (b))

a α

c b

(a, f (a))

Figura: Método de Regula Falsi

Carlos Reales (Unicor) Métodos Numéricos 18 de agosto de 2020 36 / 50


Método de la Falsa Posición

En la figura 2, la línea secante sobre el intervalo [a, b] es la cuerda


entre (a, f (a)) y (b, f (b)). Los dos triángulos rectos de la figura son
similares, lo que significa que

b−c c−a
=
f (b) −f (a)
Es fácil mostrar que
   
a−b b−a af (b) − bf (a)
c = b − f (b) = a − f (a) =
f (a) − f (b) f (b) − f (a) f (b) − f (a)

Entonces calculamos f (c) y procedemos al siguiente paso con el


intervalo [a, c] si f (a)f (c) < 0 o al intervalo [c, b] si f (c)f (b) < 0.

Carlos Reales (Unicor) Métodos Numéricos 18 de agosto de 2020 37 / 50


Método de la Falsa Posición

Cuadro: Regula Falsi.

Método de Falsa Posición


1 Encuentre el intervalo [a, b] en el cual f (x) = 0
2 Haga c = (af (b) − bf (a))(f (b) − f (a))
3 Calcule f (c)
4 Revise el criterio de convergencia
5 Si f (c) y f (b) tienen signos opuestos haga a = c, en caso contrario haga b
6 Reptita el paso 2.

Carlos Reales (Unicor) Métodos Numéricos 18 de agosto de 2020 38 / 50


Método de Newton–Raphson.
Este método fue propuesto por Newton en 1669.

x2 x1 x0

Figura: Método de Newton Raphson

Carlos Reales (Unicor) Métodos Numéricos 18 de agosto de 2020 39 / 50


Método de Newton–Raphson.

Este método se basa en usar una recta tangente a la gráfica de f


para aproximar esta gráfica, cerca del punto donde la función se
anula: Supongamos que tenemos la aproximación xk a la raíz α de
f (x). Trazamos la recta tangente a la curva en el punto (xk , f (xk )),
cuya ecuación es: y = f (xk ) + f 0 (xk )(x − xk ). Esta recta cruza al eje de
abscisas en un punto xk +1 que será nuestra siguiente aproximación a
la raíz α. El punto xk +1 donde la recta tangente
y = f (xk ) + f 0 (xk )(x − xk ) corta al eje de abscisas queda determinado
por f (xk ) + f 0 (xk )(xk +1 − xk ) = 0.

Carlos Reales (Unicor) Métodos Numéricos 18 de agosto de 2020 40 / 50


Método de Newton–Raphson.

El método de Newton Raphson o de la tangente define entonces la


sucesión de aproximaciones a α de la manera siguiente:

f (xk )
xk +1 := xk − , k = 0, 1, 2, . . .
f 0 (xk )

a partir de una aproximación inicial x0 dada y siempre que f 0 (xk ) 6= 0.

Método de Newton Raphson


1 Escoja el punto inicial x0
2 Si f 0 (x0 ) 6= 0, haga x1 = x0 − f (x0 )/f 0 (x0 ), en caso contrario use otro valor p
3 Revise el criterio de convergencia
4 Haga x0 = x1
5 Repita el paso 2.

Carlos Reales (Unicor) Métodos Numéricos 18 de agosto de 2020 41 / 50


Definición (Orden de Convergencia)
Una sucesión {xk }k ∈N que converge a α se dice convergente con
orden p ≥ 1, si

|α − xk +1 | ≤ C|α − xk |p ∀k ∈ N.

Teorema
Sea f ∈ C 2 ([a, b]) con una raíz α ∈ (a, b) y sean m1 y M2 tales que

m1 ≤ mı́n f 0 (x) máx f 00 (x) ≤ M2 .



y
x∈[a,b] x∈[a,b]

Dado x0 ∈ [a, b], sea {xk }k ∈N la sucesión obtenida por el método de


Newton–Raphson. Si xk ∈ [a, b] ∀k ∈ N y m1 > 0, entonces

M2
|α − xk +1 | ≤ |α − xk |2 .
2m1
Por lo tanto, si x0 es cercano a α, se tiene la convergencia
Carlos Reales (Unicor) Métodos Numéricos 18 de agosto de 2020 42 / 50
function raiz=newton(f,Df,x0,tol,maxit)
k=0;
raiz=x0;
corr=tol+1;
while (k<maxit) & (abs(corr)>tol)
k=k+1;
xk=raiz;
fxk=feval(f,xk);
Dfxk=feval(Df,xk);
if (Dfxk==0)
error(’La derivada de la funcion se anula.’)
end
corr=fxk/Dfxk;
raiz=xk-corr;
end
if (abs(corr)>tol)
error(’Se excedio el numero maximo de iteraciones.
end
Carlos Reales (Unicor) Métodos Numéricos 18 de agosto de 2020 43 / 50
Ejemplo
Calcule mediante este programa las raíces de la ecuación
cos(x) − x = 0 con un error menor que 10−12 .

>> f3=inline(’cos(x)-x’);
>> Df3=inline(’-sin(x)-1’);
>> tol=1.e-12;
>> maxit=10;
>> x0=1;
>> format long
>> raiz=newton(f3,Df3,x0,tol,maxit)
raiz =
0.73908513321516

Carlos Reales (Unicor) Métodos Numéricos 18 de agosto de 2020 44 / 50


Ejemplo

Calculemos 2 resolviendo la la ecuación x 2 − 2 = 0 con un error
menor que 10−5 usando el método de Bisección y el método Newton.

Bisección Newton–Raphson
1 1.50000000000000 2.00000000000000
2 1.25000000000000 1.50000000000000
3 1.37500000000000 1.41666666666667
4 1.43750000000000 1.41421568627451
5 1.40625000000000 1.41421356237469
6 1.42187500000000
7 1.41406250000000
.. ..
. .
15 1.41421508789063
16 1.41419982910156
17 1.41420745849609

Carlos Reales (Unicor) Métodos Numéricos 18 de agosto de 2020 45 / 50


Método de la Secante.

Éste método consiste, simplemente, en reemplazar la derivada f 0 (xk )


por el cociente incremental

f (xk ) − f (xk −1 )
.
xk − xk −1

Es decir,
xk − xk −1
xk +1 := xk − f (xk ) , (2)
f (xk ) − f (xk −1 )
para k = 1, 2, . . . , con x0 , x1 dados.

Carlos Reales (Unicor) Métodos Numéricos 18 de agosto de 2020 46 / 50


Método de la Secante.

x2 x3 x1 x0

Carlos Reales (Unicor) Métodos Numéricos 18 de agosto de 2020 47 / 50


Método de la Secante.
Método de Secante
1 Escoja los puntos iniciales x0 y x1
2 Haga x2 = x1 − f (x1 )(x1 − x0 )/(f (x1 ) − f (x0 )).
3 Revise el criterio de convergencia
4 Haga x0 = x1 y x1 = x2
5 Repita el paso 2.

Teorema
Sea f ∈ C 2 ([a, b]) con una raíz α ∈ (a, b) y tal que f 0 (x) 6= 0 ∀x ∈ [a, b].
Dado x0 , x1 ∈ [a, b], sea {xk }k ∈N la sucesión obtenida por el método
de la secante. Supongamos que xk ∈ [a, b] ∀k ∈ N. Entonces

|α − xk +1 | ≤ C |α − xk |p ,

con p = (1 + 5)/2 y C > 0. Por lo tanto, si x0 se escoge
suficientemente cercano
√ a α, se tiene la convergencia lı́mk →∞ xk = α,
con orden p = (1 + 5)/2.
Carlos Reales (Unicor) Métodos Numéricos 18 de agosto de 2020 48 / 50

También podría gustarte