Vous êtes sur la page 1sur 121

Mtodos Numricos y Programacin

Braulio Gutirrez Pari


Universidad Peruana Unin-Juliaca
Facultad de Ingeniera y Arquitectura
Ingenieria Civil
Marzo del 2013
Chullunquiani-Per

ii

ndice general
Introduccin

1. Preliminares del Matlab


1.1. Notacin Matricial . . . . . . . . . . . . . . .
1.2. Operaciones con vectores y matrices . . . . . .
1.3. Funciones que actan sobre matrices . . . . .
1.4. Edicin de linea . . . . . . . . . . . . . . . . .
1.5. Fichero function . . . . . . . . . . . . . . . . .
1.5.1. Bucles . . . . . . . . . . . . . . . . . .
1.5.2. Sentencias condicionales . . . . . . . .
1.6. Algunas pautas para graficar funciones simples

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

1
1
2
3
3
8
8
8
17

2. Nociones Bsicas Sobre Errores


2.1. Factores que intervienen en la resolucin numrica . .
2.1.1. Precisin de los datos de entrada . . . . . . .
2.1.2. Representacin de los datos en el computador
2.1.3. Las operaciones numricas efectuadas . . . . .
2.2. Errores Absolutos y Errores Relativos . . . . . . . . .

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

19
19
20
21
22
26

.
.
.
.
.
.
.
.
.

29
29
31
32
37
38
42
54
58
58

.
.
.
.
.
.
.

63
64
65
65
66
67
67
68

3. Ceros reales de funciones reales


3.1. Aislamiento de las Raices . . . . . . . . . . . .
3.2. Refinamiento: Mtodos Iterativos . . . . . . .
3.2.1. Mtodo de Biseccin . . . . . . . . . .
3.2.2. Mtodo de la Posicin Falsa . . . . . .
3.2.3. Mtodo del Punto fijo (MPF) . . . . .
3.2.4. El Mtodo de Newton-Raphson . . . .
3.2.5. Mtodo de Secante . . . . . . . . . . .
3.2.6. Comparacin de los Mtodos Iterativos
3.3. Problemas . . . . . . . . . . . . . . . . . . . .
4. Resolucin de Sistemas Lineales
4.1. Aspectos Tericos . . . . . . . . . . . . . . . .
4.1.1. Conjunto Imagen de una Matriz A . .
4.1.2. Rango de una Matriz A . . . . . . . .
4.2. Mtodos Numricos para Resolver Sistemas de
4.3. Mtodo de Cramer . . . . . . . . . . . . . . .
4.4. Mtodo de Gauss . . . . . . . . . . . . . . . .
4.4.1. Resolviendo un Sistema Triangular . .
iii

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
Ecuaciones Lineales
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.

iv

NDICE GENERAL
4.4.2. Conversin de un Sistema de Ecuaciones Lineales a uno
perior . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.5. Sensibilidad en Sistemas Lineales: Nmero de Condicin . . .
4.6. Estrategia con Pivoteamiento Parcial . . . . . . . . . . . . . .
4.7. Descomposicin LU . . . . . . . . . . . . . . . . . . . . . . . .
4.7.1. Clculo de los Factores L y U . . . . . . . . . . . . . .
4.8. Descomposicin de Cholesky . . . . . . . . . . . . . . . . . . .
4.8.1. Clculo del factor de Cholesky . . . . . . . . . . . . . .
4.9. Mtodos Iterativos . . . . . . . . . . . . . . . . . . . . . . . .
4.10. Comparacin entre Mtodos Directos e Iterativos . . . . . . .

Triangular Su. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .

71
74
78
79
80
82
83
86
87

5. Introduccin a Sistemas No Lineales


5.1. El Mtodo de Newton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.1.1. Convergencia y Rapidez del Mtodo de Newton . . . . . . . . . . . . .

89
90
97

6. Interpolacin y Aproximacin
6.1. Interpolacin . . . . . . . . . . . . . . . .
6.1.1. Interpolacin Polinomial . . . . . .
6.1.2. Modos de Obtener el Polinomio pn
6.2. Aproximacin: Caso Discreto . . . . . . . .
6.2.1. Mtodo de Mnimos cuadrados . . .

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

99
99
100
101
104
106

7. Integracin numrica
111
7.1. Mtodo de los Trapecios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
7.2. Mtodo de Simpson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Bibliografa

115

Introduccin
La matemtica est comprendida de varias partes, cada una de ellas tiene importancia
propia, pero algunas tambin son fundamentales en diferentes disciplinas.
Muchos problemas de la vida real pueden ser representados por formulaciones matemticas,
las cuales son denominadas modelos matemticos. Usando argumentos matemticos tericos,
algunas veces es posible garantizar la existencia de soluciones para esos modelos matemticos,
pero encontrar manualmente esas soluciones puede resultar extremadamente difcil y a veces
imposible.
Estudiar mtodos numricos desde un punto de vista general nos permitir analizar mecanismos de clculo capaces de otorgar soluciones, o aproximaciones a las soluciones, all donde
las herramientas tericas fracasaban. Estos mecanismos numricos de clculo deben caminar
de la mano con el computador, pues en su mayora requieren de muchos pasos y frecuentemente
estn orientados a la resolucin de problemas de grandes dimensiones.
La importancia del estudio de mtodos numricos es indiscutible, pues gran parte de las
investigaciones en ciencias, ingenieras, economa, etc., recurren a tcnicas numricas para la
obtencin de resultados.

vi

INTRODUCCIN

Captulo 1
Preliminares del Matlab
1.1.

Notacin Matricial

Sea Rmn el espacio vectorial de las matrices reales de dimensin m n, de la forma

A=

a1,1
a2,1
..
.
am,1

a1,2 a1,n
a2,2 a2,n
..
..
...
.
.
am,2
am,n

donde la matriz anterior se denota como A = (ai,j ), i = 1, ..., m y j = 1, ..., n


Los elementos de una matriz se introducen entre corchetes. Las filas se separan mediante
un punto y coma (;) y los elementos separados por los espacios en blanco o comas.
>> A=[1 2 3; 3 1 2; 1 1 0]
Una vez definida una matriz o un vector, se pede acceder a sus elementos o submatrices
con las rdenes

Orden
V (i)
V (end)
A(i,j)
A(:,j)
A(i,:)
A(:)
A(v,w)

Salida
Coordedenada i del vector V
ltima coordenada del vector V
Elemento de la matriz A que ocupa la posicin i,j
Columna j de la matriz A
Fila i de la matriz A
Todos los elementos de A, en una sola columna
Submatriz de A que contiene las filas indicadas en las coordenadas de v y las
columnas indicadas en w
A(i,:) = [ ] Elimina la fila i de la matriz A
A(:,j) = [ ] Elimina la columna j de la matriz A
Puede definirse tambin ciertas matrices con las siguientes rdenes
1

CAPTULO 1. PRELIMINARES DEL MATLAB

Orden
ones(n)
ones(m,n)
zeros(n)
zeros(m,n)
eye(n)
eye(m,n)

1.2.

Salida
Matriz cuadrada n n de unos
Matriz m n de unos
Matriz cuadrada n n de ceros
Matriz m n de ceros
Matriz identidad n n
Matriz m n con unos en la diagonal principal y el resto de ceros

Operaciones con vectores y matrices

Si A y B son matrices con las dimensiones adecuadas y es un escalar, las operaciones


habituales se efectan con las siguientes rdenes

Operacin
A+B
AB
AB
A/B
A\B
A n

Resultado
Suma A y B
Resta A y B
Multiplica A por B
Divisin derecha matricial
Divisn izquierda matricial
potencia matricial

Ademas de las operaciones mencionadas, en MATLAB se definen otras operaciones a las que
llamaremos operaciones elemento a elemento

Operacin
A. B
A./B
A.\B
A.^B
A0
A.0

Resultado
Multiplicacin de arreglos
Divisin derecha de arreglos
Divisin izquierda de arreglos
Potenciacin de arreglos
transpuesta compleja
transpuesta matricial

1.3. FUNCIONES QUE ACTAN SOBRE MATRICES

1.3.

Funciones que actan sobre matrices

Las siguientes funciones permiten obtener informacin sobre las matrices o vectores que
tienen como argumentos de entrada
Funciones
size(A)
size(A, 1)
size(A, 2)
length(V )
det(A)
trace(A)
inv(A)
sum(A)
sum(V )
diag(A)

1.4.

,
;
Esc
%
clc

Salida
Vector con las dimensiones de la matriz A
Nmero de filas de la matriz A
Nmero de columnas de la matriz A
Nmero de coordenadas del vector V
Determinante de la matriz A
Traza de la matriz A
Devuelve la inversa de A
Devuelve un vector fila en el que el elemento i contiene la suma de todos
los elementos de la columna i de A.
Devuelve la suma de coordenadas del vector V
Devuelve la diagonal de la matriz A.

Edicin de linea
Contina la entrada de la expresin en la lnea siguiente
Permite separar instrucciones en la misma ejecucin
Ejecuta la instruccin pero no muestra el resultado
Borra la lnea
Todo lo que aparece en la lnea despus del smbolo % se considera un comentario
Borra el contenido de la ventana de comandos y lo coloca el prompt (>>) en la pri
mera lnea de la ventana

Obviamente, las funciones matemticas habituales tambin estn en MATLAB con la nica
particularidad de que actan sobre vectores a matrices elemento a elemento
Funcin
ex
ln(x)
log10 (x)
log
2 (x)
x
|x|

MATLAB
exp(x)
log(x)
log10(x)
log2(x)
sqrt(x)
abs(x)

Funcin
sen(x)
cos(x)
tan(x)
cot(x)
sec(x)
csc(x)

Comandos que se usan en MATLAB


==
>
<
>=
<=
=

igual a
mayor que
menor que
mayor o igual que
menor o igual que
distinto de

MATLAB
sen(x)
cos(x)
tan(x)
cot(x)
sec(x)
csc(x)

CAPTULO 1. PRELIMINARES DEL MATLAB

y los siguientes conectivos lgicos


&
y
|
o

no
xor o excluyente
Ejemplo 1.1

1 4 7 3
A= 2 5 1 5
3 6 5 1

>> A=[1 4 7 3;2 5 1 5;3 6 5 1]


A=
1 4 7 3
2 5 1 5
3 6 5 1

>> A(3,2)= O % reemplaza la tercera fila y la segunda columna con cero


A=
1 4 7 3
2 5 1 5
3 0 5 1
>> A(4,3)= 8 % A(4,3) no existe; se modifica las dimensiones de la matriz
para aadir el elemento A(4,3) en una cuarta fila. El resto se llena con ceros.
A=
1
2
3
0

4
5
0
0

7
1
5
8

3
5
1
0

>> A(1,5)= 9 % A(1,5) no existe; se modifica las dimensiones de la matriz


para aadir el elemento A(1,5) en una quinta columna. El resto se llena con
ceros
A=
1
2
3
0

4
5
0
0

7
1
5
8

3
5
1
0

9
0
0
0

>> A(:,2) =[] % elimina la segunda columna de A


A=
1
2
3
0

7
1
5
8

3
5
1
0

9
0
0
0

1.4. EDICIN DE LINEA

A=[A,[1:4]] % aade una columna a la matriz A


A=
1
2
3
0

7
1
5
8

3
5
1
0

9
0
0
0

1
2
3
4

Ejemplo 1.2

1 2 3 4
A= 5 6 7 8
9 0 5 2

>> A=[1 2 3 4;5 6 7 8;9 0 5 2]


A=
1 2 3 4
5 6 7 8
9 0 5 2

>> [m n] =size(A) % tamao de la matriz


m=
3
n=
4
Cmo seleccionar a los elemento de una matriz
>> A(2,3) % elemento de la segunda fila y tercera columna de A
ans=
7
>> A(3,:) % elemento de la tercera fila de A
ans=
9 0 5 2
>> A(:,2) % elemento de la segunda columna de A
ans=
2
6
0
Cmo acceder a una submatriz de una matriz dada
>>A([2,3],:) % submatriz de A formada por las filas de 2 y 3
ans=
5 6 7 8
9 0 5 2

CAPTULO 1. PRELIMINARES DEL MATLAB


>> A(:,[2,3,4]) % submatriz de A formada por las columnas 2,3 y 4
ans=
2 3 4
6 7 8
0 5 2
>> A([2,3],[1,2]) % submatriz formado por filas 2 y 3, columnas 1 y 2
ans=
5 6
9 0
>> A(2:3,2:4) % submatriz de A formada por filas (2 a 3) y columnas (2 a 4)
ans=

6 7 8
0 5 2
Las matrices formadas por una sola fila o columna se denominavectores fila y columna
respectivamente. Las filas y columnas de una matriz se pueden completar utilizando vectores
fila y columna.
>> b=[2 4 6] % vector columna
b=
2
4
6
>> b(3) % tercer elemento del vector
ans=
6
>> [A b] % agregamos una columna a la matriz A
ans=
1 2 3 4 2
5 6 7 8 4
9 0 5 2 6
>> v=[1 3 5 7] % vector fila
V=
1 3 5 7
>> v(4) % cuarto elemento del vector
ans=
7
>> [A v] % agregamos una fila a la matriz A

1.4. EDICIN DE LINEA

ans=
1
5
9
1

2
6
0
3

3
7
5
5

4
8
2
7

Ejercicio 1.1 Sean los arreglos

2
A =
3

1 3
C =

a) Construya el arreglo

2
4

B=
6
8

4 7 0
5 8
2
6
9 1

5 7
D=

E=

At

B
C

Solucin: >> D=[A. B;C]


D=
-1
2
3
4 -5 6
-7
8
9
0
2 -1
1
3
5

2
4
6
8
7

b) Construya el arreglo

A
B
C

Solucin: >> E=[[A; C] B]


E=
-1
4 -7 0 2
2 -5 8 2 4
3
6 9 -1 6
1
3 5 7 8
Ejercicio 1.2 Construya una matriz mgica de orden 7 (A=magic(7)) y efecte las siguientes
operaciones
1. Obtenga en un arreglo P los elementos de A comprendidos entre las filas 2 y 5 y las
columnas 1 y 4.
2. Obtenga en un arreglo Q las tres ltimas columnas de A.
3. Obtenga en un arreglo R las tres primeras filas de A
4. Crear un arreglo B que contenga las filas de A con las filas 1 y 4 intercambiadas.
5. Incrementar la fila 4 del arreglo B en 5 veces la fila 7

CAPTULO 1. PRELIMINARES DEL MATLAB


6. Asignar a las columnas 3 y 6 de A, las filas 2 y 4 del arreglo B respectivamente
7. Eliminar la fila 3 y la columna 5 del arreglo B.
8. Intercambiar las columnas 1 y 7 del arreglo A.
9. Listar los elementos del arreglo A como un nico vector columna.

1.5.

Fichero function

Dentro de la organizacin de un programa es muy comn la realizacin de tareas que


pueden servir para diferentes programas o simplemente la separacin en etapas del programa
global que se pueden abordar independientemente. Una de las formas de realizar esta divisin
en MATLAB es la travs de las function.
Las function se construyen en ficheros m.
function [Argumentos de salida]= nombre_funcin (Arg. Entrada)
A continuacin daremos los comandos ms usados en programas

1.5.1.

Bucles

son iteraciones que se utilizan para controlar el flujo de un programa


for-end . La sintaxis de este comando es
for i=vi:inc:vf
instrucciones
end
While-end . La sintaxis de este comando es
while relacin
instrucciones
end

1.5.2.

Sentencias condicionales

if-end . La sintaxis de este comando es


if relacin
instrucciones
end
if-else-end
if relacin
instruccin 1
else
instruccin 2
end;

1.5. FICHERO FUNCTION

Ejemplo 1.3 Construya un programa donde al introducir un nmero n,determine si pertenece


o no al intervalo [a, b]
Solucin:
function Intervalo_1(a,b,x)
if x>=a & x<=b
disp(esta dentro del intervalo)
else
disp(esta fuera del intervalo)
end
Ejemplo 1.4 Construir una funcin raices.m que calcule las raices de un polinomio de segundo grado ax2 + bx + c = 0 y calcule las raices de x2 3x + 2 = 0
Solucin:
function [x1,x2]= raices(a,b,c)
D = b^2-4*a*c
x1=(-b + sqrt(D))/(2*a);
x2=(-b - sqrt(D))/(2*a);
Ejemplo 1.5 Construya un programa donde puedas calcular el rea y el volumen de un
cilindro y calcule para r=5, h=12
Solucin:
function [area,volumen]= cilindro(r,h)
area=2*pi*r*h+2*pi*r^2;
volumen=pi*r^2*h;
La sentencia for-end
Los bucles que utiliza for en MATLAB tiene el siguiente aspecto
for contador = Valor inicial : incremento : valor final
sentencia del cuerpo del bucle
end
Ejercicio 1.3 A fin de aclarar las ideas ingrese los siguientes comandos y comente sus resultados
for i=1:8
i
end
Ejercicio 1.4 Ingrese los siguientes comandos y comente sus resultados
for i=1:3:19
i
end
Ejemplo 1.6 hacer un programa donde puedas calcular la suma de los n primeros nmeros
naturales

10

CAPTULO 1. PRELIMINARES DEL MATLAB

Solucin:
function s=Sumita(n)
suma=0;
for x=1:n,
suma = suma + x;
end;
s=suma;
Ejemplo 1.7 Hga un programa que reciba un vector y entregue el promedio del valor de sus
elementos
Solucin:
function p=promedio(x)
n=length(x);
suma=0;
for i=1:n
suma=suma+x(i);
end
p=suma/n;
Ejemplo 1.8 Construya un programa que evalue la funcin f (x) =

2 sen2 (2x),
1 ex ,

x0
x>0

Solucin:
function y= f1(x)
n=length(x);
for i=1:n
if x(i)<=0
y(i)=2*(sen(2*x(i)))^2;
else
y(i)=1-exp(-x(i));
end
end

x 1,2
1x ,
Ejemplo 1.9 Construya un programa que evalue la funcin: f (x) =

1 ,
x+1
Solucin:

function y= f2(x)
n=length(x);
for i=1:n
if x(i)<=-2
y(i)=x(i)-1;
elseif (x(i)>-2 & x(i)<0)
y(i)=1-x(i).^2;
else
y(i)=1/(x(i)+1);
end
end

x 2.
2 < x < 0,
x0

1.5. FICHERO FUNCTION

11

Ejemplo 1.10 Escriba una funcin para elegir el mayor entre dos nmeros
Solucin:
function M=mayor(a,b)
if a>b
M=a;
else
M=b;
end
Ejemplo 1.11 Escriba una funcin que dada dos vectores A, B y encuentre los elementos de
la interseccin de ambos vectores
Solucin:
function C= interseccion(A,B)
m=length(A);
n=length(B);
k=1;
for i=1:m
for j=1:n
if A(i)==B(j)
C(k)=A(i);
k=k+1;
end
end
end
Ejemplo 1.12 Haga un programa que me calcule el valor absoluto
Solucin
function va= ValorAbsoluto(n)
if n >= 0
va = n;
else
va = -n;
end

Ejemplo 1.13 Construir una funcin raices1 que, que muestre el polinomio de segundo grado
ax2 + bx + c = 0 si tiene raices complejas o reales
Solucin

12

CAPTULO 1. PRELIMINARES DEL MATLAB

function [x1,x2]= raices1(a,b,c)


D = b^2-4*a*c;
for D>=0
disp (Raices Reales)
x1=(-b + sqrt(D))/(2*a);
x2=(-b - sqrt(D))/(2*a);
else
disp (Raices Complejas)
x1=(-b + sqrt(D))/(2*a);
x2=(-b - sqrt(D))/(2*a);
end
Ejemplo 1.14 Crear un programa tal que dada la matriz A cuadrada de dimensin n devuelva
una nueva matriz B cuyos elementos son elementos de A salvo los de la diagonal principal
que son ceros.
Solucin:
function B= Inters(A)
[m n]=size(A);
if (m == n)
error (la matriz no es cuadrada)
end
for i=1:m
for i=1:n
if i=j
B(i,j)=A(i,j);
else
B(i,j)=0;
end
end
end
Ejemplo 1.15 Haga un programa que calcule la traza de una matriz cuadrada.A de dimensin
n
Solucin:
function suma= Traza(A)
[m n]=size(A);
if (m == n)
error (la matriz no es cuadrada)
end
suma=0;
for i=1:m
for j=1:n
if i==j
suma=suma+A(i,j);
end
end
end

1.5. FICHERO FUNCTION

13

Ejercicio 1.5 construir un programa que me calcule la norma euclidiana en Rn


Solucin:
function N= norma(v)
n=length(v);
suma=0;
k=1;
while k <=n
suma=suma+v(k)^2;
k=k+1;
end
N=sqrt(suma);
Ejemplo 1.16 Haga un programa donde dado dos matrices cuadradas se calcule la suma
Solucin:
function C= SumMatrices(A,B)
[m1,n1]=size(A);
[m2,n2]=size(B);
if (m1=m2) | (n1=n2)
error (error en las dimensiones de las matrices)
end
for i=1:m1
for j=1:n1
C(i,j)=A(i,j)+B(i,j);
end
end
Ejemplo 1.17 Haga un programa que multiplique una matriz con un vector controlando las
dimensiones
mn

Solucin: Sea la matrices A R

n
X
y x R , el producto es yi =
ai,j xj
n

j=1

function y= PMatrizVector(A,x)
[m n]=size(A);
p=size(x,1);
if (p=n)
error (error en las dimensiones)
end
y=zeros(m,1);
for i=1:m
for j=1:n
y(i)=y(i)+ A(i,j)*x(j);
end
end
Ejemplo 1.18 Haga un programa que multiplique una matriz cuadrada triangular superior
son un vector columna controlando las dimensiones

14

CAPTULO 1. PRELIMINARES DEL MATLAB

Solucin:
function k= PTriangSupVect(A,v)
n=size(A,1);
p=size(v,1);
k=zeros(n,1);
if (p=n)
error (error en las dimensiones)
end
for i=1:n
k(i)=A(i,i:n)*v(i:n);
end
Ejemplo 1.19 Haga un programa que multiplique dos matrices cuadradas triangulares y superiores, controlando las dimensiones
Solucin:
function r= ProdTriangSUp(A,B)
n=size(A,1);
p=size(B,1);
if (p=n)
error (error en las dimensiones)
end
r=zeros(n);
for i=1:n
for j=1:n
r(i,j)=A(i,i:j)*B(i:j,j);
end
end
Ejemplo 1.20 Crear un programa que efectue el producto punto o interior de dos vectores
Solucin:
function v= Producto_Punto(x,y)
n=length(x);
m=length(y);
if (n=m)
error (error en las dimensiones de los vectores)
end
v=0;
for i=1:n
v=v+x(i)*y(i);
end
Ejemplo 1.21 Haga un programa donde dado dos matrices cuadradas se calcule el producto
Solucin: Dada las matrices A Rmp y B Rpn , el producto es otra matriz P = AB

1.5. FICHERO FUNCTION


Rmn

15

function P= producto(A,B)
[m,p]=size(A);
[q,n]=size(B);
if (p=q)
error (producto matricial incompatible)
end
for i=1:m
for j=1:n
S=0;
for k=1:p
S=S+A(i,k)*B(k,j);
end
P(i.j)=S
end
end

otra forma
function P= producto(A,B)
[m,p]=size(A);
[q,n]=size(B);
if (p=q)
error (producto matricial incompatible)
end
C=zeros(m,n):
for i=1:m
for j=1:n
C(i,j)=A(i,:)*B(:,j);
end
end
Ejemplo 1.22 describir la implementacin en un archivo M funcin, que permita evaluar la
funcin
2y x2
f (x, y) = x + p
x2 + y 2 + 103
y evale en los puntos
Ejercicio 1.6

1.

2. (x, y) = (3, 4)

3. (x, y) = (, 2)
Solucin:
function z=fun(x,y)
z=x+(2*y-x^2)/sqrt(x^2+y^2+1e-3);
>> z=fun(3,4)

16

CAPTULO 1. PRELIMINARES DEL MATLAB


z=
2.8000
>> z=fun(pi,sqrt(2))
z=
1.0979

Ejemplo 1.23 Realizar un programa que permita pasar de grados farentheit a Celsius
Solucin
function C= Celsius(o F)
C=5/9*(o F-32);
Ejemplo 1.24 Presentamos una funcin simple que calcula el rea de un trapezoide de una
seccin transversal en un canal abierto

function [A]= Area_trapezoidal(b,y,z)


% b =ancho mas bajo
% y = profundidad del flujo
% z = pendiente
% A = Area
A = (b+z*y)*y
para los siguientes datos ;
b = 2
y = 0,75
z = 1,5
A=
2.34375
Ejemplo 1.25 calcula el rea de un trapezoide de una seccin transversal en un canal abierto,
permetro mojado y radio hidrulico

1.6. ALGUNAS PAUTAS PARA GRAFICAR FUNCIONES SIMPLES

17

function [A,P,R]= A_trapezoidal(b,y,z)


% b =ancho mas bajo
% y = profundidad del flujo
% z = pendiente
% A = Area
% P = Permetro mojado
% R = Radio hidrulico
% A = Area
A = (b+z*y)*y;
P = b + 2*y*sqrt(1+z^2);
R = (b+z*y)*y/(b + 2*y*sqrt(1+z^2));

1.6.

Algunas pautas para graficar funciones simples

Graficar una funcin f : R 7 R sobre un intervalo [a, b] usando el comando fplot


Grafiquemos la funcin f : R 7 R sobre un intervalo [8, 10] , donde f (x) =

sen x
x

procedemos a invocar en la ventana de comandos


>> fplot(sin(x)/x,[-8,10])
Obtenemos el siguiente grfico

La orden de dibujo ms simple es plot


Ejemplo 1.26 Supongamos que conocemos la hora en que se conoce la temperatura en una
estacin meteorolgica
9
12
15
18
21
24
h
T 15.7 17.2. 19.5 16.7 15.5 12.6
En la ventana de comandos ejecutamos.

18

CAPTULO 1. PRELIMINARES DEL MATLAB


>> h=[4 8 12 16 20 24];
>> T=[15.6 16.2 18.5 17.1 16.5 15.3];
>> plot(h,T)

Captulo 2
Nociones Bsicas Sobre Errores
En este primer captulo an no estudiaremos los mtodos numricos, sino que veremos
algunos conceptos bsicos y sealaremos algunos factores que intervendrn en la resolucin de
problemas mediante el computador.
Existen diversas fases cuando intentamos resolver un problema mediante mtodos numricos. Puede suceder que los resultados finales obtenidos no sean justamente los esperados,
aunque todas las fases hayan sido ejecutadas correctamente, los motivos pueden ser varios y
los estudiaremos a continuacin.

2.1.

Factores que intervienen en la resolucin numrica

La mayora de los mtodos numricos que veremos aqu tienen un carcter iterativo, es(0)
to significa que iniciarn con una estimativa
, para luego
(0) (1) inicial
de la solucin, digamos x
(2)
(k)
construir una sucesin de valores x , x , x , ... de modo que lmk x = x , donde
x es la solucin. Por lo general, x(k+1) ser calculada a partir de x(k) mediante un procedimiento debidamente fundamentado. Frecuentemente, este procedimiento requerir un gran
nmero de clculos, por lo que ser necesario el auxilio de un computador. Lamentablemente,
los computadores presentan algunos inconvenientes que, si no se controlan, pueden ocasionar
respuestas catastrficas.
Ejemplo 2.1 Considere el trecho de un programa en Matlab, tal como se muestra en la figura
adjunta. Observe que en teora, debera cobrarse S/,1000000.
Programa principal
a=1;
b=0.0000000000000001;
c=1;
if a+b>c
disp(cobrar S/.1000000);
else
disp(pagar S/. 2000000);
end
Un error numrico grave cometido por el computador. Sin embargo, debido al error cometido
por el computador, se terminara pagando S/.2 000 000.
19

20

CAPTULO 2. NOCIONES BSICAS SOBRE ERRORES

Laboratorio 2.1 Haga un programa en algn lenguaje de programacin que usted conozca,
de modo que en la prctica corrobore el Ejemplo anterior.
Al resolver un problema por mtodos numricos, los resultados obtenidos pueden depender
de:
1. La precisin de los datos de entrada
2. La forma cmo stos son representados en el computador
3. Las operaciones numricas efectuadas
Cada uno de estos temas sern explicados a continuacin.

2.1.1.

Precisin de los datos de entrada

Cuando ingresamos los datos de un problema, ya sea para calcular en un papel o trabajar
en el computador, ellos contienen una imprecisin inherente, quiere decir que no hay cmo
evitarlos. El siguiente ejemplo aclara esta afirmacin.
Ejemplo 2.2 Sabemos que para calcular el rea de un crculo, tenemos que ingresar numricamente el radio r y el valor de . El valor de r quiz pueda ser conocido exactamente (r = 2),
pero apenas podemos conocer una aproximacin de con un nmero finito de dgitos. As,
aproximando el valor de por 3,14, el rea del crculo ser:
3, 14 (2)2 = 12, 56 m2
Si consideramos 3, 1416, entonces el rea del crculo estar dada por:
3, 1416 (2)2 = 12, 5664 m2
Pero si consideramos 3, 141592654, entonces el rea ser
3, 141592654 (2)2 = 12, 566370616 m2
Claramente las imprecisiones de los datos de entrada ocasionan imprecisiones en los resultados.
En el ejemplo anterior vimos que el mejor resultado se obtuvo en el ltimo caso. Pero,
cuando usamos un computador, cuntos dgitos decimales reconoce ste? El siguiente ejemplo
intentar aclarar esta situacin.
Ejemplo 2.3 Usando Matlab 6.0 en un PC de 32-bit con un sistema operativo Windows XP,
hicimos la siguiente operacin:
0,00000000000001 + 1
y el resultado obtenido fue 1,00000000000001, lo cual es satisfactorio. Luego, hicimos:
0,000000000000001 + 1
y obtuvimos como respuesta 1. Qu sucedi?

2.1. FACTORES QUE INTERVIENEN EN LA RESOLUCIN NUMRICA

21

El ejemplo anterior nos hace ver que en el primer caso, cuando se usan los 14 dgitos a la
derecha del punto, el sistema de cmputo no comete error. Mientras que, si se usan 15 dgitos,
el sistema nos otorga una respuesta errada.
La razn se debe a que todo computador trabaja con un nmero finito y bien reducido
de dgitos, en nuestro caso 14 a la derecha del punto, si el nmero de dgitos sobrepasa lo
esperado, el sistema lo trunca o redondea, dependiendo del sistema utilizado.
Laboratorio 2.2 Utilice un paquete o lenguaje de programacin en un computador, para
corroborar los resultados obtenidos en el Ejemplo 2.3.

2.1.2.

Representacin de los datos en el computador

Un nmero con representacin decimal finita puede tener una representacin infinita en
el sistema binario. Como un computador trabaja con el sistema binario y con una cantidad
fija de dgitos, necesariamente trabajar con una aproximacin, por lo tanto no se obtendrn
resultados exactos.
El sistema con el que trabajamos comunmente es el decimal, un nmero x en este sistema
lo representaremos algunas veces, cuando se preste a confusin, por (x)10 . Por otro lado, el
sistema con el que trabaja un computador hoy en da es el binario, un nmero y en este sistema
ser representado por (y)2 . As por ejemplo.
(5)10

y (101)2

representa el nmero 5 en el sistema decimal y binario, respectivamente. El siguiente ejemplo


muestra cmo esta representacin aparentemente inofensiva, puede generar terribles errores
cuando se trabaja en el computador.
Ejemplo 2.4 Considere la siguiente sumatoria:
S=

30000
X

ai

i=1

Para ai = 0, 5, el resultado exacto debera ser


S = 0, 5

30000
X
i=1

1 = 0, 5 30000 = 15000

Despus de implementar un pequeo programa en computador, el resultado fue tambin 15000.


Claramente, no hay por qu preocuparse en este caso, los resultados son los mismos. Pero, para
ai = (0, 11)10 , el resultado exacto debera ser
S = (0, 11)10 30000 = 3300
Sin embargo, el resultado obtenido por el computador fue
S = 3300, 00000000063
cmo explicar la diferencia de resultados en este caso?

22

CAPTULO 2. NOCIONES BSICAS SOBRE ERRORES

Esto se debe a que el nmero (0, 11)10 , cuya representacin en el sistema decimal es finito,
tiene una representacin binaria infinita:
(0, 0001110000101000111101)2
Si el computador trabajara con 14 dgitos despus del punto, el nmero debera ser cortado o
redondeado, lo cual representa ya un error. Todos los clculos subsiguientes sern, afectadas
por este hecho.
Laboratorio 2.3 Utilizando algn lenguaje de programacin, haga un programa para ejecutar
lo tratado en el ejemplo 2.4.
Por lo general, el error ocurrido depende de la representacin de los nmeros en la mquina
utilizada. La representacin de un nmero depende de la base elegida o disponible en la
mquina en uso, y, del nmero mximo de dgitos usados en su representacin. Cualquier
clculo que envuelva nmeros que no pueden ser representados a travs de un nmero finito de
dgitos, no otorgar como resultado un valor exacto. Cuanto mayor sea el nmero de dgitos
utilizados, mayor ser la precisin obtenida.
Como vimos en el ejemplo 2.4, un nmero puede tener representacin finita con respecto a
una base, pero una representacin infinita en otra base. La base decimal es la que emplearemos
generalmente, pero antiguamente fueron empleadas otras bases, como la base 12 y la base 60.
Un computador opera normalmente en el sistema binario.
Observe los que pasa cuando un usuario interacta con el computador: Los datos de entrada
son enviados al computador por el usuario en el sistema decimal, esa informacin es convertida
al sistema binario por el computador, y, todas las operaciones son realizadas en ese sistema. Los
resultados finales sern convertidas para el sistema decimal y, finalmente, sern transmitidos
hacia el usuario. Todo este proceso es una fuente de errores que afectan el resultado final de
los clculos.

2.1.3.

Las operaciones numricas efectuadas

Pero errores no slo ocurren en la impresin de los datos de entrada y su representacin


binaria. Errores ocurren tambin en las operaciones numricas efectuadas por un sistema de
cmputo (binario).
Conversin de Nmeros en los Sistemas Decimal y Binario
Cualquier nmero entero en la base , de la forma (aj aj1 , ..., a2 a1 a0 ) , donde 0 ak
1 y k = 0, ..., j, puede ser escrito en la forma polinomial
aj j + aj1 j1 + ... + a2 2 + a1 1 + a0 0

Mediante esa representacin, podemos convertir fcilmente un nmero entero representado en


el sistema binario para el decimal, e inversamente. Por ejemplo: (10111)2 puede ser representado por
1 24 + 0 23 + 1 22 + 1 21 + 1 20
Reordenando y resaltando la base 10 tenemos

(10111)2 = 1 24 + 0 23 + 1 22 + 1 21 + 1 20
= 2(23 + 2) + 3 = 2 101 + 3 100
= (23)10

2.1. FACTORES QUE INTERVIENEN EN LA RESOLUCIN NUMRICA

23

Laboratorio 2.4 En algn lenguaje de programacin, haga un programa tal que, dado un
nmero entero binario, retorne su equivalente decimal. E inversamente, dado un entero decimal, otorgue su equivalente binario.
Como Convertir un Nmero Fraccionario de Representacin Decimal a Binario?
Consideremos ahora la conversin de un nmero fraccionario de base 10 para la base 2.
Por ejemplo, r = 0, 125, s = 0, 777..., t = 0, 414213562..., etc.
Notemos que r tiene una representacin finita, pero s y t tienen representaciones infinitas.
En trminos generales, dado un nmero entre 0 y 1 en el sistema decimal, Cmo obtener su
representacin binaria?
Consideremos el nmero decimal fraccionario r = 0, 125, existen dgitos binarios
d1 , d2 , ..., dj , ...
tal que (0, d1 d2 ...dj ...)2 ser su representacin binaria en la base 2. As,
(0, 125)10 = d1 21 + d2 22 + ... + dj 2j + ...

(2.1)

Multiplicando cada trmino de la expresin (2.1) por 2, tendremos


2 0, 125 = d1 + d2 21 + d3 22 + ... + dj 2j+1 + ...
Por lo tanto, d1 representa la parte entera de 2 0, 125, que es igual a 0, mientras que
d2 21 + d3 22 + ... + dj 2j+1 + ...
representa la parte fraccionaria de 2 0, 125, que es 0, 250.
Aplicando ahora el mismo procedimiento para 0, 250, tendremos
0, 250 = d2 21 + d3 22 + ... + dj 2j+1 + ...
2 0, 125 = 0, 5 = d2 + d3 21 + d4 22 + ... + dj 2j+2 + ...
de donde d2 = 0. Repitiendo el procedimiento para 0, 5 tenemos
0, 5 = d3 21 + d4 22 + ... + dj 2j+2 + ...
2 0, 5 = 1 = d3 + d4 21 + ... + dj 2j+3 + ...
de donde d3 = 1. Como la parte fraccionaria de 2 0, 5 es cero, el proceso de conversin
termina. En resumen tenemos: d1 = 0, d2 = 0 y d3 = 1. Por lo tanto, el nmero (0, 125)10 tiene
representacin finita en la base 2:
(0, 125)10 = (0, 001)2
Laboratorio 2.5 Usando los procedimientos anteriores para convertir nmeros fraccionarios
decimales, a binarios, haga un programa usando algn lenguaje de programacin y verifique
que:
1. El nmero (0, 5)10 tiene una representacin binaria finita (0, 1)2

24

CAPTULO 2. NOCIONES BSICAS SOBRE ERRORES


2. El nmero (0, 11)10 tiene una representacin binaria infinita
(0, 0001110000101000111101)2
3. Verifique cuntos dgitos el computador est considerando.

En hecho de que un nmero no tenga representacin finita en el sistema binario, puede


ocasionar la ocurrencia de errores aparentemente inexplicables en los clculos efectuados en
sistemas computacionales binarios. Un computador que opera en el sistema binaio, necesariamente tendr que almacenar una aproximacin para (0, 11)10 , debido a que slo posee una
cantidad fija de posiciones para guardas los dgitos de la mantisa de un nmero. Al ser esta
aproximacin usada para realizar los clculos, no puede esperarse un resultado exacto.
Laboratorio 2.6 (Precisin de una mquina) La precisin de la mquina se define como
el menor nmero > 0 en aritmtica de punto flotante, tal que (1 + ) > 1. Este nmero
depende totalmente del sistema de representacin de la mquina: base numrica, total de dgitos
en la mantisa, de la forma cmo son realizadas las operaciones y del compilador utilizado. Es
importante conocer la precisin de la mquina porque en varios algoritmos se requiere ingresar
como dato de entrada un valor positivo, prximo de cero, para que sea usado como criterio de
comparacin para la detencin del algoritmo. El siguiente algoritmo determina dicha precisin:
Paso 1: A 1, S 2

Paso 2: Mientras S > 1, hacer


A
2
S 1+A

A
Paso 3: Hacer prec = 2A e imprimir prec .

1. Haga un programa en algn lenguaje de programacin que ejecute el algoritmo


anterior.
2. Discuta su significado prctico.
Aritmtica de Punto Flotante
Cualquier computador o calculadora representa un nmero en un sistema denominado
aritmtica de punto flotante. En este sistema, el nmero r ser representado en la forma:
(.d1 d2 ...dt ) e
donde
: La base en que la mquina opera
t : El nmero de dgitos en la mantisa, 0 dj 1, j = 1, ..., t, d1 6= 0
e : El exponente en el intervalo [u; u] , el valor de u depende de la mquina con que se est
trabajando.
En una computadora, slo una pequea cantidad de nmeros son representados exactamente, por lo general, la representacin ser realizada por medio de truncamiento o redondeo.

2.1. FACTORES QUE INTERVIENEN EN LA RESOLUCIN NUMRICA

25

Ejemplo 2.5 Considere una mquina que opera en el sistema = 10, t = 3, e [5; +5] .
Los nmeros no nulos representados en este sistema sern de la forma
(.d1 d2 d3 ) 10e ,

0 dj 9,

d1 6= 0,

e [5; +5]

El menor nmero, no nulo y en valor absoluto, expresado en esta mquina ser:


m = 0, 100 105
Mientras que el mayor nmero es:
M = 0, 999 10+5
Ahora, en esta misma mquina. Consideremos el subconjunto de nmeros reales caracterizados
por:
G = {x R : m |x| M}
Puede ocurrir varios casos:

x G Por ejemplo, si x = 235, 89 = 0, 23589 10+3 . Este nmero posee 5 dgitos en


la mantisa. Debido a que t = 3, este nmero no ser considerado de forma exacta en esta
mquina. Si la mquina usa truncamiento, entonces el nmero ser representado como 0, 235
10+3 . Pero si la mquina usa redondeo, entonces el nmero ser representado por 0, 23610+3 .
|x| < m Por ejemplo, si x = 0, 345 107 . Este nmero no puede ser representado en
esta mquina porque el exponente e es menor que 5. La mquina en estas condiciones retorna
una advertencia de underflow .
|x| > M Por ejemplo, x = 0, 875 109 . En este caso, el exponente es mayor que 5 y la
mquina no lo puede representar, advierte la ocurrencia de overflow .
Algunos lenguajes de computador permiten que las variables sean declaradas en doble
precisin. En este caso, tal variable ser representada en el sistema de aritmtica de punto
flotante de la mquina, pero con aproximadamente el doble de dgitos disponibles en la mantisa.
Debemos resaltar que en estas condiciones, el tiempo de ejecucin y requerimientos de memoria
aumentan considerablemente.
La adicin en aritmtica de punto flotante requiere el alineamiento de los puntos decimales
de los dos nmeros. Para eso, la mantisa de menor exponente debe ser desplazada para la
derecha.
Ejemplo 2.6 Sumar
x = 0, 937 104

Alineando los puntos decimales, tenemos

x = 0, 937 104

y y = 0, 1272 102
y y = 0, 001272 104

Entonces,
x + y = (0, 937 + 0, 001272) 104 = 0, 938272 104

El resultado almacenado despus del truncamiento ser 0, 9382 104 . Mientras que despus
del redondeo ser 0, 9383 104 .

26

CAPTULO 2. NOCIONES BSICAS SOBRE ERRORES

El cero puede representarse con una mantisa nula y cualquier exponente. Por lo general, se
utiliza el menor exponente posible de la mquina. Caso contrario, si se usa cualquier exponente
para denotar el cero, se puede perder dgitos significativos, tal como muestra el siguiente
ejemplo:
Ejemplo 2.7 Supongamos que tenemos una mquina que opera con base 10 y 4 dgitos en la
mantisa. Si denotramos al cero por 0, 0000 104 , al sumarlo al nmero y = 0, 3134 102 :
0, 0000 104 + 0, 3134 102 = 0, 0000 104 + 0, 003134 104
= (0, 0000 + 0, 003134) 104
= 0, 003134 104
El resultado despus del truncamiento sera 0, 0031 104 = 0, 3100 102 . Esto significa que
fueron perdidos 2 dgitos del valor exacto.
Ejemplo 2.8 Represente los siguientes nmeros en un sistema de aritmtica de punto flotante
(con redondeo y con truncamiento) de 3 dgitos, cuando = 10, m = 104 y M = 10+4 :
3, 14 10, 052

238, 15 2, 71828 0, 000007 718235, 82

Para el primer caso, con truncamiento nos resulta 0, 314 10, mientras que con redondeo
0, 314 10. Para el segundo caso, con truncamiento obtenemos 0, 100 102 y con redondeo
0, 100 102 . Y as sucesivamente:
0, 238 103
0, 271 10
underflow
overflow

0, 238 103
0, 271 10
underflow
overflow

Todo esto nos da una idea de los posibles errores que pueden suceder, ya sea por desconocimiento nuestro o por la limitacin del computador, en el proceso de la resolucin numrica de problemas. Debemos advertir que an es posible realizar un anlisis ms completo del
manejo de errores, pero eso lo veremos en otra ocasin.

2.2.

Errores Absolutos y Errores Relativos

Definimos el error absoluto como la diferencia entre el valor exacto de un nmero x y su


valor aproximado x :
EAx = x x
(2.2)
Frecuentemente, slo nos interesa la magnitud de este error. As por ejemplo, si x = 12, 60 y
x = 12, 81, el error absoluto es EAx = 12, 60 12, 81 = 0, 21. Mientras que la magnitud de
este error es |0, 21| = 0, 21.
Esta idea puede ser extendida para comparar la proximidad de vectores. Por ejemplo,
consideremos los vectores en R3 dados por

6, 1
6, 2
x = 5, 8 y x = 5, 9
11, 3
10, 9

2.2. ERRORES ABSOLUTOS Y ERRORES RELATIVOS

27

Entonces, usando la norma euclidiana, la magnitud del error estara dada ahora por
p
kx xk = (6, 1 6, 2)2 + (5, 8 5, 9)2 + (11, 3 (10, 9))2 = 0, 4243

No obstante, el error absoluto definido en (2.2) quiz no tenga inters prctico en este caso.
En general, apenas el valor de x es conocido, lo que hace imposible obtener el error absoluto
exacto. Lo que se puede hacer en este caso es obtener una cota superior o una estimativa para
el mdulo del error absoluto, tal como muestra el siguiente ejemplo.
Ejemplo 2.9 Conocindo que h3, 14; 3, 15i , podemos tomar para x un valor dentro de
este intervalo y tendremos que:
|EA | = | x| < 0, 01
En este caso diremos que el error absoluto de x con respecto a , en mdulo, es menor que
0, 01. Ms an, diremos que el nmero x est representado con precisin menor que 0, 01.
Ejemplo 2.10 En la prctica, a veces no es recomendable controlar alguno procesos basados
en el error absoluto. Por ejemplo, si usted gana un premio de S/. 10 000 000, y cuando va a
recogerlo le dicen que slo tiene S/. 9 999 990, entonces a usted puede que no le importe la
diferencia, pues apenas hay un error absoluto de S/. 10. Pero qu pasa si usted gan S/. 20
de premio, y cuando usted va a recogerlo le dicen que apenas tiene S/. 10, observe que el error
absoluto sigue siendo S/. 10, probablemente no le agrade nada esta ltima situacin, pues se
trata de la mitad del premio.
Para evitar situaciones como la anterior, en la prctica es mejor utilizar otro criterio para
medir el error, ste es conocido como error relativo.
El error relativo es definido como el error absoluto dividido por el valor exacto, es decir:
ERx =

EAx
x x
=
x
x

Frecuentemente, tambin se suele trabajar con el mdulo de este valor. Observe que el error
relativo respecto al primer premio de S/. 10 000 000 es
ER10 000 000 =

10
0, 000001
10 000 000

Mientras que el error relativo respecto al segundo premio es


ER20 =

10
0, 5
20

Con esto, digamos que en este caso se midi el error con ms justicia.
Ejercicio 2.1 Convierta los siguientes nmeros decimales para su forma binaria: 26, 1278 y
0, 1217
Ejercicio 2.2 Convierta los siguientes nmeros binarios para su forma decimal: (101101)2 ,
(0, 111111101)2 y (0, 1101)2 .

28

CAPTULO 2. NOCIONES BSICAS SOBRE ERRORES

Laboratorio 2.7 El siguiente algoritmo calcula de una forma aproximada la raz n-sima de
un nmero no negativo a.
Ingresa: a, n y > 0, donde es la precisin deseada ( = 109 )
x=a
Mientras |xn a| > (controlando la magnitud del error absoluto)
x = x (xn a)/(nxn1 ), x 6= 0
Retorna x (una aproximacin para n a)
En algn lenguaje de programacin, haga un programa para ejecutar este algoritmo. Modifique
el programa para que retorne tambin el nmero de pasos (iteraciones). Cmo utilizara el
error relativo para controlar el algoritmo?
Laboratorio 2.8 (Clculo de ex ) En algn lenguaje de programacin, haga un programa para
calcular ex mediante la serie de Taylor con n trminos. El valor de x y el nmero de trminos
de la serie, n, deben ser dados en la entrada de su programa. Para valores negativos de x, el
programa debe calcular ex de dos formas: En una de ellas el valor de x es usado directamente
en la serie de Taylor y, en la otra forma, el valor usado en la serie ser y = x, y en seguida,
se calcula el valor de ex por medio de e1x .
1. Experimente su programa con varios valores de x (x prximo de cero y distante de cero)
y, para cada valor de x, experimente el clculo de la serie con varios valores de n. Analice
los resultados.
2. (Dificultades con el clculo del factorial) El clculo de k! necesario en la serie de Taylor
puede ser hecho de modo a evitar la ocurrencia de overflow. Para esto es necesario
k
analizar cuidadosamente el k-simo trmino, xk! . Intente combinar el clculo del numerador con el del denominador y realizar divisiones intermedias. Estudie una manera de
realizar esta operacin de modo que k! no se sobrecargue.
3. Con la modificacin del segundo item, la serie de Taylor puede ser calculada con los
trminos que se desee. Cul sera el criterio para detener su programa e interrumpir el
clculo de la serie?

Captulo 3
Ceros reales de funciones reales
En esta seccin vamos a resolver la ecuacin representada por
f (x) = 0

(3.1)

donde f : [a; b] R 7 R. Resolver tal ecuacin significa encontrar [a; b] de modo que
f () = 0.

Algunas de las tcnicas para resolver esta ecuacin, es decir, encontrar una raz de la
ecuacin (3.1) o simplemente un cero de f , requiere de un procedimiento que comprende
esencialmente de dos fases.
Fases para encontrar una raiz de la ecuacin f (x) = 0
1. Aislamiento de las raices: (Intervalo que contenga una raz)
2. Refinamiento: (Aproximacin a la raz deseada)
Cada uno de estas fases sern explicados a continuacin.

3.1.

Aislamiento de las Raices

Si es una raz de f , el procedimiento de aislamiento de una raz consiste en obtener un


intervalo [a; b] que contenga .

Una primera alternativa sera mediante una observacin grfica, probablemente con ayuda
de un computador o una calculadora.

Ejemplo 3.1 Para el aislamiento de una raz de f (x) = x 5ex , procedemos a graficar
utilizando Matlab. Observamos que en el intervalo [1; 2] se encuentra una raz. La figura 2.1
29

30

CAPTULO 3. CEROS REALES DE FUNCIONES REALES

muestra esta situacin.


3

0
eje x
-1
raz

-2

-3

-4
f(x) = sqrt(x) - 5*exp(-x)
-5

Figura 3.1: Aislando grficamente una raz


otra alternativa para el aislamiento de una raz consiste en analizar el cambio de signo de los
valores de la funcin, tal como explica el siguiente ejemplo.
Ejemplo 3.2 Considere nuevamente la funcin f (x) =
donde se encuentre por lo menos una raz.

x 5ex . Determine un intervalo

Solucin: Tenemos que Df = R+


0 (los reales positivos y el cero), construimos una tabla de
valores con el signo de f (x) para determinados valores de x :
x
0 1 2 3
f (x) + +
Analizando la tabla, vemos que f admite por lo menos una raz en el intervalo [1; 2] .
Para ver si esa raz es nica en ese intervalo, podemos analizar el signo de la derivada
de f :
1
f 0 (x) = + 5ex > 0, x > 0
2 x
Vemos que f es estrictamente creciente en R+ . Por lo tanto, podemos concluir que f
admite una nica raz en Df y sta se encuentra en el intervalo [1; 2] .
Ejercicio 3.1 Sea f : R 7 R una funcin continua en R. Si sabemos que una raz de f
est en [a; b] . Qu podra usted decir sobre si:
1. f (a)f (b) < 0
2. f (a)f (b) > 0
3. f (a)f (b) 0
4. f (a)f (b) 0

3.2. REFINAMIENTO: MTODOS ITERATIVOS

31

Laboratorio 3.1 Usando un computador y un programa adecuado, grafique las siguientes


funciones y determine aquellos intervalos que incluyan alguna raz:
1. f (x) = 1000 sen(x3 + 1)/ log(5 + x2 ),

x [2; 1]

2. g(x) = ln(x2 + 1) 200(x + 10)3 + 9x2 + 5,

xR

3. h(x) = 0, 00037x11 (x )2 + x2 + 5x 100,

3.2.

xR

Refinamiento: Mtodos Iterativos

Una vez que tenemos un intervalo que contenga la raz, el siguiente paso es construir un
mecanismo que nos otorgue aproximaciones razonables a la solucin exacta.En esta seccin
veremos algunos mtodos numricos clsicos los cuales nos otorgarn aproximaciones a una
raz de f . En su mayora, estos mtodos son iterativos, es decir, que inician con una estimativa
de la solucin inicial y utilizan sta para encontrar la siguiente, y as por delante, hasta obtener
una aproximacin a la solucin.
Cuando se use un mtodo iterativo, debemos considerar un criterio para detener el algoritmo respectivo. En los mtodos que buscan una raz, stos se repetirn hasta que xk sea
prxima a la raiz exacta con presicin > 0,esto ocurrir si:

1. xk < , o

2. f (xk ) <

Pero, Cmo efectuar el primer item si no se conoce ?. Una forma es reducir el intervalo
que contiene a la raz en cada iteracin. Al conseguirse un intervalo [a; b] tal que
[a; b]

y ba<

entonces x [a; b] , |x | < . En estas condiciones, cualquier x [a; b] podra ser la


aproximacin requerida.

Figura 3.2: f () = 0

32

CAPTULO 3. CEROS REALES DE FUNCIONES REALES

El orden de grandeza de los nmeros con que trabajamos puede darnos poca informacin, tal
como mostraba el ejemplo 1.10, es aconsejable en estos casos utilizar el error relativo. Por
ejemplo, podemos considerar xk prximo de una raz, si

f (xk )
<
L

donde L = f (xk ) , para algn x escogido en una vecindad de la raz .

Otro aspecto que debemos tener en cuenta es el mximo nmero de iteraciones permitidas
por el algoritmo. Esto ayuda a evitar que el programa en computador trabaje indefinidamente,
sobre todo en el caso cuando el algoritmo no converge.
Antes de todo, debemos hacer una aclaracin con respecto a mtodo y algoritmo. Entenderemos por mtodo a un procedimiento con las justificaciones matemticas necesarias
para resolver un determinado problema. Mientras que por algoritmo, entenderemos como un
resumen del mtodo, una especie de receta.
Existen varios mtodos numricos para obtener un cero real de una funcin real, algunos
simplemente requieren que la funcin sea continua, mientras que otros requieren que la funcin
sea diferenciable. En lo que resta de este captulo analizaremos cada uno de los mtodos ms
populares que existen hoy en da. En nuestro caso, analizar comprender la construccin del
mtodo, estudiar las propiedades de convergencia y la rapidez del mismo.
Para estudiar la convergencia debemos dar las hiptesis para que el mtodo garantice una
solucin. Por otro lado, para analizar la rapidez del mtodo, es necesario tener en consideracin
dos criterios:
El nmero de iteraciones: Dada la precisin deseada , determinar el nmero de iteraciones, k, para que el algoritmo respectivo se detenga.
La rapidez: Una vez garantizada la convergencia.Determinar cul es la tasa o rapidez (velocidad) de convergencia con que trabaja el algoritmo.
Lo ms deseable es obtener el nmero de iteraciones que un algoritmo requiere para resolver
el problema, al menos una cantidad aproximada de ste, pero no siempre es posible tal hazaa.
A veces es posible obtener slo la tasa de convergencia del algoritmo, esto tambin dar
informacin sobre el desempeo del mismo, lo cual permitir realizar comparaciones para
decidir por el algoritmo ms eficiente para un determinado problema. Los detalles relacionados
a estos conceptos sern explicados a medida que vayamos avanzando.

3.2.1.

Mtodo de Biseccin

Sea f una funcin contnua en el intervalo [a; b] tal que f (a)f (b) < 0. El objetivo de este
mtodo es reducir la amplitud de este intervalo que contiene la raz hasta alcanzarse una

3.2. REFINAMIENTO: MTODOS ITERATIVOS

33

precisin requerida, (b a) < , usando para eso una sucesiva divisin de [a; b] a la mitad.

Figura 3.3: Mtodo de Biseccin


Algoritmo 3.1 (Biseccin) Dados a y b tales que f (a)f (b) < 0. Sea > 0 la precisin
deseada
1. Si (b a) < . Eligir x [a; b] y terminar el algoritmo. Caso contrario, ir al paso 2.
2. Hacer k = 1 e ir al paso 3.
3. Hacer c =

a+b
2

e ir al paso 4.

4. Si f (a)f (c) > 0, hacer a = c e ir al paso 5. Caso contrario, hacer b = c e ir al paso 5.


5. Si b a < , elegir x [a; b] y finalizar el algoritmo. Caso contrario, hacer k = k + 1 y
volver al paso 3.
Estudio de la Convergencia del Mtodo de Biseccin Bajo las hiptesis establecidas,
es claro que el mtodo de la biseccin construir una sucesin {xk } que converge a una raz.
Para probar esto analticamente procedemos del siguiente modo.
Supongamos que [a0 ; b0 ] sea el intervalo inicial y la nica raz de f en el interior de ese
intervalo. El mtodo de la biseccin genera tres sucesiones:
La sucesin {ak }kN : No decreciente y acotada superiormente por b0 . Luego, existe r R
tal que limk ak = r.
La sucesin {bk }kN : No creciente y limitada inferiormente por a0 . Luego, existe s R tal
que limk bk = s.
La sucesin {ck }kN : Genera por ck =

ak +bk
,
2

donde ak < ck < bk , para todo k = 1, 2, ... .

Observe que el tamao de cada intervalo es la mitad del intervalo anterior. As, para
k = 1, 2, ...
0
b1 a1 = b0 a
2
1
0
b2 a2 = b1 a
= b02a
2
2
b2 a2
b0 a0
b3 a3 = 2 = 22
..
.

34

CAPTULO 3. CEROS REALES DE FUNCIONES REALES


bk ak =

b0 a0
2k

(3.2)

Entonces,
lm (bk ak ) = lm

(b0 a0 )
=0
2k

Como {ak }kN y {bk }kN son convergentes:


lm bk lm ak = 0 s r = 0

Por lo tanto, s = r, Sea = s = r el lmite de las dos sucesiones. Dado que para todo
k = 1, 2, ... el punto ck hak ; bk i , entonces
lm ck =

Resta probar apenas que es un cero de la funcin f, o sea, f () = 0. Observe que en


cada iteracin k = 1, 2, ..tenemos que f (ak )f (bk ) < 0. Entonces, dado que hemos asumido f
continua en [a; b]
0

lm f (ak )f (bk ) = lm f (ak ) lm f (bk )

= f ( lm ak )f ( lm bk ) = f (r)f (s) = f ()f ()


k
2

= (f ())

de donde concluimos que f () = 0. Por tanto, limk ck = es un cero de f, como habamos


asumido que en el interior haba una nica raz, tenemos que = .
Estimacin del Nmero de Iteraciones
Dada una precisin > 0 y un intervalo inicial [a; b] , es posible saber, a priori, cuntas
iteraciones sern efectuadas por el mtodo de la biseccin (algoritmo 3.1) hasta que se cumpla
b a < .
Vimos en (3.2) que para k = 1, 2, ...
bk ak =

bk1 ak1
b0 a0
=
2
2k

(3.3)

Observe que el algoritmo (2.1) se detendr cuando bk ak < , segn la ecuacin (3.3) esto
equivale a encontrar un valor de k de modo que
b0 a0
<
2k
Esto a su vez equivale a decir que
2k >

b0 a0

Lo cual implica que


k > log2 (b0 a0 ) log2 ()

(3.4)

3.2. REFINAMIENTO: MTODOS ITERATIVOS

35

Por lo tanto, en el algoritmo 3.1, si el nmero de iteraciones k es por lo menos


[log2 (b0 a0 ) log2 ()] + 1
el intervalo [ak ; bk ] conteniendo a la raz verifica bk ak < , en estas condiciones cualquier
x [ak ; bk ] debera ser la aproximacin a la raz buscada , pues |
x | bk ak < .
Podemos concluir sobre este algoritmo que el nmero de iteraciones depender de la longitud del intervalo [a; b] y de la precisin deseada . Como muestra la ecuacin (3.4), ese nmero
de iteraciones no debera ser grande, debido a la presencia del logaritmo.
Ejemplo 3.3 Usando el algoritmo 3,1, se desea encontrar una aproximacin a un cero de la
funcin definida por
f (x) = x log10 x 1
la cual est en el intervalo [2; 3] y con precisin = 102 . Cuntas iteraciones debera efectuar
el algoritmo?
Solucin: Segn (3.3) vemos que

k log2 (3 2) log2 (102 ) + 1 = log2 1 log2 (102 ) + 1

= log2 (102 ) + 1 = 7
Luego, el algoritmo debera detenerse con k = 7 iteraciones.

Conclusin 2.1 (sobre el mtodo de biseccin) Si f : R 7 R es continua en el


intervalo [a; b] y f (a)f (b) < 0 :
El mtodo de biseccin genera una sucesin que converge a la raz de f (x) = 0, esto se
consigue mediante las reducciones sucesivas del intervalo de bsqueda hasta una precisin
deseada.
Cada iteracin no requiera clculo complicados.
No se requieren derivadas.
Las hiptesis no son rigurosas.
Converge razonablemente rpido (comparado a otros mtodos se le considera lento).
Una implementacin bsica en Matlab donde e es la precisin deseada
function [c,iter] = bissec(a,b,e)
iter=1;
while abs(b-a) > e & iter<1000
c=(a+b)/2;
if f(a)*f(c) > 0
a=c;
else
b=c;
end
iter=iter+1;
end

36

CAPTULO 3. CEROS REALES DE FUNCIONES REALES

Laboratorio 3.2 En algn lenguaje de programacin de su preferencia, implemente el algoritmo de la biseccin, y resuelva las siguientes ecuaciones:
1. ln(x2 + 1) = 200(x + 10)3 9x2 5, en R
2. 1000 sen(x3 + 1)/ log(5 + x2 ) = 0, en [2; 1]
3. 0, 00037x11 (x )2 + x2 = 5x + 100, en R
Ejemplo 3.4 Un ingeniero disea un tanque esfrico como en la figura adjunta, para almacenar agua para un poblado pequeo en un pas en desarrollo. El volumen de lquido que puede
contener se calcula con
(3R h)
V = h2
3
3
donde V = volumen (m ), h = profundidad en el tanque (m) y R = radio del tanque (m)

si R = 3m. A qu profundidad debe llenarse el tanque de modo que contenga 30m3 ? Resuelva
con el mtodo de la biseccin en un intervalo de [1, 3] y con una precisin de 0,01
Solucin: f (h) =

3v
3Rh2 + h3 sustituyendo los datos tenemos

f (h) =

90
9h2 + h3

resolviendo con el mtodo de la biseccin se observa


iter
1
2
3
4
5
6
7
8

an
bn
1.000000 3.000000
2.000000 3.000000
2.000000 2.500000
2.000000 2.250000
2.000000 2.125000
2.000000 2.062500
2.000000 2.031250
2.000000 2.031250

cn
f(an ) f(cn )
2.000000
+
+
2.500000
+
2.250000
+
2.125000
+
2.062500
+
2.031250
+
2.015625
+
+
2.023438
+
+

El tanque se debe llenar a una altura de h = 2,0234m

3.2. REFINAMIENTO: MTODOS ITERATIVOS

3.2.2.

37

Mtodo de la Posicin Falsa

Sea f : R 7 R continua en [a; b] tal que f (a)f (b) < 0. Suponga que el intervalo [a; b] contiene una nica raz de la ecuacin f (x) = 0. Podemos esperar conseguir una raz aproximada
usando las informaciones sobre los valores de f disponibles a cada iteracin.

Por ejemplo, en la figura 2.4 se aprecia que al ser |f (a)| pequeo en comparacin a |f (b)|,
podemos sospechar que la raz se encuentra ms cercana al punto a que al punto b. Luego, en
cada iteracin, en vez de tomar ck como el punto medio, como lo haca el mtodo de biseccin,
podemos tomarlo de la siguiente manera:

ck =

a |f (b)| + b |f (a)|
|f (b)| + |f (a)|

que en realidad es una media aritmtica ponderada entre a y b, con pesos |f (b)| y |f (a)| .
Despus de unos clculos, tenemos:

ck =

af (b) bf (a)
f (b) f (a)

Lo que resta del mtodo de la posicin falsa es anlogo al mtodo de biseccin, la parte donde
no se encuentra la raz debera ser desechada y el intervalo debera ser reducido hasta una
precisin deseada.

Figura 3.4: xito en el mtodo de la posicin falsa: |f (a)|


pequeo y raz cercana de a
Lamentablemente, las cosas no son como parecen, pues el valor de |f (a)| puede ser pequeo
y sin embargo, la raz puede estar muy lejos de a, tal como se aprecia en la figura 3.5. Esto
muestra que la sospecha puede estar totalmente errada, lo que retrasara la convergencia del
mtodo, de ah el nombre.

38

CAPTULO 3. CEROS REALES DE FUNCIONES REALES

Figura 3.5: Fracaso en el mtodo de la posicin falsa: |f (a)|


pequeo y raz alejada de a.
Ejercicio 3.2 Haga un algoritmo que resuma el mtodo de la posicin falsa.
Laboratorio 3.3 En algn lenguaje de programacin de su preferencia, implemente el algoritmo de la posicin falsa, pruebe con varios ejemplares y compare el nmero de iteraciones
con el mtodo de biseccin.
Ejercicio 3.3 Investigue sobre la convergencia y el nmero de iteraciones requeridas por el
mtodo de la posicin falsa.

3.2.3.

Mtodo del Punto fijo (MPF)

Sea f : R 7 R una funcin. Se dice que es un punto fijo de f, si f () = . Este concepto


es el mismo para una funcin vectorial de variable vectorial.
El mtodo del Punto Fijo consiste en lo siguiente:
1. Transforma la ecuacin f (x) = 0 en una ecuacin equivalente:
x = (x)
2. Dado un punto inicial x0 R, genera una sucesin {xk } de aproximaciones hacia , la
raz buscada, mediante la relacin
xk+1 = (xk )
Observe que la funcin debe ser una funcin que cumpla: f () = 0 si, y slo si, () = .
De este modo, resolver el problema de encontrar una raz de una ecuacin se convierte en un
otro problema de hallar un punto fijo de una funcin. Aunque a simple vista no parezca, ms
adelante veremos que esta idea trae ciertas ventajas.
La funcin con esa caracterstica se denomina funcin iteracin asociada a la ecuacin
f (x) = 0. Naturalmente, pueden existir muchas funciones iteracin asociadas a una sola
ecuacin.

3.2. REFINAMIENTO: MTODOS ITERATIVOS

39

Ejemplo 3.5 Dada la ecuacin x2 + 2x 10 = 0. Algunas candidatas a funcin iteracin son


las siguientes:
1. (x) = 5
2. (x) =

10
,
x+2

3. (x) =

10
x

x2
2

x 6= 2

2,

x 6= 0

Definicin 3.1 (Forma general de una funcin iteracin) Una funcin iteracin asociada a la ecuacin f (x) = 0, est dada de una forma general por
(x) = x + A(x)f (x)
con la condicin que en , punto fijo de , se tenga A() 6= 0.
Teorema 3.4 Si es una funcin iteracin de la ecuacin f (x) = 0, entonces f () = 0 si, y
slo si, () = .
Prueba. (.) Sea tal que f () = 0. Como () = . + A()f (), claramente tenemos
() = .
() Si () = , entonces . + A()f () = implica que A()f () = 0, esto a su vez
implica que f () = 0, pues A() 6= 0 por definicin.
Estudio de la Convergencia del Mtodo del punto Fijo
Dependiendo de la eleccin de la funcin iteracin , el mtodo del punto fijo puede o no
convergir a la solucin de la ecuacin f (x) = 0. El siguiente teorema establece las condiciones
suficientes para que esta convergencia suceda.
Teorema 3.5 Sea una raz de la ecuacin f (x) = 0, aislada en un intervalo abierto I
centrado en . Sea una funcin iteracin asociada a esta ecuacin. Si
1. y 0 son funciones contnuas en I.
2. |0 (x)| M < 1, para todo x I.
3. x0 I.
Entonces, la sucesin {xk } generada por la regla xk+1 = (xk ),
hacia .
Prueba. La prueba consta de dos partes:
1. Si x0 I, entonces xk I, para todo k = 0, 1, 2, ...
2. lmk xk =

k = 0, 1, 2, ...converge

40

CAPTULO 3. CEROS REALES DE FUNCIONES REALES

Primero, como es una raz exacta de la ecuacin f (x) = 0, se tiene que f () = 0


= (). Adems, para cualquier k = 0, 1, 2, ...se tiene xk+1 = (xk ), desde aqu
xk+1 = (xk ) ()
Como es continua y diferenciable en I, por el teorema del valor medio, existe ck entre xk y
, tal que
xk+1 = (xk ) () = 0 (ck )(xk ) k = 0, 1, 2, ...
Luego,

|xk+1 | = |0 (ck )| |(xk )| M |xk | < |xk |

k = 0, 1, 2, ..

(3.5)

Es decir, la distancia entre xk+1 y es menor que la distancia entre xk y , como I est
centrado en , vemos que si xk I. Luego, si x0 I, claramente xk I para todo k = 1, 2, ..
Para probar la segunda parte, lmk xk = , desde (3.5) vemos que:
|x1 | M |x0 |
|x2 | M |x1 | M 2 |x0 |
..
.
|xk | M k |x0 |
de donde lmk |xk | = 0, pues 0 M < 1. Por lo tanto, lmk xk = .
Ejemplo 3.6 Sea la funcin f (x) = x2 +2x10 cuya raz es 2, 3166. Dadas las funciones
iteracin
x2
1 (x) = 5
2
y
10
2 (x) =
, x 6= 2
x+2
Observe que
|01 (x)| = |x| = |x| < 1 x h1, 1i

Luego, no existe un intervalo I centrado en tal que |01 (x)| < 1 para todo x I. El teorema 2.2
no afirma nada con respecto de la convergencia de la sucesin {xk } generada por xk+1 = 1 (xk ),
pues 1 no cumple la hiptesis, el mtodo del punto fijo puede convergir o no cuando utilice 1
como funcin iteracin.
Por otro lado, si usamos la funcin iteracin 2 , la situacin es diferente. Observe que

D
E D
E

10
0
< 1 x ; 10 2
10

2;
+

|2 (x)| =
(x + 2)2
h; 5, 1622i h1, 1622; +i

Luego, existe un intervalo I centrada en , tal que |02 (x)| < 1 para todo x I. En este caso,
el teorema asegura la convergencia del MPF tomando x0 I.
Ejercicio 3.4 Analice el caso para la funcin f (x) = x2 + 2x 10, cuya raz es 2, 3166,
cuando se usa como funcin iteracin:
3 (x) =

10
2,
x

x 6= 0

Adems, analice el otro caso, cuando consideramos como raz a 4, 1622.

3.2. REFINAMIENTO: MTODOS ITERATIVOS

41

Algoritmo 3.2 (Punto Fijo) Considere la ecuacin f (x) = 0 y la ecuacin equivalente x =


(x). Supongamos que ya es conocida explcitamente y las hiptesis suficientes del teorema 3.5
son satisfechas. Dada una precisin deseada > 0, el algoritmo se detendr cuando |f (xk )| < .
La aproximacin al punto fijo (la raz buscada) ser x.
1. Datos iniciales:
a) x0 , la aproximacin inicial
b) 1 y 2 las precisiones deseadas
2. Si |f (x0 )| < 1 , hacer x = x0 , finalizar el algoritmo
3. k = 1
4. x1 = (x0 )
5. Si |f (x1 )| < 1 o si |x1 x0 | < 2 , hacer x = x1 , finalizar el algoritmo
6. x0 = x1
7. k = k + 1. Volver a paso 4.
Laboratorio 3.6 En algn lenguaje de programacin de su preferencia, implemente el MPF
y ejecute el programa sobre el problema del ejemplo 3.5. Observe que el mtodo diverge cuando
usamos 1 , pruebe con varios puntos iniciales e interprete los resultados
Tasa de Convergencia del Mtodo de Punto Fijo
Cuando vimos el mtodo de biseccin, notamos que era posible obtener una cota inferior
para el nmero de iteraciones a ser realizadas por el algoritmo. Pero eso no siempre es posible,
as, necesitamos de algunos parmetros que nos indiquen con qu rapidez la sucesin generada
por un algoritmo converge a la solucin deseada. Eso nos permitir calificar a un algoritmo
como lento o rpido.

Definicin 3.2 (Tasa o rapidez de convergencia) Sea la sucesin r(k) generada por algn algoritmo, de modo que lmk r(k) r. Asumamos que r(k) 6= r para todo k = 0, 1, 2, ..,
la tasa de convergencia del algoritmo es el supremo P de los nmeros no negativos p satisfaciendo:

(k+1)
r
r
lm
p = <
k kr (k) r
k

Si P = 1 y el radio de convergencia < 1, la sucesin se dice que tiene una tasa de convergencia lineal (por lo menos lineal). Si P 1 y = 0, la sucesin tiene tasa de convergencia sper
lineal. Si P = 2 y < , entonces diremos que la sucesin tiene una tasa de convergencia
cuadrtica

Una manera natural de ver esta situacin es la siguiente: supongamos que r(k) es una
sucesin generada por un algoritmo la cual converge a la solucin r, donde el algoritmo presenta
una tasa de convergencia lineal, entonces:

(k+1)
r
r r(k) r, k k0
|
| {z }
{z
}
ek+1

ek

42

CAPTULO 3. CEROS REALES DE FUNCIONES REALES

nos dice que el error ek+1 cometido en la iteracin k + 1 es menor (linealmente) que el error
ek en la iteracin k, cuando k0 es grande.
En el caso de una tasa de convergencia cuadrtica, es claro que el error cometido en la
iteracin k + 1 es aproximadamente el cuadrado del error cometido en la iteracin anterior.
Esto indica que para valores grandes de k0 y en las proximidades de r, el error ek+1 disminuye
considerablemente con respecto a ek :

2
(k+1)
r
r r(k) r ,
|
{z
} |
{z
}
ek+1

k k0

e2k

As, un algoritmo con tasa de convergencia cuadrtica convergir con mayor rapidez hacia un
punto de acumulacin, que uno que posee tasa de convergencia sper lineal. Por otro lado,
un algoritmo con tasa de convergencia sper lineal ser ms rpido que uno con tasa de convergencia lineal. Ms adelante veremos que el Mtodo Secante tiene una tasa de convergencia
P = 1, 618...
Proposicin 3.1 (Tasa de convergencia de MPF) Asumamos que la sucesin generada
por el Mtodo del Punto Fijo converge a , la raz de f , entonces la tasa de convergencia es
por lo menos lineal
Prueba. Desde (3.5), tenemos
|xk+1 | = |0 (ck )| |xk | ,

ck entre xk y ,

k = 0, 1, 2, ...

Luego
|xk+1 |
= |0 (ck )| ,
|xk |

ck entre xk y ,

k = 0, 1, 2, ...

Tomando lmites, por la continuidad de y 0 , tenemos


|xk+1 |

= lm |0 (ck )| = 0 lm ck = |0 ()| = M < 1


k |xk |
k
k
lm

As, vemos que el mtodo del punto fijo posee una tasa de convergencia lineal, por este
motivo mucha veces se le considera lento. Sin embargo, el mtodo de biseccin posee esa misma
velocidad, tal como lo afirma el siguiente ejercicio.
Ejercicio 3.5 Muestre que la tasa de convergencia del mtodo de la biseccin es lineal.

3.2.4.

El Mtodo de Newton-Raphson

Cuando estudiamos el mtodo del punto fijo, notamos que:


1. Una de las condiciones para la convergencia es que |0 (x)| M < 1, para todo x I,
donde I es un intervalo centrado en la raz.
2. La convergencia del mtodo ser ms rpida cuando menor sea |0 ()| .

3.2. REFINAMIENTO: MTODOS ITERATIVOS

43

La segunda afirmacin se debe al siguiente hecho: cuando analizamos la tasa de convergencia del MPF, vimos que
|xk+1 |
lm
= |0 ()| < 1
k |xk |

Entonces, acelerar la convergencia del MPF se conseguira escogiendo una funcin iteracin de
modo que 0 () = 0, pues en este caso la tasa de convergencia sera por lo menos sper-lineal.
Hacia este objetivo, dada la ecuacin f (x) = 0 cuya raz es . Consideramos la forma
general de la funcin iteracin (x) = x + A(x)f (x), donde A() 6= 0, con la nueva condicin
0 () = 0. As,
(x) = x + A(x)f (x) = 0 (x) = x + A0 (x)f (x) + A(x)f 0 (x)
Luego,
0 () = x + A0 ()f () + A()f 0 () = 0 () = 1 + A()f 0 ()
de donde
0 () = 0 1 + A()f 0 () = 0 A() =
Esto nos motiva a definir
A() =

1
f 0 ()

f 0 () 6= 0

1
f 0 ()

Entonces, dada la ecuacin f (x) = 0, la funcin iteracin deseada ser de la forma:


(x) = x

f (x)
. f 0 (x) 6= 0
f 0 (x)

(3.6)

Observe que
0 (x) = 1

(f 0 (x))2 f (x)f 00 (x)


f (x)f 00 (x)
0
=
2
2 . f (x) 6= 0
0
0
(f (x))
(f (x))

y como f () = 0, se tiene que 0 () = 0.


Por lo tanto, usando la funcin iteracin definida en (3.6) obtenemos un caso particular
del mtodo del punto fijo, a ste se le denomina mtodo de Newton.
En resumen, dado x0 R, el Mtodo de Newton consiste en construir una sucesin definida
por la regla
f (xk )
, f 0 (xk ) 6= 0, k = 0, 1, 2, ..
(3.7)
xk+1 = xk 0
f (xk )
Otro Enfoque del Mtodo de Newton-Raphson
Desde el punto de vista geomtrico, el mtodo de Newton puede ser visto como la solucin
de un problema difcil, mediante la sucesiva resolucin de problemas fciles.Es decir, dada una
aproximacin inicial xk R a la raz buscada, el problema dificil ser hallar una raz de la
ecuacin no lineal f (x) = 0, mientras que el problema fcil asociado ser resolver la ecuacin
Lk (x) = 0, donde L es una funcin lineal afn que es parecida, al menos localmente, a la
funcin no lineal f en torno al punto xk.

44

CAPTULO 3. CEROS REALES DE FUNCIONES REALES

As, sea el problema (difcil) que consiste en hallar una raz de f (x) = 0 y x0 R una
aproximacin inicial. Por el teorema de Taylor, existe > 0 tal que
f (x) L0 (x) = f (x0 ) + f 0 (x0 )(x x0 )
para todo x hx0 , x0 + i. Luego, denotando por x1 la solucin de la ecuacin lineal
(3.8)

L0 (x) = 0
y asumiendo que f 0 (xk ) 6= 0, entonces L0 (x) = 0 si, y slo si,
f (x0 ) + f 0 (x0 )(x x0 ) = 0
de donde
x1 = x0

f (x0 )
f 0 (x0 )

Esperando que x1 sea una mejor aproximacin que x0 a la solucin de f (x) = 0. Este procedimiento puede ser repetido iterativamente, crendose una sucesin {xk }
k=0 , donde
xk+1 = xk

f (xk )
,
f 0 (xk )

f 0 (xk ) 6= 0,

k = 0, 1, 2, ..

Bajo algunas hiptesis se consigue que lmk xk = .

Figura 3.6: Iteraciones Newton


Convergencia del Mtodo de Newton-Raphson
A continuacin damos las condiciones bajo las cuales se asegura la convergencia del mtodo
de Newton.
Teorema 3.7 Sean f ,f 0 y f 00 contnuas en un intervalo abierto I que contiene en su interior
la raz de f (x) = 0, donde f 0 () 6= 0, entonces existe un intervalo abierto I I conteniendo
la sucesin {xk } generada por
la raz , tal que si x0 I,
xk+1 = xk
convergir para .

f (xk )
,
f 0 (xk )

f 0 (xk ) 6= 0,

k = 0, 1, 2, ..

3.2. REFINAMIENTO: MTODOS ITERATIVOS

45

Prueba. Observe que el mtodo de newton es en realidad un MPF con la funcin iteracin
(x) = x ff0(x)
.As, para probar la convergencia debemos probar que existe un I I, centrado
(x)
en , tal que:
1. y 0 son contnuas en I
2. |0 (x)| M < 1, para todo x I
00

(x)f (x)
, 0 (x) = f(f
y por hiptesis f 0 () 6= 0. Como f 0 es
Vemos que (x) = x ff0(x)
0 (x))2
(x)
contnua en I,es posible obtener un intervalo abierto I1 I, I1 , tal que f 0 (x) 6= 0 para
todo x I1 .

As, en el intervalo I1 se tiene que f ,f 0 y f 00 son continuas y f 0 (x) 6= 0, x I1 . Por lo


tanto, y 0 son contnuas en I1 .
00

(x)f (x)
0
0
Como 0 (x) = f(f
0 (x))2 , es contnua en I1 y () = 0, entonces es posible obtener otro
intervalo abierto I2 I1 , centrado en , tal que |0 (x)| < 1 para todo x I2 .

Por lo tanto, hemos encontrado un intervalo abierto I I2 centrado en donde y 0


As, si x0 I,
la sucesin {xk } generada por la regla de
son contnuas y |0 (x)| < 1, x I.
0
correspondencia xk+1 = xk f (xk )/f (xk ) converge hacia la raz de f (x) = 0.
En pocas palabras, lo que dice el teorema anterior es que el mtodo de Newton converge
slo si el punto inicial es tomado lo suficientemente prximo de la solucin , esta propiedad
se conoce como convergencia local, la cual es una desventaja. Ms adelante veremos que, en
cierta forma, ese defecto se compensa con la rapidez con que converge el mtodo.
Algoritmo 3.3 (Newton-Raphson) Dada la ecuacin f (x) = 0. Suponga que las hiptesis
de suficiencia dadas en el teorema 2.3 son satisfechas. El algoritmo otorgar una aproximacin
x a la raz
Paso inicial: Sea x0 una aproximacin inicial de y 1 , 2 > 0 las precisiones deseadas
Paso principal: Si |f (x0 )| < 1 , hacer x = x0 y finalizar. Caso contrario hacer:
1. k = 1
2. x1 = x0 f (x0 )/f 0 (x0 )
3. Si |f (x1 )| < 1 o si |x1 x0 | < 2 , hacer x = x1 y finalizar. Caso contrario, hacer
a) x0 = x1
b) k = k + 1. Volver al paso 2.
Laboratorio 3.8 En algn lenguaje de programacin de su preferencia, implemente el algoritmo de Newton y experimntelo con diversos ejemplares. Compare sus resultados con los
mtodos anteriormente estudiados.
Tasa de Convergencia del Mtodo de Newton-Raphson

46

CAPTULO 3. CEROS REALES DE FUNCIONES REALES

Dada una raz exacta de la ecuacin f (x) = 0. Sea {xk } la sucesin generada por el
mtodo de newton, tal que lmk xk = .
Debido a que el mtodo de Newton es un caso particular de MPF, entonces debe tener
por lo menos una tasa de convergencia lineal. Nosotros mostraremos que es mucho ms que
eso, debido a la condicin 0 () = 0, el mtodo alcanzar una tasa cuadrtica, es decir, en la
definicin 2.2, P = 2.
Supongamos adems que se satisfacen todas las hiptesis del teorema 2.3. Observe que
xk+1 = xk

f (xk )
f (xk )
f (xk )
= xk+1 = xk 0
= ek+1 = ek 0
0
f (xk )
f (xk )
f (xk )

donde ek = xk . Usando la serie de Taylor para f en torno al punto xk : f (x) = f (xk ) +


f 0 (xk )(x xk ) + 12 f 00 (ck )(x xk )2 , ck est entre x y ck . Para x = , tenemos
1
0 = f (xk ) + f 0 (xk )( xk ) + f 00 (ck )( xk )2
2
de donde

1
f (xk ) = f 0 (xk )(xk ) f 00 (ck )(xk )2
2
0
Dividiendo entre f (xk ), obtenemos
f (xk )
f 00 (ck )(xk )2
=
(x

k
f 0 (xk )
2f 0 (xk )
f 00 (ck )e2k
= ek
2f 0 (xk )
Luego,
f (xk )
f 00 (ck )e2k
= ek 0
= ek+1
0
2f (xk )
f (xk )
de donde

ek+1
f 00 (ck )
=
e2k
2f 0 (xk )

Despus de unos clculos, vemos que


(f 0 (x))2 (f 0 (x)f 00 (x) + f (x)f 000 (x)) (f (x)f 00 (x))((f 0 (x))2 )0
(x) =
(f 0 (x))4
00

de donde 00 es continua en y
00 () =

f 00 ()
f 0 ()

Llevando (3.9) al lmite, tenemos


|f 00 (ck )|
k |2f 0 (ck )|
1 |f 00 ()| 1 00
1 |f 00 (lmk ck )|
=
= | ()| =
=
2 |f 0 (lmk ck )|
2 |f 0 ()|
2

|ek+1 |
=
k |ek |2
lm

lm

Por lo tanto, el mtodo de Newton una tasa de convergencia cuadrtica.

(3.9)

3.2. REFINAMIENTO: MTODOS ITERATIVOS

47

Ejemplo 3.7 Un ingeniero disea un tanque esfrico como en la figura adjunta, para almacenar agua para un poblado pequeo en un pas en desarrollo. El volumen de lquido que puede
contener se calcula con
(3R h)
V = h2
3
3
donde V = volumen (m ), h = profundidad en el tanque (m) y R = radio del tanque (m)

si R = 5m. A qu profundidad debe llenarse el tanque de modo que contenga 20m3 ? Resuelva
con el mtodo de Newton Raphson para determinar la respuesta, con un punto de inicio de 1,5
con una precisin de 0,01
Solucin: f (h) =

3v
3Rh2 + h3 sustituyendo los datos tenemos

60
15h2 + h3

f 0 (h) = 60h + 3h2


f (h) =

iter
xn
1
1.500000
2
1.358824
3
1.276550
4
1.230143
5
1.204658
6
1.190916
..
..
.
.
12
1.175701
El tanque se debe llenar a una profundidad de h = 1,175701m
Ejemplo 3.8 El desplazamiento x (metros) de una masa que experimenta una oscilacin
amortiguada vara con el tiempo t (segundos) segn el modelo:

t
x = 0,1e cos(t)
sin(t)

donde y tienen unidades de seg1 . Al realizar mediciones se obtiene un desplazamiento


x de 0,0162 metros en un instante t de 0,41 segundos, = 7,5 seg1 . Determine el parmetro
.

48

CAPTULO 3. CEROS REALES DE FUNCIONES REALES


1. Localice la raz o raices

Solucin: Grficandof () = 0,0162 + 0,1e0,41 cos ((7,5)(0,41))


-6

-5

-4

-3

-2

-1

7,5

sin ((7,5)(0,41))

-0.02
-0.04
-0.06
-0.08
-0.10
-0.12
-0.14
-0.16
-0.18
-0.20

Hay una raz en el intervalo [5, 4] .


Tabulando

-8
-7
-6
-5
-4
-3
-2
-1
0
1

f ()
0.0127
0.0109
0.0081
0.0039
-0.0025
-0.0122
-0.0270
-0.0494
-0.0836
-0.1355

Se observa el cambio de signo en el intervalo [5, 4]


2 Realice las iteraciones
de 0,01
iter
0
1
2
3
4
5
6

del mtodo de Biseccin en el intervalo [5, 4] con una precisin


an
-5.000000
-4.500000
-4.500000
-4.375000
-4.375000
-4.343750
-4.343750

bn
-4.000000
-4.000000
-4.250000
-4.250000
-4.312500
-4.312500
-4.328125

cn
f(an ) f(cn )
-4.500000
+
+
-4.250000
+
-4.375000
+
+
-4.312500
+
-4.343750
+
+
-4.328125
+
-4.335938
+
-

3.2. REFINAMIENTO: MTODOS ITERATIVOS

49

c =
-4.33593750000000
iter =
7
3 Realice las iteraciones del mtodo de Newton con x0 = 1, con una precisin de 0,000001.
Solucin:
iter
0
1
2
3
4

x
1.000000
-1.132689
-2.896597
-3.978633
-4.312296

x =
-4.33791420672419
iter =
5
Ejemplo 3.9 La concentracin c de una bacteria contaminante en un lago decrece segn la
expresin
c(t) = 80e2t + 20e0,5t
siendo t el tiempo en horas. Determine el tiempo que se necesita para que el nmero de bacterias
se reduzca a 7
Solucin:
c(t) 7 = 0
siendo la funcin
y = 80e2t + 20e0,5t 7
y su derivada
y 0 = 160e2t 10e0,5t
Para x0 = 2 y con una precisin e = 0,000001 tenemos:
iter
0
1
2
3

x
2.000000
2.275799
2.327681
2.329087

x =
2.32908761684562
iter =
4
Ejemplo 3.10 Determinar la raz real usando el mtodo de la Biseccin

a. 3 sin x = cos x en el intervalo [0, /2] con una precisin de 104

50

CAPTULO 3. CEROS REALES DE FUNCIONES REALES


Solucin: f (x) =

3 sin x cos x = 0

iter
0
1
2
3
4
5
..
.
12
13

an
0.000000
0.000000
0.392699
0.392699
0.490874
0.490874
..
.

bn
1.570796
0.785398
0.785398
0.589049
0.589049
0.539961
..
.

cn
f(an ) f(cn )
0.785398
+
0.392699
0.589049
+
0.490874
0.539961
+
0.515418
..
..
..
.
.
.
0.523471 0.523854 0.523663
+
0.523471 0.523663 0.523567
-

c =
0.52356681766522
iter =
14

+ 3 = 0 en el intervalo [1, 6] con una precisin de 102



Solucin: f (x) = 3 cos x2 + 3 = 0

b. 3 cos

iter
0
1
2
3
4
5
6
7
8

an
1.000000
3.500000
4.750000
5.375000
5.687500
5.843750
5.921875
5.960938
5.980469

bn
6.000000
6.000000
6.000000
6.000000
6.000000
6.000000
6.000000
6.000000
6.000000

cn
f(an ) f(cn )
3.500000
+
+
4.750000
+
+
5.375000
+
+
5.687500
+
+
5.843750
+
+
5.921875
+
+
5.960938
+
+
5.980469
+
+
5.990234
+
+

c =
5.99023437500000
iter =
9
c. xex = 0 en el intervalo [0, 2] con una precisin de 102
Solucin:
iter
0
1
2
3
4
5
6
7

an
0.000000
1.000000
1.000000
1.000000
1.000000
1.062500
1.062500
1.062500

bn
2.000000
2.000000
1.500000
1.250000
1.125000
1.125000
1.093750
1.078125

cn
f(an ) f(cn )
1.000000
1.500000
+
1.250000
+
1.125000
+
1.062500
1.093750
+
1.078125

+
1.070313
-

3.2. REFINAMIENTO: MTODOS ITERATIVOS

51

c =
1.07031250000000
iter =
8
Ejemplo 3.11 Justificar que f (x) tiene una nica solucin en el intervalo [1, 2], graficamente
y analticamente (existencia y unicidad)
a. f (x) = x 2 + ln x
Solucin: y = x 2 + ln(x)
5

0
1

-5
-10

es continua en [1, 2] y f (1).f (2) < 0, entonces existe solucin en [1, 2] .Derivando
x+1
no cambia de signo en [1, 2] , por lo que la solucin es nica
x

b. f (x) = x 5ex

Solucin: y = x 5ex

dy
dx

2
0
1

-2
-4

dy
=
es continua en [1, 2] y f (1).f (2) < 0, entonces existe solucin en [1, 2] .Derivando
dx
1
+ 5ex no cambia de signo en [1, 2] , por lo que la solucin es nica
2 x
Ejemplo 3.12 Modifique su programa de Biseccin e implemente el error absoluto que existe
en cada iteracin y hallar la raz de la ecuacin x2 = 4 sin x en el intervalo [1, 3] con una
precisin de 0,01 y muestre el error relativo en cada iteracin
iter
0
1
2
3
4
5
6
7

an
1.000000
1.000000
1.500000
1.750000
1.875000
1.875000
1.906250
1.921875

bn
3.000000
2.000000
2.000000
2.000000
2.000000
1.937500
1.937500
1.937500

cn
2.000000
1.500000
1.750000
1.875000
1.937500
1.906250
1.921875
1.929688

error
2.000000
1.000000
0.500000
0.250000
0.125000
0.062500
0.031250
0.015625

52

CAPTULO 3. CEROS REALES DE FUNCIONES REALES


c =
1.92968750000000
iter =
8

Ejemplo 3.13 Aplicando el mtodo de Newton, encontrar


la raz de la ecuacin f (x) = 3x +

x
(k)
(k1)

sin x e , e itere hasta que se cumpla x x


0,0001.
a) Pruebe con x0 = 5

Solucin:
iter
x
0
-5.000000
1
-0.713110
2
0.292224
c =
0.35892945873110
iter =
3
b) Pruebe con x0 = +5 y comente sus resultados
Solucin:
iter
0
1
2
3
4
5

x
5.000000
4.074123
3.233979
2.559328
2.122692
1.929768

c =
1.89147102717311
iter =
6
Esta funcin tiene dos raices en 0.3589 y 1.8915. Como se puede apreciar en el siguiente
grfico de 3x + sin x ex
-1

y
-2
-4
-6
-8
-10

3.2. REFINAMIENTO: MTODOS ITERATIVOS

53

4x 7
tiene una raz en x = 1,75. Utilizar el mtodo de
x2
Newton con las siguientes aproximaciones iniciales, estudiando en cada caso, previamente, si
se produce un proceso de convergencia a no a la raz.(con una precisin de 0,001)
Ejemplo 3.14 La funcin f (x) =

a. x0 = 1,6
Solucin:
iter
0
1
2
3
4

x
1.600000
1.840000
1.782400
1.754199
1.750071

c =
1.75000001989665
iter =
5
Converge a la raz
b. x0 = 1,5
Solucin:
iter
x
0
1.500000
..
..
.
.
NaN
c =
NaN
iter =
2
No converge a la Raz
c. x0 = 3
Solucin:
iter
0
1
2
3
4
5
6
7
8

x
3.000000
8.000000
158.000000
97658.000000
38146972658.000023
5820766091346748400000.000000
135525271560688430000000000000000000000000000.000000
7346839692639338500000000000000000000000000000000...
2159042138773635700000000000000000000000000000000...

54

CAPTULO 3. CEROS REALES DE FUNCIONES REALES


c =
Inf
iter =
9
Converge a una falsa solucin.

3.2.5.

Mtodo de Secante

Uno de los incovenientes en el mtodo de Newton es el clculo de la derivada de f en cada


iteracin, es decir, evaluar f 0 (xk ). Una manera de enfrentar esto es considerar una aproximacin
de la derivada:
f (xk ) f (xk1 )
f 0 (xk )
, xk xk1
xk xk1
donde xk y xk1 son dos estimativas de la raz exacta . Para este caso, la funcin iteracin
Newton queda establecida como
(xk ) = xk

f (xk )
f (xk )f (xk1 )
xk xk1

= xk

f (xk )(xk xk1 )


f (xk ) f (xk1 )

O si lo prefiere, dadas dos estimativas iniciales para la raz de la ecuacin f (x) = 0, x0 y x1 ,


el mtodo secante consiste en construir una sucesin {xk } definida por la regla
xk+1 = xk

f (xk )(xk xk1 )


,
f (xk ) f (xk1 )

k = 1, 2, 3, ...

(3.10)

Las condiciones para la convergencia del mtodo secante son prcticamente las mismas que
las del mtodo de Newton. Si bien la dificultad del clculo explcito de la derivada fue evitada,
lamentablemente el precio que se paga por esto es la disminucin en la tasa de convergencia,
que es sper-lineal. Una interpretacin grfica puede ser vista en la figura 3.7.

Figura 3.7: MtodoSecante


Convergencia del Mtodo Secante
Al igual que el Mtodo de Newton, la convergencia de Mtodo Secante est asegurada
cuando los puntos iniciales x0 y x1 fueron tomados lo suficientemente prximos de la raz
buscada . El teorema a seguir formaliza esta afirmacin.

3.2. REFINAMIENTO: MTODOS ITERATIVOS

55

Teorema 3.9 Sea una raz de f (x) = 0 y suponga que f C 2 en una vecindad en torno de
donde f 0 () 6= 0. Si los puntos iniciales x0 y x1 estn suficientemente prximo de , entonces
lmk xk = .
Prueba. Desde la ecuacin (3.10), tenemos
xk+1 = xk +

f (xk )(xk xk1 )


f (xk ) f (xk1 )
f ()f (x

= ( xk1 )( xk )

xk

k ) f (xk )f (xk1 )
xk xk1

xk1
f (xk )f (xk1 )
xk xk1

f 00 ( k )
= ( xk1 )( xk )
2f 0 ( k )

(3.11)

donde k est entre , xk y xk1 , mientras que k est entre xk y xk1 . Como f C 2 , existe
una vecindad I = [ , + ], con > 0, tal que f 0 y f 00 son continuas y f 0 (x) 6= 0 para todo
x I. Por tanto, existe M > 0 tal que
00

f ( k )

M = max 0
xI 2f ( k )
Elijamos los puntos iniciales x0 , x1 I, de modo que

M | x0 | < 1 y M | x1 | < 1
Definamos ahora t = max {M | x0 | , M | x1 |} , claramente t < 1. As, por (3.11) tenemos
00

f ( k )
M | x2 | = M ( x1 ) ( x0 )
2f 0 ( k )
= M 2 | x1 | | x0 | t2 t < 1
de donde

t
= max {| x0 | , | x1 |} <
M
As, x2 I. Usando este argumento, tenemos por induccin que xk I, para k 2. En
general se tiene
M | x2 | = M 2 | x1 | | x0 | t2
M | x3 | = M 2 | x2 | | x1 | t3
M | x4 | = M 2 | x3 | | x2 | t5
..
.
| x2 | <

M | xk+1 | = M 2 | xk | | xk1 | tFk


de donde Fk es el ksimo trmino de la sucesin de Fibonacci. Por lo tanto lmk M | xk | =
0.
Tasa de Convergencia del Mtodo Secante
A continuacin analizaremos la tasa de convergencia que el Mtodo Secante posee. Debemos
recalcar que algunos autores denominan a esta propiedad como el orden de convergencia.

56

CAPTULO 3. CEROS REALES DE FUNCIONES REALES

Teorema 3.10 Sea una raz de f (x) = 0. Asumamos que la sucesin generada por el Mtodo
Secante converge hacia . Si f C 2 y f 0 () 6= 0, entonces el Mtodo Secante tiene una tasa
de convergencia p = 1+2 5 = 0, 618... y
p1
00
xk+1
f ( k )
lm
p =
k ( xk )
f 0 ( k )
Prueba. Desde (3.11) tenemos
xk+1

f 00 ( k )
= ( xk+1 ) ( xk )
f 0 ( k )

(3.12)

donde k est entre , xk y xk1 , mientras que k est entre xk y xk1 . Resolviendo (3.12)
obtenemos
1 n n
( xk ) = Ap B r
(3.13)
K
1
1
rp

f 00 ( k )
((x0 )K)r rp
(x1 )K
1+ 5
1 5
donde K = 2f
,
p
=
,
r
=
,,A
=
y
B
=
, la
p
0 ( )
2
2
(x1 )K
((x0 )K)
k
solucin de (3.12) dada por (3.13) se puede comprobar por la sustitucin directa. Por lo tanto,
xk+1
p1 rn
B (r p)
p = K
( xk )
y

p1
00
xk+1
f ( k )
p1
rn
m K
lm B (r p) =
lm
p = l
k ( xk )
k
k
2f 0 ( k )

xk+1
1+ 5
Como se puede observar, lmk (x
1, 61803398, el cual en cierta
p existe para p =
2
k)
forma nos recuerda al nmero ureo, 0, 61803398..., concluimos entonces que la tasa o rapidez
(orden) de convergencia del Mtodo Secante es aproximadamente 1, 618.

Como se puede observar, el Mtodo Secante posee una tasa de convergencia un tanto inferior
al Mtodo de Newton, que tiene una tasa cuadrtica. No obstante, la tasa de convergencia de
1, 618 es superior a una lineal, y en la prctica esa disminucin en la velocidad de convergencia
y su evaluacin en cada iteracin.
Laboratorio 3.11 En algn lenguaje de programacin de su preferencia, implemente el mtodo secante y experimntelo con diversos ejemplares. Compare en la prctica sus resultados con
los mtodos anteriores estudiados.
Ejercicio 3.6 Experimente y compare los mtodos estudiados en este captulo, hallando una
raz de la ecuacin f (x) = 0, donde
f (x) = x x ln(x)
Ejercicio 3.7 Experimente y compare los mtodos estudiados en este captulo, hallando un
raz de la ecuacin f (x) = 0, donde
f (x) = ex 4x2

3.2. REFINAMIENTO: MTODOS ITERATIVOS

57

Ejercicio 3.8 Sea


x2
+ x (ln(x) 1)
2
Halle sus puntos crticos (puntos donde f 0 (x) = 0) usando un mtodo iterativo estudiado en
este captulo.
f (x) =

Ejercicio 3.9 Halle un punto donde la funcin


f (x) = x2 + x3 (ln(x) 3) + 850

alcanza un mnimo sobre el intervalo [10, 20] .

Ejercicio 3.10 (ciclaje en el mtodo de newton) Las iteraciones del Mtodo de Newton
entrarn en un ciclo ilimitado si
Esto a su vez sucede si f satisface

xn+1 a = (xn a)

f (x)
= (x a)
f 0 (x)
La anterior expresin es una ecuacin diferencial ordinaria separable de la forma
f (x)
1
=
0
f (x)
2(x a)
cuya solucin es
p
f (x) = sign(x a) |x a|
xa

donde la funcin sign es la funcin signo, el. cero de f es claramente x = a. Grficamente f


para el caso a = 2. Seguidamente, use un punto inicial x0 , donde x0 6= a, y ejecute al algoritmo
de Newton.
Ejercicio 3.11 Se considera la funcin F (x) = x5 + 2x. Mediante el Mtodo de Newton,
hallar el menor nmero positivo x (con tres decimales) para el cual F (x) = 4.
Ejercicio 3.12 Probar, mediante el mtodo de Newton, que la ecuacin
xn+1 = xn (2 axn )

se puede utilizar para aproximar 1/a si x0 es una estimacin inicial del recproco de a. Ntese
que este mtodo de aproximar recprocos utiliza slo operaciones de suma y multiplicacin.
(considerar f (x) = x1 a). Pruebe para los casos:
1.

1
3

2.

1
11

Ejercicio 3.13 Pruebe que, al ser aplicado el mtodo de newton en la resolucin ax + b = 0,


donde a 6= 0, ste requiere slo una iteracin, sin importar qu punto inicial fue tomado.
Ejercicio 3.14 En los casos siguientes, aplicar el mtodo de Newton con la estimacin inicial
propuesta, explicar por qu falla el mtodo.
1. y = 2x3 6x2 + 6x 1,
2. y = 4x3 12x2 + 12x 3,

donde x0 = 1
donde x0 =

3. y = x3 + 3x2 x + 1, donde x0 = 1

4. y = 3 x 1, donde x0 = 2

3
2

58

CAPTULO 3. CEROS REALES DE FUNCIONES REALES

3.2.6.

Comparacin de los Mtodos Iterativos

El esfuerzo computacional para la ejecucin de cada uno de los mtodos depende de varios
factores, los ms importantes son:
1. La complejida de los clculos, sobre todo para la derivada.
2. El nmero total de iteraciones
3. Condiciones para la convergencia
El mtodo de la biseccin y el mtodo de la posicin falsa exigen pocas condiciones para
garantizar la convergencia, el incoveniente est en que el nmero de iteraciones puede ser
grande. Observe que su tasa de convergencia es lineal.
Los mtodos de punto fijo frecuentemente son ms rpidos, pero a cambio exigen mucha
hiptesis para la convergencia.
El ms rpido es el mtodo de newton, pero requiere el clculo de la derivada y demanda,
al igual que los mtodos de punto fijo, hiptesis rigurosas para su convergencia.
El mtodo secante puede ser prctico cuando el clculo de la derivada es complicado, pero
no es tan rpido como el mtodo de Newton.
Se puede concluir que la eleccin del mtodo ms eficiente depende de la ecuacin que se
intente resolver. Cada mtodo tiene sus ventajas y desventajas.
Como un comentario adicional, despus de llevar al computador cada uno de estos mtodos
y experimentarlos con diversos ejemplares, probablemente el estudiante halle que las diferencias
de tiempo de ejecuacin, entre un programa y otro, sea insignificante cuando se aplica a la
resolucin de una ecuacin, y ese afn por buscar el mtodo ms rpido parecera no tener
sentido. Esa percepcin es equivocada, pues estos mtodos deben verse como subrutinas de
otros mtodos iterativos ms sofisticados, para otro tipo de problemas, donde la prdida de
una fraccin de segundos restara el desempeo del mtodo en su conjunto.

3.3.

Problemas

Problema 3.1 Por un canal trapezoidal fluye agua a una tasa de Q = 20m3 /s. La profundidad
crtica y para dicho canal satisface la ecuacin
0=1

Q2
B
gA3c

donde g = 9, 81m/s2 , Ac = rea de la seccin transversal (m2 ) y B = ancho del canal en la


superficie (m). Para este caso, el ancho y el rea de la seccin transversal se relacionan con
la profundidad y por medio de
B =3+y

y Ac = 3y +

y2
2

Resuelva para la profundidad crtica con el uso de los mtodos

3.3. PROBLEMAS

59

1. Grfico
2. Biseccin en el intervalo [0,5 2,5] con una precisin de 0,0001
3. Falsa posicin en el intervalo [0,5 2,5] con una precisin de 0,0001. Analice sus resultados
Problema 3.2 Construya una matriz mgica de orden 7 (A=magic(7)) y anote los comandos
que efecten para:
1. Obtener un arreglo P los elementos de A comprendidos entre las filas 2 y 5 y las columnas
1 y 4.
2. Obtener un arreglo Q las tres ltimas columnas de A
3. Obtener un arreglo R las tres primeras filas de A
4. Crear un arreglo B que contenga las filas de A con las filas 1 y 4 intercambiadas.
Problema 3.3 Escriba una implementacin en un archivo M funcin, que permita evaluar la
funcin
2y x2
f (x, y) = x + p
x2 + y 2 + 103

en los puntos

1. (x, y) = (3, 4)

2. (x, y) = (, 2)
Problema 3.4 Determine la raiz aproximada de la funcin f (x) = x2 4 sin x = 0 en el
intervalo [1, 3] con una precisin de 0,000001 use el mtodo de la biseccin, posicin falsa y
punto fijo.
Problema 3.5 Determinar las races de f (x) = 0,5x2 + 2,5x + 4,5
1. Grficamente y aislar sus races
2. Empleando la frmula cuadrtica
3. usando el mtodo de biseccin, empleando los intervalos encontrados en (a) con una
precisin de 0,000001
Problema 3.6 Fundamente y describa brevemente, como trabajan:
1. El mtodo de la Posicin falsa
2. El mtodo de punto fijo
3. El mtodo de Newton
Problema 3.7 Dada la ecuacin cos(x) + x 0, 5

x3
= 0;
9

60

CAPTULO 3. CEROS REALES DE FUNCIONES REALES


1. Localizar todas las races
2. Mediante el mtodo de Newton-Raphson obtener la raz ms carcana a 2,5 con una
precisin de 106
3. Escriba un programa MatLab para la parte b)

Problema 3.8 Considera las dos vigas de 30m y 20m cruzndo a una altura de 8m del suelo
como se muestra en la figura 3.8. Determine el ancho del pasadizo, H.

Figura 3.8: Problema de las Vigas


Problema 3.9 Una determinada sustancia se desintegra segn la ecuacin A(t) = P e0,0248t ,
donde P es la cantidad inicial en el tiempo t = 0 y A la cantidad resultante despus de t
aos. Si inicialmente se depositan 500 miligramos de dicha sustancia, Cunto tiempo debe
transcurrir para que quede el 1 por ciento de sta? Utilizar el Mtodo de Newton.
Problema 3.10 Una medicina administrada a un paciente produce concentracin en la sangre dada por c(t) = Atet/3 mg / ml, t horas despus de que se hagan administrado A unidades.
La mxima concentracin sin peligro es de 1 mg / ml, y a esta cantidad se le denomina concentracin de seguridad.
1. Qu cantidad debe ser inyectada para alcanzar como mximo esta concentracin de
seguridad? Cundo se alcanza este mximo?
2. Una cantidad adicional se debe administrar al paciente cuando la concentracin baja a
0, 25 mg / ml . Determnese con un error menor de 1 minuto cundo debe ponerse esta
segunda inyeccin.
Problema 3.11 El crecimiento de poblaciones grandes puede modelarse en periodos cortos
suponiendo que el crecimiento de la poblacin es una funcin contnua en t mediante una
ecuacin diferencial cuya solucin es:

t
N(t) = N0 et +
e 1

donde N(t) es el nmero de individuos en el tiempo t (medido en aos), es la razn de


natalidad, N0 es la poblacin inicial y es una razn constante de inmigracin, que se mide
en nmeros de inmigrantes al ao. Supngase que una poblacin dada tiene un millon de
individuos inicialmente y una inmigracin de 400, 000 individuos al ao. Se observa que al
final del primer ao la poblacin es de 1506000 individuos. Se pide:

3.3. PROBLEMAS
1. Determinar la tasa de natalidad.
2. Hacer una previsin de la poblacin al cabo de tres aos.

61

62

CAPTULO 3. CEROS REALES DE FUNCIONES REALES

Captulo 4
Resolucin de Sistemas Lineales
Sistemas de ecuaciones lineales aparecen en la resolucin de diversos problemas de la vida
real, frecuentemente, algunos de esos problemas involucran un gran nmero de variables y
ecuaciones, Claramente, el mtodo basado en la sustitucin de variables, empleado para resolver pequeos sistemas de dos o tres variables, resulta absoleto en estos casos, por lo que
en necesario conocer mtodos numricos especializados para hacer frente a estas situaciones.
Estos mtodos numricos no podran trabajar sin la intervencin de un computador, debido
a la cantidad de clculos envueltos en ese procedimiento. Todo esto sin lugar a dudas torna
importante el estudio de sistema de ecuaciones lineales desde el punto de vista numrico. Pero
la resolucin de sistemas de ecuaciones lineales no slo tiene importancia prpia, sino que
constituye tambin una herramienta indispensable en la resolucin de sistemas de ecuaciones
no lineales. Ms an, es la base para la resolucin de muchos otros problemas que surgen en
diferentes reas.
Considere el siguiente sistemas de ecuaciones lineales compuesto de dos ecuaciones y dos
variables:

a1,1 x1 + a1,2 x2 = b1
a2,1 x1 + a2,2 x2 = b2
En sistemas simples como ste, podemos notar lo siguiente
1. Solucin nica

3x1 + 2x2 = 10
x1 x2 = 5

2. Soluciones infinitas

3x1 3x2 = 15
x1 x2 = 5
3. Ninguna solucin

x1
x2

x1
x2

5+t
1

4
1

tR

2x1 2x2 = 8
x1 x2 = 5

Grficamente, cada ecuacin representa a una recta, un punto que satisface ambas ecua63

64

CAPTULO 4. RESOLUCIN DE SISTEMAS LINEALES


ciones al mismo tiempo deber estar en la interseccin de ambas rectas (figura 4.1)

Figura 4.1: Representacin grfica de sistemas de ecuaciones lineales


Por otro lado, cuando tenemos 3 variables, cada ecuacin representara un plano, un
punto que satisface tres ecuaciones de un sistema simultneamente estar en la interseccin de tres planos. Para el caso n-dimensional, la situacin es anloga, pero el conjunto
definido por cada ecuacin se denomina n-hiperplano.

4.1.

Aspectos Tericos

Para un caso general, un sistema de m


matemtica siguiente:

a1,1 x1 + a1,2 x2

a2,1 x1 + a2,2 x2
..
..
..

.
.
.

a x + a x
m,1 1
m,2 2

ecuaciones lineales y n variables es la formulacin


+
+
.. . .
.
.
+

+
+
..
.

a1,n xn
a2,n xn
..
.

+ am,n xn

=
=
..
.

b1
b2
..
.

(4.1)

= bm

Usando la notacin matricial, el mismo sistema puede ser visto por


Ax = b
donde A Rmn , b Rm y x Rn es

a1,1 a1,2
a2,1 a2,2

A = ..
..
...
.
.
am,1 am,2

(4.2)

el vector de las variables o incgnitas, definidas por:

b1
x1
a1,n
b2
x2
a2,n

,
b
=
y
x
=

..

..
..
.
.
.
am,n
bm
xn

Una solucin para el sistema (4.1) es un vector x = [


x1 ...
xn ]t Rn el cual satisface simultneamente cada una de las m ecuaciones que conforman el sistema: En un sistema lineal puede
suceder lo siguiente:
1. El sistema lineal tiene nica solucin.
2. El sistema lineal posee infinitas soluciones.
3. El sistema lineal no posee soluciones
Cuando n = m y A es inversible en (4.2), entonces la solucin es nica, en consecuencia,
dicha solucin puede ser obtenida haciendo x = A1 b. No obstante, se debe advertir que
este procedimiento tiene slo un valor terico, pues desde el punto de vista computacional es
considerado costoso por el excesivo nmero de operaciones involucradas para calcular la inversa
de A. En contraste, existen mtodos ms apropiados que no requieren el clculo explcito de
A1 , como los que veremos ms adelante.

4.1. ASPECTOS TERICOS

4.1.1.

65

Conjunto Imagen de una Matriz A

Dada una matriz A Rmn , definimos la imagen de A, denotado por Im(A), como el
conjunto:
Im(A) = {y Rm : x Rn ,

y = Ax}

Algunas veces a este conjunto se le denomina espacio imagen de A, debido a lo siguiente:


Ejercicio 4.1 Muestre que Im(A) es un subespacio vectorial de Rm .
Desde el punto de vista de las columnas de A Rmn , note que
n
X
Ax =
aj xj
j=1

donde aj representa la j-columna de A y xj es la j-componente del vector x Rn . Luego,


resolver el sistema Ax = b significa obtener escalares x1 , ..., xn que permitan escribir b Rm
como una combinacin lineal de las columnas de A, es decir:
b = a1 xl + ... + an xn
Por esta razn, al conjunto Im(A) tambin se le conoce como espacio columna de A. En
consecuencia, la dimensin de la imagen de A, denotada por dim(Im(A)), est determinada
por el mximo nmero de columnas linealmente independientes de A.

4.1.2.

Rango de una Matriz A

El rango de la matriz A Rmn , denotado por rango(A), es definido por


rango(A) = dim(Im(A))
Una manera prctica de encontrar el rango(A) consiste en determinar el mayor nmero de
columnas linealmente independientes de A. En lgebra Lineal se conoce que rango(A) =rango(At ),
por consiguiente, para encontrar el rango(A) basta determinar tambin el mayor nmero de
filas linealmente independientes de A, esto ltimo suele ser de gran ayuda en muchos casos.
Con respecto a la resolucin del sistema de ecuaciones lineales Ax = b, podemos destacar
lo siguiente:
1. Si m = n, puede pasar lo siguiente:
a) Si rango (A) = n, el sistema Ax = b tiene solucin nica, pues A es inversible. En
estas condiciones, se dice que el sistema es compatible y determinado.
b) Si rango (A) < n, puede pasa lo siguiente
1) Si b Im(A), el sistema Ax = b admitir infinitas soluciones. En estas condiciones, se dice que el sistema es compatible e indeterminado.
2) Si b
/ Im(A), el sistema no admite solucin. En estas condiciones, se dice que
el sistema es incompatible.

66

CAPTULO 4. RESOLUCIN DE SISTEMAS LINEALES


2. Si m > n, aunque rango(A) = n, el sistema puede no tener solucin, debido a que es
muy frecuente que b
/ Im(A).
3. Si m < n, es muy probable que el sistema se compatible e indeterminado si b Im(A).
En el caso que b
/ Im(A), el sistema ser incompatible.
Matriz A Rmn

m<n

m=n

m>n

rango(A)=n
b Im(A) so l. n ica
b
/ Im(A) so l. n ica
Rango
b Im(A) infinitas soluc. infinitas soluc
infinitas soluc
deficiente b
/ Im(A) incompatible
incompatible
incompatible
Cuadro 4.1: Soluciones de un sistema de ecuaciones lineales

Rango completo

rango(A)=m
infitas soluc.

rango(A)=n
sol. nica

El cuadro 4.1 esquematiza las soluciones de un sistema de ecuaciones lineales.

4.2.

Mtodos Numricos para Resolver Sistemas de Ecuaciones Lineales

Los mtodos numricos que estudiaremos en este captulo requieren que el sistema (4.1)
est constituido de n filas y n columnas, es decir n = m. Al final de este captulo, en el
problema 3.4, ser discutida una estrategia para enfrentar sistemas lineales donde m < n. Por
otro lado sistemas donde n > m se denominan sobredeterminados, ellos sern discutidos en el
siguiente captulo.
Los mtodos para resolver sistemas de ecuaciones lineales de n n pueden ser de dos tipos,
directos e iterativos.
Directos: Si la solucin existe, otorgan la solucin exacta del sistema lineal despus de un
nmero finito de operaciones, excepto errores de redondeo.
Iterativo: Dada una aproximacin inicial x0 , generan una sucesin de vectores {xk }
k=0 . Si
la solucin existe, bajo ciertas condiciones, esta sucesin converge a la solucin.

A simple vista, parece ser que la eleccin de un mtodo directo es la ms adecuada. No


obstante, como veremos ms adelante, los mtodos directos tienen un alto costo computacional,
requiriendo alrededor de n3 operaciones elementales para resolver un sistema lineal de n n.
En contraste, los mtodos iterativos parecen menos atractivos, sin embargo, slo requieren
alrededor de n2 operaciones elementales por cada iteracin1 , eso los torna ms viables en la
resolucin de sistemas de ecuaciones de grandes dimensiones2 .
En las siguientes secciones analizaremos algunos de los mtodos ms importantes para la
resolucin numrica de sistemas de ecuaciones lineales.
1
2

Pero pueden requerir muchas iteraciones.


Frecuentemente, cuando n > 1000.

4.3. MTODO DE CRAMER

4.3.

67

Mtodo de Cramer

La Regla de Cramer"puede ser enfocada como un mtodo directo. Proviene de un teorema en lgebra lineal, mediante el cual se puede obtener la solucin de un sistema lineal
de ecuaciones en trminos de determinantes. Recibe este nombre en honor a Gabriel Cramer
(1704-1752).
Si Ax = b es un sistema de ecuaciones lineales, donde A Rnn es inversible y b Rn es
un vector columna, entonces la solucin del sistema se calcula as:
det(Aj )
det(A)

xj =

(4.3)

j = 1, ..., n

donde Aj es la matriz que resulta de reemplazar la j-colimna de A por b.


Ejercicio 4.2 El determinante de una matriz real cuadrada de orden n est definido por
n
X
j+1
det(A) =
(1) a1,j det(A [1, j])

(4.4)

j=1

donde a1,j es el elemento en la 1-fila y la j-columna de A, mientras que A [1, j] es la submatriz


obtenida al eliminar la 1-fila y la j-columna de A. Muestre que el nmero de multiplicaciones
necesarias para hallar det(A) es aproximadamente n!
Es posible calcular el determinante de una matriz sin utilizar directamente la definicin
dada en (4.4), pero eso tomar por lo menos alrededor de n3 operaciones elementales. Por lo
tanto, para fines prcticos, mtodos como el de Cramer deben estar fuera de nuestro interes,
debido a que resulta muy costoso en la resolucin numrica de sistemas de ecuaciones lineales3 .

4.4.

Mtodo de Gauss

Este mtodo numrico es el ms conocido y encuadra dentro de los mtodos directos.


Dado el sistema lineal de n n

a1,1 x1 + a1,2 x2

a2,1 x1 + a2,2 x2
..
..
..

.
.
.

a x + a x
n,1 1
n,2 2

+
+
.. . .
.
.
+

+
+
..
.

a1,n xn
a2,n xn
..
.

+ an,n xn

=
=
..
.

b1
b2
..
.

(4.5)

= bn

El mtodo de eliminacin de Gauss consiste de transformar el sistema de (4.5), de un modo


equivalente, a un sistema triangular superior:

a0 x + a01,2 x2 + + a01,n xn = b01

1,1 1

a02,2 x2 + + a02,n xn = b02


(4.6)
..
..
..
. . . ..

.
.
.
.

a0n,n xn = b0n
3

La regla de Cramer tiene un valor terico, pues se utiliza en la demostracin de muchas propiedades.

68

CAPTULO 4. RESOLUCIN DE SISTEMAS LINEALES

El beneficio de esto es que se puede resolver el sistema triangular (4.6) de modo eficiente, as
que de la ltima ecuacin de (4.6) tenemos
xn =

b0n
a0n,n

Luego, xn1 puede ser obtenido mediante


xn1

b0n1 a0n1,n xn
=
a0n1,n1

Y as sucesivamente, obtenemos xn2 , xn3 , ..., x2 , finalmente


x1 =

4.4.1.

b01 a01,2 x2 a01,3 x3 ... a01,n xn


a01,1

Resolviendo un Sistema Triangular

El siguiente algoritmo resuelve un sistema de ecuaciones lineales de orden n, el cual ya est


en la forma tringular superior.
Escalonamiento de matrices
Ejemplo 4.1 Resolver
x1 + 2x2 + 3x3
2x1 + 2x2 + 4x3 + 10x4
x1 + x2 2x3 + x4
x1 + 2x4
El sistema puede ser visto como

1
2

1
1

donde

x1
2 3
0

2 4 10 x2
1 2 1 x3
0 0
2
x4

1
2
A=
1
1

2 3
0
2 4 10

1 2 1
0 0
2

=
=
=
=

2
4
6
0

2
4
=
6
0

2
4

y b=
6
0

Matlab
A=[1 2 3 0;2 2 4 10;1 1 -2 1;1 0 0 2]; b=[2 4 6 0];
A=[A b]
ETAPA 1:

4.4. MTODO DE GAUSS

69

1 2 3
0
2 2 4 10

A=
1 1 2 1
1 0 0
2
f2 = f2 f1 m2,1

1 2
3
0
0 2 2 10

1 1 2 1
1 0
0
2

pivote = a1,1 a1,1 = 1


a2,1
m2,1 =
m2,1 = 2
a1,1
a3,1
m3,1 =
m3,1 = 1
a1,1
a4,1
m4,1 =
m4,1 = 1
a1,1

2
4

b=
6
0

f3 = f3 f1 m3,1
2
1 2
3
0
0 ; 0 2 2 10

6 0 1 5 1
0
1 0
0
2

f4 = f4 f1 m4,1

2
1 2
3
0
0 ; 0 2 2 10

4 0 1 5 1
0
0 2 3 2

2
0

4
2

Matlab
pivote=A(1,1)
A(2,:)=A(2,:)-A(1,:)*A(2,1)/pivote;
A(3,:)=A(3,:)-A(1,:)*A(3,1)/pivote;
A(4,:)=A(4,:)-A(1,:)*A(4,1)/pivote;
A
ETAPA 2:

1 2
3
0
0 2 2 10

A=
0 1 5 1
0 2 3 2
f3 = f3 f2 m3,2
1 2
3
0
0 2 2 10

0 0 4 4
0 2 3 2

2
0

b=
6
2

2
0 ;

4
2

pivote = a2,2 a2,2 = 2


a3,1
1
m3,2 =
m3,2 =
a2,2
2
a4,2
m4,2 =
m4,2 = 1
a2,2

f4 = f4 f2 m4,2
1 2
3
0
0 2 2 10

0 0 4 4
0 0 1 8

2
0

4
2

Matlab
pivote=A(2,2);
A(3,:)=A(3,:)-A(2,:)*A(3,2)/pivote;
A(4,:)=A(4,:)-A(2,:)*A(4,2)/pivote;
A
ETAPA 3:

1 2
3
0
0 2 2 10

A=
0 0 4 4
0 0 1 8

2
0

b=
4
2

pivote = a3,3 a3,3 = 4


a4,3
1
m4,3 =
m4,3 =
a3,3
4

70

CAPTULO 4. RESOLUCIN DE SISTEMAS LINEALES


f4 = f4 f3 m4,3
1 2
3
0
0 2 2 10

0 0 4 4
0 0
0 7

2
0

4
3

Matlab
pivote=A(3,3);
A(4,:)=A(4,:)-A(3,:)*A(4,3)/pivote;
A
El siguiente algoritmo usa las transformaciones elementales por filas y convierte un sistema
de ecuaciones lineales Ax = b en un sistema triangular superior equivalente.
Algoritmo 4.1 (Resolucin de un sistema triangular superior) Dado un sistema tringular superior Ax = b de orden n, con elementos de A sobre la diagonal no nulos. Los valores
de las variables xn , xn1 , ..., x2 , x1 son obtenidos mediante:
xn = bn /an,n
para k = (n 1), ..,1
s=0
Para j = (k + 1), ..., n
s = s + ak,j xj
xk = (bk s)/ak,k
Ejercicio 4.3 Anlogamente al algoritmo 4.1, disear un algoritmo que resuelva un sistema
triangular inferior de orden n.
Ejercicio 4.4 Cuntas operaciones elementales (sumas, restas, multiplicaciones, divisiones
y comparaciones) son necesarias para la ejecuacin del algoritmo 4.1 y el algoritmo planteado
en el ejercicio 4.3?
Laboratorio 4.1 En algn lenguaje de programacin, implemente el algoritmo planteado en
el ejercicio 4.3..
La conversin de un sistema de orden n a un sistema equivalente, y triangular superior, es
posible en virtud al siguiente teorema del lgebra lineal:
Implementacin
function [x] = Resuel_TriSup(A,b)
n=length(b); x=zeros(n,1):
x(n)=b(n)/A(n,n);
for k=(n-1):-1:1
s=0;
for j=(k+1):n
s=s+A(k,j)*x(j);
end
x(k)=(b(k)-s)/A(k,k);
end

4.4. MTODO DE GAUSS

71

Ejercicio 4.5 Anlogamente al algoritmo disear un algoritmo que resuelva un sistema triangular inferior de orden n.
Ejercicio 4.6 Dada una matriz triangular superior, resolver usando la implementacin
1.

2
0

b=
4
3

1 2
3
0
0 2 2 10

A=
0 0 4 4 ;
0 0
0 7

2.

4
0
A=
0
0
3.

2
0
A=
0
0

8
3
0
0

8
6

b=
12
2

4 0
3 3
;
4 4
0 1

4 4 0
3 3 3
;
0 4
2
0 0
3

1 2
0 1
0 1 1 2

A=
0 0 2 3 ;
0 0
0 1,5

12
12

b=
0
6

9
9

b=
10
3

Teorema 4.2 Sea Ax = b un sistema de ecuaciones lineales. Aplicando sobre las ecuaciones
de este sistema una sucesin de operaciones elementales:
1. Cambiar dos ecuaciones
2. Multiplicar una ecuacin por una constante no nula
3. Adicionar un mltiplo de una ecuacin a otra ecuacin
= b, el cual es equivalente4 al sistema original Ax = b.
obtenemos un nuevo sistema Ax

4.4.2.

Conversin de un Sistema de Ecuaciones Lineales a uno Triangular Superior

El siguiente algoritmo usa el Teorema 4.1 y convierte un sistema de ecuaciones lineales


Ax = b en un sistema triangular superior equivalente.
4

Equivale, en el sentido que tiene las mismas soluciones

72

CAPTULO 4. RESOLUCIN DE SISTEMAS LINEALES

Algoritmo 4.2 Dado el sistema lineal Ax = b de n n. Suponga que el elemento ak,k 6= 0 al


inicio de la etapa k :
Para k = 1, ..., n 1
Para i = k + 1, ..., n
mi,k = ai,k /ak,k
ai,k = 0
Para j = k + 1, ..., n
ai,j = ai,j mi,k ak,j
bi = bi mi,k bk
Definicin 4.1 El nmero
mi,j =

ai,k
,
ak,k

i = 2, ..., n,

k = 1, ..., n 1

introduciendo en el algoritmo 4,2, lo denominaremos (i, k)-multiplicador de la matriz A.


Adems, ak,k se denomina el k-simo pivote.
Implementacin Una implementacin bsica en Matlab
function [A,b] = Lleva_TriSup(A,b)
[m,n]=size(A);
for k=1:n-1
for i=k+1:n
m(i,k)=A(i,k)/A(k,k);
A(i,k)=0;
for j=k+1:n
A(i,j)=A(i,j)-m(i,k)*A(k,j);
end
b(i)=b(i)-m(i,k)*b(k);
end
end
Ejercicio 4.7 LLeve a una matriz triangular superior
1.

2.

3.

2 4 6
A = 1 5 3 ;
1 3 2

1
2
A=
0
5

2 0 1
3 1 0
;
4 2 5
5 2 4

1
1
6
9 ;
A = 1 2
1
2 3

4
b = 10
5

9
9

b=
26
32

7
b= 2
10

4.4. MTODO DE GAUSS


4.

73

2
2 5
3
1 ;
A= 2
1 4
4

Ejemplo 4.2 Considere el siguiente sistema

1 2 3

2 2 4
A = A(0) =
1 1 2
1 0 0

Aplicando el Algoritmo 4.2, para


y m4,1 = 1, de donde:

0
A(1) =
0
0

6
b = 13
3

de ecuaciones lineales Ax = b, donde


0
2

10
(0)
4
y
b
=
b
=
6
1
2
0

k = 1, los multiplicadores respectivos son m2,1 = 2, m3,1 = 1

2
3
0
2 2 10

1 5 1
2 3 2

para k = 2, m3,2 = 0, 5, m4,2 = 1 y

1 2
3
0

0 2 2 10
A(2) =
0 0 4 4
0 0 1 8

Finalmente, para k = 3 tenemos m4,3 = 0, 25 y

1 2
3
0

0
2
2
10
A(3) =
0 0 4 4
0 0
0 7

y b(1)

2
0

=
4
2

y b(2)

2
0

=
4
2

y b(3)

2
0

=
4
3

Resta slo aplicar el Algoritmo 4.1 para resolver el sistema triangular superior A(3) x = b(3) ,
de donde obtuvimos

6/7
25/7

x=
10/7
3/7

Un incoveniente que puede suceder en la aplicacin de los algoritmos 4.2 y 4.1, es el clculo
del multiplicador mi,k , pues se necesita que ak,k 6= 0 en cada iteracin. Pero el simple hecho
que ak,k sea pequeo puede ocasionar que el multiplicador mi,k tome valores inmensamente
grandes, los que puede ocasionar a su vez mal condicionamiento5 del sistema.
Ejemplo 4.3 (Sistema mal condicionado) Utilice algn lenguaje de programacin para
resolver, usando los algoritmos 4.2 y 4.1, el siguiente sistema de ecuaciones:

11x1 + 2x2 = 5
1016 x1 + 0, 5x2 = 9
5

La matriz A tiende a ser no inversible en la prctica, aunque en la teora lo sea. Esto puede producir
imprecisiones en los clculos realizados por el computador.

74

CAPTULO 4. RESOLUCIN DE SISTEMAS LINEALES

Despus de aplicar consecutivamente los algoritmos, obtuvimos como solucin;

7, 26691434300103 1016
x=
2, 5
Al verificar si realmente es solucin, vemos que

5
5
6= b =
Ax =
9
8, 51691434300102
Este fenmeno se debe a que el pivote A1,1 = 11, cuando comparando con A2,1 = 1016 , es muy
pequeo. Observe que en estas condiciones, el multiplicador
m2,1 =

a2,1
1016
=
a1,1
11

es muy grande, lo que ocacionar imprecisiones en los clculos siguientes, pues el computador
trabaja con precisin finita.

Pero qu significa mal condicionamiento? Ese concepto es de gran ayuda en la resolucin


de sistemas lineales. A continuacin formalizaremos ese trmino.

4.5.

Sensibilidad en Sistemas Lineales: Nmero de Condicin

Considere el sistema Ax = b, donde A es inversible y b es un vector no nulo. Digamos


que x sea la nica solucin. Consideremos ahora una perturbacin b de b, el sistema lineal
perturbado ser
Ay = b + b
(4.7)
Observe que el sistema (4.7) tambin tiene nica solucin, digamos que sta sea y. Denotamos

x = y x, en consecuencia, y = x +
x. Es natural esperar que cuando b sea pequeo,
entonces
x tambien lo sea.
Para cuantificar el tamao de vectores, usaremos la norma vectorial euclidiana6 kk . As, la
medida de b relativa a b es kbk / kbk , mientras que la medida de k
xk / k
xk . Por lo tanto,
en trminos ms precisos, esperamos que cuando kbk / kbk sea pequeo, entonces k
xk / k
xk
tambin lo sea.
As, como y es solucin del sistema (4.7), entonces
A
y = b + b = A(
x +
x) = b + b = A(
x) = b =
x = A1 (b)
Considerando la norma matricial inducida por la vectorial, kAk = maxx6=0

Si x R, kxk =

x = A1 (b) = kA
xk = A1 (b) A1 kbk

p
x21 + ... + x2n .

kAxk
,
kxk

tenemos
(4.8)

4.5. SENSIBILIDAD EN SISTEMAS LINEALES: NMERO DE CONDICIN

75

Por otro lado,


b =
x = kbk = kA
xk kAk k
xk =
Por (4.8) y (4.9) tenemos

1
kAk

k
xk
kbk

(4.9)

k
xk
kbk
A1 kAk
k
xk
kbk

Observe que, si kbk / kbk es pequeo y kA1 k kAk es un nmero razonablemente pequeo,
entonces k
xk / k
xk debera ser tambin pequeo. Sin embargo, si kA1 k kAk es extremadamente grande, a pesar que kbk / kbk sea pequeo, no hay garanta que k
xk / k
xk tambin
1
lo sea. En otras palabras, si kA k kAk es grande, podemos advertir que el sistema Ax = b
puede ser susceptible a grandes alteraciones en la solucin si b es ligeramente perturbado. Esto
es crucial, pues el mtodo de Gauss altera el vector b en cada iteracin.
Como se puede apreciar, el papel del nmero kA1 k kAk juega un rol importante en la
determinacin de la estabilidad del sistema de ecuaciones lineales. A continuacin lo formalizamos.
Definicin 4.2 (Nmero de condicin) Dada la matriz A Rnn inversible. El nmero
de condicin de A, denotado por cond(A), es

cond(A) = A1 kAk

Si cond(A) es grande, diremos que la matriz es mal condicionada, caso contrario, ella ser
bien condicionada.
Ejercicio 4.8 Mostrar que, si kk es una norma matricial inducida por la norma vectorial
eucldea en Rn , cond(A) 1.
Solucin. Observe que la norma matricial usada es consistente, as:

I = A1 A = 1 = kIk = A1 A A1 kAk = cond(A)

Observacin 4.1 Algunas veces se utiliza tambin la siguiente expresin, rcond(A), la cual
est definida por
rcond(A) = 1/ cond(A)
Claramente, si rcond(A) es prximo a cero, la matriz A ser mal condicionada.
Ejemplo 4.4 Se quiere calcular las reacciones en los punto 2 y 3 y las fuerzas F1 , F2 y F3
en la figura adjunta

Solucin:

76

CAPTULO 4. RESOLUCIN DE SISTEMAS LINEALES

Las fuerzas F1 , F2 y F3 representan ya sea la tensin compresin. El apoyo fijo en el


nodo 2 puede transmitir fuerzas horizontales y verticales a la superficie, mientras que el apoyo
mvil en el nodo 3 transmite slo fuerzas verticales

Haciendo el diagrama de fuerza de cuerpo libre en cada nodo se tiene

La suma de las fuerzas verticales y horizontales debe ser cero en cada nodo

F1 cos 30 + F3 cos 60 = 0
nodo 1
F1 sen 30 F3 sen 60 1000 = 0
F1 cos 30 + F2 + H2 = 0
nodo 2
F
1 sen 30 + V2 = 0
F2 F3 cos 60 = 0
nodo 3
F3 sen 60 + V3 = 0
Este problema se plantea con

0, 866 0
0, 5
0

0, 866
1

0, 5
0

0
1
0
0

un sistema de ses ecuaciones y ses incgnitas


F1
0
0, 5
0 0 0


0, 866 0 0 0
F2 1000


0
1 0 0
F3 = 0

0
0 1 0 H2 0

0, 5
0 0 0 V2 0
0
0, 866
0 0 1
V3

4.5. SENSIBILIDAD EN SISTEMAS LINEALES: NMERO DE CONDICIN

77

resolviendo ste sistema de ecuaciones lineales se tiene


F1 = 500,02
F2 = 433,02
F3 = 866,04
H2 = 0
V2 = 250,01
V3 = 749,99
como inicialmente se asumi todas las fuerzas en tensin, por lo que la solucin negativa de
F1 y F3 corresponden a una compresin.
Problema 4.1 Un ingeniero civil que trabaja en la construccin requiere 4800, 5800 y 5700
m3 de arena, grava fina y grava gruesa respectivamente, para cierto proyecto constructivo. Hay
tres canteras de las que puede obtenerse dichos materiales. La composicin de dichas canteras
es la sigue
% Arena % Grava fina % Grava gruesa
Cantera 1
55
30
15
Cantera 2
25
45
30
Cantera 3
25
20
55
Cuntos metros cbicos deben extraerse de cada cantera a fin de satisfacer las necesidades
del ingeniero?
Problema 4.2 Una pequea empresa constructora ofrece tres tipos de casas. El primer tipo
de casa requiere de 3 unidades de concreto, 1 unidad de madera para cancelara y 5 unidades
de madera para estructuras. Los del tipo dos y tres requieren 2, 3, 4 y 4, 5, 2 unidades respectivamente, de concreto, madera para cancelara y madera para estructuras. Si cada mes la
compaia dispone de 60 unidades de concreto, 40 unidades de madera para cancelara y 100
unidades de madera para estructuras.
1. Determinar el modelo matemtico, sealando cada una de las incgnitas asignadas y
limitaciones que presenten.
2. Del sistema obtenido en (a) halle el nmero de los diferentes tipos de casa de casa que
la compaia podr construir al mes si usa todas los materiales de que dispone y si al
menos debe construir una casa de casa tipo.
Problema 4.3 Calcule las fuerzas y reacciones para la viga de la figura adjunta

78

CAPTULO 4. RESOLUCIN DE SISTEMAS LINEALES

Problema 4.4 Calcule las fuerzas y reacciones de la figura adjunta

Problema 4.5 Calcule las fuerzas y reacciones de la figura adjunta

4.6.

Estrategia con Pivoteamiento Parcial

Como habamos comentado enteriormente, uno de los inconvenientes en la aplicacin del


mtodo de Gauss consista en el clculo de los multiplicadores, si el multiplicador mi,k =
ai,k /ak,k es demasiado grande, ste podra ocasionar clculos imprecisos en el sistema de cmputo. Algunas de las estrategias para evitar tal inconveniente son:
1. Estrategia con pivoteamiento parcial
2. Estrategia con pivoteamiento total
Aqu veremos en qu consiste la estrategia de pivoteamiento parcial:
En el inicio de la etapa k de la eliminacin gaussiana, escoger como pivote el elemento de
k1
k1
mayor mdulo entre los coeficientes: ai,k
, para i = k, k + 1, ..., n, donde ai,k
representa
la (i, k)-componente en la iteracin k 1.
Permutar la fila k e i, si fuera necesario.
Ejemplo 4.5 Considere un sistema de orden n, donde
que

3 2
1
(1) (1) 0 1
0
b
A
=
0 3 5
0 2
4

n = 4 y la iteracin k = 2. Observe

1 5
3
6

7
7
0 15

4.7. DESCOMPOSICIN LU

79

Note que A(1) b(1) representa la situacin del sistema en la primera iteracin. Ahora, para
el inicio de la segunda iteracin

1. Escoger el pivote: maxj=2,3,4 a1j,2 = a13,2 = 3, entonces el pivote es 3
2. Cambiamos las lneas 2 y 3, de donde obtenemos

3 2
1 1 5
(1) (1) 0 3 5 7
7
b
=
A
0 1
0
3
6
0 2
4
0 15

Observe que en este caso los multiplicadores respectivos sern:

1
1
=
3
3
2
2
=
=
3
3

m3,2 =
m4,2

As, al escoger el mayor elemento en mdulo entre los candidatos a pivote, se consigue
que los multiplicadores m, en mdulo, estn entre cero y uno, lo que evita la propagacin
de errores de redondeo.
La estrategia con pivoteamiento parcial no elimina del todo la acumulacin de errores
de redondeo, existe otra estrategia denominada estrategia con pivoteamiento completo. En
contraste al pivoteamiento parcial, que busca el mejor pivote en una porcin de cada columna
en cada iteracin, la estrategia de pivoteamiento completo analiza toda matriz. A pesar que
en teora esto elimina difinitivamente las imprecisiones numricas que puedan ocurrir, su uso
no es comn en la prctica pues requiere mucho esfuerzo computacional, es decir, requiere
muchas operaciones elementales (comparaciones) para su ejecucin.
Problema 4.6 Junte los dos algoritmo e implemente el mtodo de Gauss_ bsico y resuelva
1. Halle la parbola y = A + Bx + Cx2 que pasa por los puntos (1, 4) (2, 7) y (3, 14)
2. Halle la parbola y = A + Bx + Cx2 que pasa por los puntos (1, 6) (2, 5) y (3, 2)
3. Halle la cbica y = A + Bx + Cx2 + Dx3 que pasa por los puntos (0, 0) (1, 1) (2, 2)
y (3, 2)
Problema 4.7 Investigue la estrategia de pivoteamiento completo.

4.7.

Descomposicin LU

Esta estrategia consiste en descomponer la matriz A como el producto de dos matrices


factores: A = LU, donde L es una matriz triangular inferior con unos sobre su diagonal, es
decir

1
0 0
2,1
1 0

L = ..
..
. . . ..
.
.
.
1
n,1
n,2

80

CAPTULO 4. RESOLUCIN DE SISTEMAS LINEALES

y U es una matriz triangular superior

U =

u1,1
0
..
.

u1,2
u2,2
..
.

...

u1,n
u2,n
..
.

un,n

De ese modo, resolver el sistema Ax = b, o sino LUx = b, es equivalente a resolver consecutivamente:


1. Ly = b
2. Ux = y
Una de la primeras ventajas que tiene resolver sistemas mediante este mtodo, en contraste
con el mtodo de Gauss, es la siguiente: supongamos que se quiere resolver los sistemas Ax = b
y Ax = b0 , una vez obtenidos tales factores L y U, bastara resolver consecutivamente los
sistemas triangulares:
Ly = b
Ux = y
(4.10)
y
Ly = b0

(4.11)

Ux = y

Observe que los mismos factores L y U fueron usados para resolver los sistemas (4.10) y (4.11),
los cuales son fciles de resolver usando el algoritmo 4.1 para sistemas triangulares superiores.

4.7.1.

Clculo de los Factores L y U

El clculo de las matrices L y U de modo que A = LU, esta basado en los multiplicadores
mi,j introducidos en las eliminacin gaussiana (definicin 4.1). Supongamos que tenemos la
matriz

0
a1,1 a01,2 a01,3
A0 = a02,1 a02,2 a02,3 = A
a03,1 a03,2 a03,3
Primera iteracin: Los respectivos multiplicadores estn dados por
m2,1 = a02,1 /a01,1
m3,1 = a03,1 /a01,1
para deshacernos de la variable x1 en las i-filas, para i = 2, 3, hacemos
a11,j = a01,j
a11,j

a01,j

y obtenemos

j = 1, 2, 3
mi,1 a01,j

a11,1
A1 = 0
0

Observe que A1 = M 0 A0 , donde

i = 2, 3,
a11,2
a12,2
a13,2

1
M 0 = m2,1
m3,1

a11,3
a12,3
a13,3

0 0
1 0
0 1

j = 1, 2, 3

4.7. DESCOMPOSICIN LU

81

Segunda iteracin: Para eliminar x2 de las restantes lineal, calculamos el multiplicador


m3,2 = a13,2 /a12,2 y hacemos
a21,j = a11,j

j = 1, 2, 3

a22,j
a23,j

j = 2, 3

y obtenemos

=
=

a12,j
a13,j

m3,2 a12,j

a21,1
A2 = 0
0

Observe que

a21,2
a22,2
0

j = 1, 2, 3

a21,3
a22,3
a23,3

A2 = M 1 A1
donde

1
0
1
M1 = 0
0 m3,2

0
0
1

Adems, A2 es triangular superior y podemos definir U = A2 . Luego:


U = M 1 A1 = M 1 (M 0 A0 ) = (M 1 M 0 )A0 = (M 1 M 0 )A
es decir,
A = (M 1 M 0 )1 U = (M 0 )1 (M 1 )1 U
y como
(M 0 )1 (M 1 )1

1
1
1
0
0
1
0 0
1
0
= m2,1 1 0 0
m3,1 0 1
0 m3,2 1

1
0
0
1
0 0
1

0
1
0 = m2,1
m2,1 1 0
=
m3,1 0 1
m3,1
0 m3,2 1

concluimos que la matriz triangular inferior debera ser

1
0
0
1
0
L = m2,1
m3,1 m3,2 1

0
1
m3,2

0
0
1

de modo que A = LU :

Teorema 4.3 Dada una matriz cuadrada A de orden n, sea la matriz Ak constituida de las
primeras k lneas y k columnas de A. Suponga que det(Ak ) 6= 0 para k = 1, ..., n 1. Entonces,
existe una nica matriz triangular inferior L = [mi,j ] , con mi,i = 1, para i = 1, ..., n, y una
nica matriz triangular superior U = [ui,j ] tales que A = LU. Adems, det(A) = u1,1 u2,2 ...un,n .
Ejercicio 4.9 Investigue la demostracin del teorema 4.2.

82

CAPTULO 4. RESOLUCIN DE SISTEMAS LINEALES

Ejemplo 4.6 Resolver el siguiente sistema de ecuaciones lineales utilizando la descomposicin


LU.

Observe que

Luego,

x1 + 2x2 + 3x3 = 10
2x1 + 5x2 x3 = 20
x1 + 2x2 + x3 = 6

1 2 3
A = 2 5 1
1 3 1
m2,1 = 2,

m3,1 = 1,

y
m3,2 = 4,
Por lo tanto

10
b = 20
6

1 2 3
A1 = 0 1 7
0 4 4

1 2 3
A2 = 0 1 7
0 0 32


2 3
1
0
0
1
0 A2 =
5 1 = m2,1
3 1
m
3,1 m3,2 1

1 2 3
1 0 0

2 1 0
0 1 7 = LU
=
1 4 1
0 0 32
Puesto que Ax = b lo podemos expresar como (LU )x = b, usando el algoritmo 4.1 y el ejercicio
4.3 para resolver sistemas triangulares, calculamos consecutivamente:

10
Ly = b = y = 0
16
y

3/2
U x = y = x = 7/2
1/2

2
A=
1

4.8.

Descomposicin de Cholesky

Una estrategia que tiene suma importancia, sobre todo en optimizacin, es la descomposicin de Cholesky.
Definicin 4.3 (Matriz definida positiva) Se dice que una matriz A Rnn simtrica y
de orden n es definida positiva, si xt Ax > 0, para todo x Rn y x 6= 0.
Teorema 4.4 (Descomposicin de Cholesky) Si A es una matriz de orden n, simtrica y
definida positiva, entonces existe una nica matriz triangular inferior n y con diagonal positiva,
tal que
A = GGt
Ejercicio 4.10 Investigue la demostracin del teorema 4.3.

4.8. DESCOMPOSICIN DE CHOLESKY

4.8.1.

83

Clculo del factor de Cholesky

Dada un matriz simtrica y definida positiva:

a1,1 a1,2
a2,1 a2,2

A = ..
..
.
.
an,1 an,1

...

a1,n
a2,n
..
.

an,n

El factor G ser obtenido de la ecuacin matricial:


g1,1
a1,1 a1,2 a1,n
0
a2,1 a2,2 a2,n g2,1 g2,2


..
..
..
.. = ..
.
...
.
.
.
.
.
. .
an,1 an,1 an,n
gn,1 gn,1

Luego

a1,1
a2,1
..
.
an,1



=

g1,1 =

La columna 2:

a1,2
a2,2

a3,2

..
.
an,2
de donde

Como

g1,1

g2,1

= ..
.

gn,1

g1,1
g2,1
..
.

0
g2,2
..
.

...

0
0
..
.

gn,n

gn,1

gn,1

gn,n

a1,1

gj,1 =

aj,1
g1,1

0
g2,2
..
.

...

0
0
..
.

gn,1

gn,n

0
0
..
.

La columna 1:

g1,1
0
..
.
0

g1,1
0
..
.

g1,2
g2,2
..
.

...

g1,n
g2,n
..
.

gn,n

gn,1 g1,1

para j = 2, ..., n

g1,2
g2,2
0
..
.
0

g1,1 g1,1
2
2
g2,1 + g1,1
g3,1 g2,1 + g3,2 g2,2
..
.
gn,1 g1,1 + gn,2 g2,2

a1,2
g1,2 g1,1 = a1,2 = g1,2 = g2,1 =
g1,1
q
2
2
2
g2,1
+ g1,1
= a2,2 = g2,2 = a2,2 g2,1
gj,1 g2,1 + gj,2 g2,2 = aj,2

j = 3, ..., n

y los gj,1 = 1, ..., n, ya fueron calculados, entonces


gj,2 =

g1,1 g1,1
g2,1 g1,1
..
.

(aj,2 gj,1 g2,1 )


g2,2

j = 3, ..., n

columna k : Los elementos de la columna k de G son:


[0 0 gk,k gk+1,k gn,k ]t

k = 2, ..., n

84
haciendo

tenemos
de donde

CAPTULO 4. RESOLUCIN DE SISTEMAS LINEALES

ak,1
ak,2
..
.

ak,k

ak+1,k

..

.
an,k

g1,1

g2,1

= ..
.

gn,1

...

0
0
..
.

gn,1

gn,n

gk,1
gk,2
..
.

gk,k

0
.
..
0

2
2
2
ak,k = gk,1
+ gk,2
+ + gk,k

gk,k =
Y como

0
g2,2
..
.

k1
X
2
ak,k
gk,j
i=1

!1/2

aj,k = gj,1 gk,1 + gj,2 gk,2 + + gj,k gk,k

j = k + 1, ..., n

y como los elementos gi,k , i = 1, ...., k 1, ya fueron calculados, tenemos

P
aj,k k1
g
g
j,i
k,i
i=1
gj,k =
j = k + 1, ..., n
gk,k
Algoritmo 4.3 Sea A una matriz simtrica y definida positiva.
para k = 1, ..., n
suma = 0;
Para j = 1, ...(k 1)
2
suma = suma + gk,j
r = ak,k suma............( )
gk,k = r
para i = k + 1, ..., n
suma = 0
para j = 1, ..., k 1
suma = suma + gi,j gk,j
gi,k = (ai,k suma)/gk,k

Por lo general, ver si una matriz simtrica es definida positiva usando la definicin es una tarea
prcticamente imposible. Sin embargo, podemos usar el algoritmo de Cholesky para verificar si
A es definida positiva. Si en () se tiene que r 0, entonces la descomposicin no es posible
y A no es definida positiva. Caso contrario, el algoritmo otorga la matriz triangular inferior
G tal que A = GGt .
La descomposicin de Cholesky requiere alrededor de n3 /6 operaciones de multiplicacin
para la descomposicin. Este nmero es aproximadamente la mitad del nmero de operaciones
necesarias para la realizacin de la eliminacin en la descompisicin LU, pues requera n3 /3.
Al igual que la descomposicin LU , una vez conocido A = GGt , es posible resolver el
sistema lineal asociado: Ax = b, del siguiente modo: como

Ax = b GGt x = 0
entonces

4.8. DESCOMPOSICIN DE CHOLESKY

85

1. Resolver Gy = b
2. Resolver Gt x = y
Laboratorio 4.5 En algn lenguaje de programacin de su preferencia, implemente el algoritmo de Cholesky, de modo que: cuando la matriz A sea definida positiva, devuelva la matriz
triangular inferior G. Caso contrario, debera emitir un mensaje anunciando que A no es
definida positiva.
Ejercicio 4.11 Usando el algoritmo de Cholesky.

27 12 10
12 9 16

10 16 42
24 29 70
es realmente definida positiva.

Verifique que la matriz

24
29

70
137

Ejercicio 4.12 Una duda comn es, Podra ser definida positiva una matriz la cual tiene
algunas componentes negativas? Verifique si la matriz

27 12 10 24
12 9 16 11

10 16 42 2
24 11 2 137

es o no definida positiva (use el algoritmo)

Ejercicio 4.13 Una matriz simtrica A Rnn se llama semidefinida positiva, si xt Ax 0,


para todo x Rn . Probar que, para cualquier matriz B Rmn , la matriz C = B t B es
semidefinida positiva.
Solucin: Observe que C Rmm es simtrica, pues
C t = (B t B)t = B t (B t )t = B t B = C

y
xt Cx = xt (B t B)x = (Bx)t (Bx) = kBxk2 0

donde kk es la norma euclidea.

Ejercicio 4.14 Probar que, si A Rnn es definida positiva, entonces A es inversible. Lo


recproco no siempre es vlido, de un contraejemplo.
Solucin: Recordemos el teorema de lgebra lineal que nos deca: na matriz A Rnn es
inversible si, y slo si, el sistema Ax = 0 tiene como nica solucin la trivial".
Ahora, con respecto al ejercicio, realizaremos una prueba por contradiccin. Asumamos
que A es definida positiva y no inversible. Entonces, el sistema Ax = 0 tiene una solucin no
trivial, digamos que existe x 6= 0 tal que A
x = 0. Luego.
0 < xt A
x = xt 0 = 0

Lo cual es una contradiccin. Esto completa la prueba.


Para verificar la segunda parte del ejercicio, basta hacer notar que la matriz

1 0
0 1
es inversible pero no es definida positiva (en realidad es definida negativa).

86

CAPTULO 4. RESOLUCIN DE SISTEMAS LINEALES

4.9.

Mtodos Iterativos

La idea de los mtodos iterativos para resolver sistemas de ecuaciones est inspirada en el
mtodo de punto fijo.
Dado el sistema lineal de ecuaciones
(4.12)

Ax = b

donde A Rnn y b Rn . Los mtodos iterativos consisten en expresar el sistema (4.12) en


una ecuacin matricial equivalente:
x = Dx + d
(4.13)
donde D Rnn y d Rn . Note que en este caso (x) = Dx + d es una funcin iteracin
n-dimensional.
As, los mtodos de este tipo construyen una sucesin {xk Rn }
k=0 definida por la regla
xk+1 = (xk ) = Dxk + d
Observe que, si lmk xk = x , entonces x es un punto fijo de . Bajo ciertas condiciones,
x debera ser tambin la solucin del sistema original Ax = b.
Mtodo de Gauss-Jacobi
Este mtodo se caracteriza por transformar el sistema Ax = b a la forma x = Dx + d, del
siguiente modo:
Sea el sistema original
a1,1 x1
a2,1 x1
..
.

+
+
..
.

an,1 x1

+ an,2 x2

a1,2 x2
a2,2 x2
..
.

+
+
.. . .
.
.
+

+
+
..
.

a1,n xn
a2,n xn
..
.

+ an,n xn

=
=
..
.

b1
b2
..
.

= bn

Suponiendo que ai,i 6= 0 para i = 1, ..., n, despejamos las variables x1 , ..., xn de las n ecuaciones,
respectivamente:
1
(b1 a1,2 x2 a1,3 x3 ... a1,n xn )
a1,1
1
=
(b2 a2,1 x2 a2,3 x3 ... a2,n xn )
a2,2
..
.
1
=
(bn an,1 x1 an,2 x2 ... an,n1 xn1 )
an,n

x1 =
x2

x1
De esta forma tenemos

x1
x2

.. =
.
xn

b1
a1,1
b2
a2,2

..
.

bn
an,n

a2,1
a2,2
+
..

.
an,1
an,n

aa1,2
1,1
0
..
.

aa1,3
1,1
aa2,3
2,2
..
.

...

aa1,n
1,1
aa2,n
2,2
..
.

n,2
aan,n

n,3
aan,n

x1
x2
..
.
xn

4.10. COMPARACIN ENTRE MTODOS DIRECTOS E ITERATIVOS

87

Es decir, la funcin iteracin quedara establecido por


x = (x) = Dx + d
donde

a2,1
a2,2
D=
..

.
n,1
aan,n

aa1,2
1,1
0
..
.

aa1,3
1,1
aa2,3
2,2
..
.

...

aa1,n
1,1
aa2,n
2,2
..
.

n,2
aan,n

n,3
aan,n

y d=

b1
a1,1
b2
a2,2

..
.

bn
an,n

(4.14)

El mtodo de Gauss-Jacobi consiste en lo siguiente: dado x0 , una aproximacin inicial a la


solucin del sistema lineal Ax = b, obtener x1 , ..., xk , ... por medio de la relacin recursiva
xk+1 = Dxk + d
donde D y d estn definidos en este caso por (4.14). O sino:
xk+1
=
1
k+1
x2 =
=
xk+1
1

1
(b
a1,1 1
1
(b
a2,2 2

1
(b
an,n n

a1,2 xk2 a1,3 xk3 ... a1,n xkn )


a2,1 xk2 a2,3 xk3 ... a2,n xkn )
..
.

(4.15)

an,1 xk1 an,2 xk2 ... an,n1 xkn1 )

Una caracterstica de los mtodos iterativos, a diferencia de los mtodos directos, es que slo
convergen si algunas hiptesis son satisfechas.
Criterio de convergencia para el mtodo de Gauss-Jacobi
Dado el sistema lineal Ax = b, sea
Pn
i =

j=1 j6=i

|ai,i |

|ai,j |

y = max {i }
1in


Si < 1, entonces el mtodo de Gauss-Jacobi genera una sucesin de vectores xk k=0 , la
cual converge a la solucin del sistema lineal Ax = b, independientemente de la eleccin del
vector inicial x0 .

4.10.

Comparacin entre Mtodos Directos e Iterativos

Convergencia: Los mtodos directos son procesos finitos y, tericamente, encuentran la solucin exacta de cualquier sistema de ecuaciones, desde que sta exista. En la prctica no
es bien cierto esta ltima afirmacin, pues debemos tener en cuenta los errores de clculo del sistema de cmputo y el mal condicionamiento del sistema. Por otro lado, los
mtodos iterativos apenas convergen cuando son satisfechos algunos requerimiento. Esto
ltimo parece tornarlos poco atractivos en la prctica, pero debemos tener en cuenta el
espacio requerido en memoria-computador, observe por ejemplo la ecuacin (4.15), notar que para operar el mtodo de Gauss-Jacobi, slo necesitamos almacenar en memoria
la matriz A y el vector b, el resto de clculo no requieren la construccin de matrices
auxiliares como en el mtodo directo basado en la descomposicin LU

88

CAPTULO 4. RESOLUCIN DE SISTEMAS LINEALES

Errores de Redondeo: Mtodos directos modifican el sistema original, por ejemplo, en la


triangularizacin hecha por el mtodo de Gauss, adicionalmente a los errores cometidos
por un sistema de cmputo. Los datos del problema original son alterados y la solucin no
es precisa desde un punto de vista computacional. Por otro lado, los mtodos iterativos no
modifican el sistema original y, una vez asegurada la convergencia, los errores numricos
son menores a los mtodos directos.
Problema 4.8 Investigue la prueba del criterio de convergencia del mtodo de Gauss-Jacobi.
Problema 4.9 Investigue sobre el mtodo iterativo de Gauss-Seidel.
Problema 4.10 Elaborar una estrategia para resolver un sistema de ecuaciones lineales indeterminado, es decir, donde el nmero de ecuaciones es menor que el nmero de variables
(m < n).
Una de la opciones sera la siguiente: Asumamos que el sistema est definido por Ax = b,
donde A Rmn , b Rn y m < n. Inicialmente, asumamos que el rango de A es completo, es
decir, m. Por ese motivo, existe una submatriz cuadrada e inversible B, tal que, posiblemente
despus de un intercambio compatible de posiciones de columnas deA y de variables de x,
tenemos
A = [B N]

xB
x =
xN
As. Ax = b es equivalente a

xB
= b BxB + NxN = b xB = B 1 b B 1 NxN
[B N]
xN
Luego, las soluciones x Rn seran generadas dando valores arbitrarios a xN Rnm , mediante:
1

B b B 1 NxN
xB
=
x =
xN
xN
As por ejemplo, haciendo xN = 0 Rnm , tendramos:
1
B b
x =
0

el cual claramente, es una solucin para el sistema Ax = b. Se debe advertir que, a diferencia
de la resolucin de sistemas cuadrados, la estrategia expuesta no es eficiente, pues encontrar
las columnas de A que conformarn B puede ser extremadamente costoso. Esto se debe a
que resolver sistemas indeterminados, y tambin sobredeterminados, es realmente difcil. El
estudiante debera investigar otras opciones adems de la expuesta aqu.

Captulo 5
Introduccin a Sistemas No Lineales
En este captulo revisaremos brevemente el clsico mtodo de Newton para resolver sistemas de ecuaciones no lineales. Este mtodo es iterativo y, en su versin bsica, converge a un
a solucin del sistema slo cuando el punto inicial x0 es tomado lo suficientemente prximo
de . Cuando esto sucede, se dice que el mtodo tiene la propiedad de convergencia local, tal
requerimiento es muy discriminatorio y frecuentemente el mtodo converge inclusive cuando
el punto inicial est distante de la solucin.
Un ejemplo de un sistema de 3 ecuaciones no lineales con 3 incgnitas es una expresin
matemtica de la siguiente forma
7x1 x2 + 5x2 x23 sen x1 12 = 0
x41 + cos2 x2 + 2x33 8 = 0
6x1 + 2x2 x3 + 34 = 0

(5.1)

Resolver problemas de este tipo no es un asunto fcil, sobre todo cuando el sistema en cuestin
es de gran dimensin.
Observe que el sistema (5.1) puede ser representado por:
f1 (x) = 0
f2 (x) = 0
f3 (x) = 0
donde fi : R3 7 R, i = 1, 2, 3. Si definimos

(5.2)

f1 (x)
F (x) = f2 (x)
f3 (x)

donde Fi : R3 7 R3 , entonces el sistema de ecuaciones (5.1) puede ser visto a su vez como
(5.3)

F (x) = 0

La ecuacin (5.3) es la forma en que nosotros identificaremos un sistema de ecuaciones no


lineal. El Jacobiano de F en el punto x, denotado por F 0 (x) o J(x), est definido por
f1

f1
f1
(x) x
(x)

(x)
x1
x
n
2
f2 (x) f2 (x) f2 (x)

x
x
x
n
2
J(x) = F 0 (x) = 1.

.
.
.
.
.
.
.

.
.
.
.
fn
(x)
x1

89

fn
(x)
x2

fn
(x)
xn

90

CAPTULO 5. INTRODUCCIN A SISTEMAS NO LINEALES

fi
donde x
: Rn 7 R, i, j = 1, ..., n, son derivadas parciales y las asumimos como funciones
j
continuas en Rn .

5.1.

El Mtodo de Newton

El Mtodo de Newton consiste en resolver un problema difcil mediante sucesivas resoluciones de un problema fcil, se espera que cada solucin del problema fcil sea una mejor
aproximacin para el problema difcil. As, sea x0 Rn una aproximacin inicial a una solucin del sistema (problema difcil) F (x) = 0 definido en (5.3), si tomamos una funcin L0 tal
que L0 (x) F (x), para todo x en una vecindad de x0 , entonces esperamos que la solucin del
sistema L0 (x) = 0 (problema fcil) sea una mejor aproximacin que x0 para una solucin de
F (x) = 0.
El mtodo de Newton es de carcter iterativo y est basado en la aproximacin lineal
(segn Taylor) de la funcin F en torno al punto actual x0 :
L0 (x) = F (x0 ) + J(x0 )(x x0 )

(5.4)

El prximo punto, x1 , es definido como la solucin de


(5.5)

L0 (x) = 0
Si J(x0 ) es inversible, entonces (5.5) tiene solucin nica:
x1 = x0 J 1 (x0 )F (x0 )

Visto de otro modo, una iteracin Newton consiste en calcular x1 previamente conocido x0 ,
mediante la resolucin consecutiva del sistema lineal:
J(x0 )d0 = F (x0 )

(5.6)

x1 = x0 + d0

(5.7)

Lo que dice (5.7) es que una vez conocido el paso de newton d0 , es posible calcular x1 , Con
esto, podemos utilizar x1 como nuevo punto
y calcular x2 y repetir este procedimiento
inicial

para k = 0, 1, 2, 3, ...hasta que se cumpla F (xk ) < , donde > 0 es una precisin eseada y
kk es alguna norma en Rn .
Observacin 5.1 De un modo directo, el mtodo de Newton puede ser visto del siguiente
modo: calcular xk+1 una vez conocido xk , mediante la siguiente regla:
xk+1 = xk J 1 (xk )F (xk ),

k = 0, 1, 2, 3, ...

(5.8)

hasta que F (xk ) < .

En realidad, obtener xk+1 directamente desde (5.8) debera ser evitado para fines computacionales, ya que calcular J 1 (xk ) es considerado costoso. Por otro lado, en (5.6) podran usarse
tcnicas ms baratas para resolver el sistema sin tener que calcular explicitamente J 1 (xk ),
una alternativa sera usar el mtodo de Gauss, la descomposicin LU, o la Cholesky si J(xk )
es definida positiva.
En conclusin, el mtodo de Newton es aplicado originalmente para resolver un sistema
de ecuaciones F (x) = 0, donde F : Rn 7 Rn tiene funciones componentes fi , i = 1, ..., n, las
cuales admiten derivadas parciales continuas en Rn . El siguiente algoritmo resume el mtodo.

5.1. EL MTODO DE NEWTON

91

Algoritmo 5.1 (Algoritmo Bsico de Newton) Sea x0 Rn un punto inicial lo suficientemente cerca de la solucin y > 0 el parmetro de precisin deseado:

Paso 1: Si F (xk ) < , detenerse, xk es la aproximacin buscada. Caso contrario, ir al paso


2.
Paso 2: Resolver el sistemas J(xk )dk = F (xk ) y obtener el paso de newton dk . Ir al paso 3.
Paso 3: Calcular xk+1 = xk + dk , hacer k k + 1. Volver al paso 1.
Naturalmente, el sistema F (x) = 0 puede no tener solucin, entonces es posible modificar
el algoritmo 4.1 para que finalice despus de un nmero determinado de iteraciones indicando
la posibilidad de infactibilidad.
Una implementacin bsica

function [x,iter]= NEWTON_NL(x)


iter =0
while norm(Fn(x))>0.000001
iter = iter+1;
x = x-inv(Jn(x))*Fn(x);
if iter > 1000
error(parece que newton no converge);
end
end
Ejemplo 5.1 Se quiere resolver el sistema de ecuaciones no lineales
x + 2y 4 = 0
(x 6)2 y + 2 = 0
Ejecutar NEWTON_NL, con los siguientes puntos iniciales

1
2

9
3

Solucin:
Definamos el sistema de ecuaciones y el Jacobiano

x1 + 2x2 4
F (x) =
;
(x1 6)2 x2 + 2
#
"

df
df
1
2
0
k
dx2
1
=
Fn (x ) = J(x) = dx
dg
dg
2(x 6) 1
dx1
dx2
Al ejecutar el programa NEWTON_NL, con un punto inicial
precisin 0,000001, observamos:

4, 50
4, 25

1
2

con un parmetro de

92

CAPTULO 5. INTRODUCCIN A SISTEMAS NO LINEALES

10

0
0

Ahora ejecutando NEWTON_NL, con otro punto inicial

que converge a otra raz

8, 00
6, 00

9
3

10

te-nemos:

10

10

5.1. EL MTODO DE NEWTON

93

Ejemplo 5.2 Del grfico adjunto

1. Plantear el sistema de ecuaciones no lineales


(x 1)2 + (y + 1)2 9 = 0
(x + 1)2 + (y 1)2 4 = 0
2. Obtener aproximaciones iniciales del grfico para las raices.
(2, 0,8)
(0,6, 2)
3. Resuelva el sistema de ecuaciones
en la parte (a) con el mtodo de Newton,
planteado

12
12
Itere hasta que x(k) x(k1) <
y.
pruebe con los puntos iniciales
2
2
6
10
x=

x=
-1.98858901434067
-0.73858901434067

iter =

0.73858901708487
1.98858901708487
iter =

Ejemplo 5.3 Resolver el sistema de ecuaciones no lineales

sen(xy) + z 1 = 0
2sen(xz) + y 2 = 0
3sen(yz) + x 3 = 0

0
pruebe con un punto inicial 0 y con parmetro de precisin = 106 .
0

y cos(xy) x cos(xy)
1
1
2x cos(xz)
J(x) = 2z cos(xz)
1
3z cos(yz) 3y cos(yz)

94

CAPTULO 5. INTRODUCCIN A SISTEMAS NO LINEALES


iter
1
2
..
.

x1
x2
x3
3
2
1
2.08094228847598 2.55445312292730 1.44721106891753

2.57125017265204 2.33065865794921 1.28641102878084

Ejemplo 5.4 Resolver el sistema de ecuaciones no lineales

3x cos(yz) 0,5 = 0
4x2 625y 2 + 2y 1 = 0
exy + 20z + 103
=0
3

1
pruebe con un punto inicial 2 y con parmetro de precisin = 106 .
3

3
z sin(yz) y sin(yz)

8x
2 1250y
0
J(x) =
xy
xy
xe
20
ye
iter
1
2
..
.

x1
x2
x3
-0.44434060835495 0.99737601086195 -0.49434100829909
0.49903170213302 0.49662625767486 -0.49638456113458

13

0.49999953252309

0.00319907048889 -0.52351886283932

Ejemplo 5.5 Resolver el sistema de ecuaciones no lineales


6x 2 cos(yz) 1 = 0
p
2
9y + x + sin(z) + 1,06 + 0,9 = 0
60z + 3exy + 10 3 = 0

0
Use el mtodo de Newton, con el punto inicial 0 y con parmetro de precisin = 106
0

6
2z sin(yz)
2y sin(yz)
x
cos z

p
p
9

J(x) =

x2 + sin x + 1,06
2 x2 + sin z + 1,06
3xexy
60
3yexy
x=

0.49814468458971
-0.19960589553629
-0.52882597757225
iter =
3

5.1. EL MTODO DE NEWTON

95

Ejemplo 5.6 Resolver el sistema de ecuaciones no lineales


x3 + x2 y xz + 6 = 0
ex + ey z = 0
2
y 2xz 4 = 0

1
Use el mtodo de Newton, con el punto inicial 2 y con parmetro de precisin = 106
1

3x3 + 2xy z x2 x
ex
ey 1
J(x) =
2z
2y 2x
x=

-1.45604279751089
-1.66423046637448
0.42249340339467
iter =
4
Ejemplo 5.7 Resolver el sistema de ecuaciones no lineales
4x y + z xu = 0
x + 3y 2z yu = 0
x 2y + 3z zu = 0
x2 + y 2 + z 2 1 = 0

7
5

Use el mtodo de Newton, con el punto inicial


6 Itere
7

4 u 1
1
1 3 u 2
J(x) =
1
2 3 u
2x
2y
2z
x=

hasta que x(k) x(k1) < 106

x
y

z
0

0.57735038198527
-0.57735038198508
0.57735038198508
5.99999985846672
iter =
7
Ejemplo 5.8 Consideremos el siguiente sistema de ecuaciones no lineales de 3 incgnitas y
3 ecuaciones:
7x1 x2 + 5x2 x23 sen x1 12 = 0
x41 + cos2 x2 + 2x33 8 = 0
6x1 + 2x2 x3 + 34 = 0

(5.9)

96

CAPTULO 5. INTRODUCCIN A SISTEMAS NO LINEALES

Observe que

7x1 x2 + 5x2 x23 sen x1 12


F (x) = x41 + cos2 x2 + 2x33 8
6x1 + 2x2 x3 + 34

7x1 + 5
2x3 sen x1
7x2 x23 cos x1

4x31
2 cos x2 sen x2
6x23
J(x) =
6
2
1

10
Si usamos como punto inicial x0 = 20 y como parmetro de precisin = 109 , una
50
implementacin computacional bsica nos otorga:

4, 23134959407946
x13 = 1, 56752981158965
5, 47684281234392

Es fcil verificar que kF (x13 )k 5, 293308530720633 108 , donde kk es la norma eucldea.


Esto indica que x13 es una buena aproximacin para una raz de F (x) = 0.
Ejercicio 5.1 Se quiere resolver el sistema de ecuaciones no lineales
(x 3)2 y + 4 = 0
x + 2y 16 = 0
Al ejecutar newton, verifique con los siguientes puntos iniciales

1
2

6
10

Ejercicio 5.2 Se quiere resolver el sistema de ecuaciones no lineales


5x21 + 6x1 x2 + 5x22 4x1 + 4x2 4 = 0
x21 + x22 1 = 0
Al ejecutar newton con punto inicial

1
1

y con una precisin de prec=0.000001

Ejercicio 5.3 Se quiere resolver el sistema de ecuaciones no lineales


x3 + y 3 2xy = 0
x2 + y 2 1 = 0
Al ejecutar Newton, verifique con los siguientes puntos iniciales

Ejercicio 5.4 Se quiere resolver el sistema de ecuaciones no lineales


2x4 2x2 y + y 2 2y 3 + y 4 = 0
3x2 2xy 6y 2 + 3 = 0

1
2

5.1. EL MTODO DE NEWTON

97

Ejercicio 5.5 Resolver el sistema de ecuaciones no lineales


x3 + x2 y xz + 6 = 0
ex + ey z = 0
2
y 2xz 4 = 0

1
Use el mtodo de Newton, con el punto inicial 2 y con parmetro de precisin
1
6
= 10
Ejercicio 5.6 Resolver el sistema de ecuaciones no lineales
x3 + x2 y xz = 6
ex + ey z = 0
y 2 2xz = 4

1
Use el mtodo de Newton, con el punto inicial 2 y con parmetro de precisin = 106
1
y tambin anote su jacobiano

J(x) =

x=

iter =

5.1.1.

Convergencia y Rapidez del Mtodo de Newton

El mtodo de Newton para sistemas n-dimensionales posee propiedades similares al mtodo


estudiado con ms detalles en el captulo 2, el cual resolva sistemas de una variable.
Resultados tericos muestran que, si el punto incial x0 Rn es elegido lo suficientemente
cerca de la solucin del sistema F (x) = 0, entonces el mtodo de Newton converge y lo hace
con una tasa de convergencia cuadrtica. Frecuentemente, para caracterizar este hecho uno
utiliza la siguiente expresin: el mtodo de Newton es localmente cuadrtico. Los detalles sobre
este tema no sern tratados en este curso.
Laboratorio 5.1 En algn lenguaje de programacin de su preferencia, realice una funcin
que ejecute el Algoritmo de Newton.
Laboratorio 5.2 Conocer J(xk ) presupone el clculo y evaluacin de las primeras derivadas
parciales de las funciones fi (xk ), para i = 1, ..., n, un procedimiento analtico que debemos hacer
siempre que sea posible. Esa tarea puede a veces ser considerado un inconveniente debido al
esfuerzo de clculo y al probable error humano, una alternativa sera usar una aproximacin
mediante diferencias finitas.

98

CAPTULO 5. INTRODUCCIN A SISTEMAS NO LINEALES

Ejercicio 5.7 Hallar dos raices ms del sistema no lineal dado en (5.9)
Ejercicio 5.8 Al aplicar el mtodo de Newton para resolver F (x) = 0, donde
F (x) = Ax b,

A Rnn ,

b Rn

Cuntas iteraciones debera hacer el mtodo de Newton? Por qu?.


Ejercicio 5.9 Encuentre un punto crtico de f, es decir, resuelva Of (x) = 0, donde
1
f (x) = a + bt x + xt Qx
2
y donde Q Rnn es simtrica y definida positiva, b Rn y a R. En ese punto f alcanza
un mnimo?Porqu?
Ejercicio 5.10 Sean

Resolver

A=

1
2
5
1
3
6

2 5
8 25

7 8

2 3

5 9
7 1

y b=

10
200
7
6
12
15

Minimizar 12 kAx bk2


x R3

donde kk es la norma eucldea.


Sugerencia: Basta hallar un punto crtico de f : R3 7 R, donde f (x) =
Observe que
f (x) = At Ax At b

1
2

kAx bk2 .
(5.10)

Adems de usar el mtodo de Newton para resolver (5.10), use tambin un mtodo directo para
sistema de ecuaciones lineales y compare sus resultados.

Captulo 6
Interpolacin y Aproximacin
Es frecuente encontrar libros de clculos elemental funciones representando el comportamiento de algn hecho real, lo primero que viene a la mente es la siguiente pregunta de
donde sali esa funcin? Algunas de estas funciones se obtienen de la solucin de una ecuacion diferencial que representa algn fenmeno fsico, pero algunos tambin resultan de simples
observaciones.
Suponga que disponemos de los siguientes datos, resultados de observaciones:
(0, 3,42), (1, 3,45), (2, 3,47), (3, 3,5), (4, 3,48),
(5, 3,46), (6, 3,44), (7, 3,39), (8, 3,49), (9, 3,56)
donde el par (ti , ci ) representa el precio del dlar ci (soles) en el tiempo ti (horas). Estos datos
pueden ser organizados del siguiente modo
ti
ci

0
1
2
3
4
5
6
7
8
9
3,42 3,45 3,47 3,5 3,48 3,46 3,44 3,39 3,49 3,56

Supngase que se quiere calcular:


1. El precio del dlar en el tiempo t = 3,5h
2. La hora en que el precio del dlar est en 3,465 soles
El estudio de la interpolacin y aproximacin adems de responder a estos requerimientos,
nos permite encontrar funciones que representen estos datos, estas funciones frecuentemente
son continuas y hasta diferenciables, esto a su vez nos permitir manejar matemticamente
un problema que consista de apenas algunos datos.

6.1.

Interpolacin

Interpolar una funcin consiste en aproximar una funcin f por otra funcin g, escogida
dentro de una clase definida de antemano y satisfaciendo algunas propiedades. La funcin g
es entonces usada en reemplazo de f .
Considere n + 1 puntos distintos: x0 , x1 , ..., xn y los valores respectivos de f en esos puntos: f (x0 ), f (x1 ), ..., f (xn ). La forma de interpolacin de f que veremos a seguir consiste en
99

100

CAPTULO 6. INTERPOLACIN Y APROXIMACIN

determinar una funcin g tal que


g(x0 ) = f (x0 )
g(x1 ) = f (x1 )
..
.
g(xn ) = f (xn )
Una manera prctica y muy utilizada es considerar la funcin interpolante g como polinomio.
No obstante, g puede ser una funcin racional, trigonomtrica, etc. En la figura 6.1 se muestra
un ejemplo para el caso n = 5.

Figura 6.1: La funcin g interpolando f en 6 puntos

6.1.1.

Interpolacin Polinomial

Dados n + 1 pares (x0 , f (x0 )), (x1 , f (x1 )), ..., (xn , f (xn )), queremos aproximar f por un
polinomio pn de grado menor o igual a n, tal que
f (xk ) = p(xk ),

k = 0, 1, ..., n

(6.1)

Naturalmente, podemos preguntarnos ahora: existe siempre un polinomio que satisface tales
condiciones?, y si existe, el polinomio es nico?.
Para responder a esto, representaremos el polinomio p por
p(x) = an xn + an1 xn1 + ... + a1 x + a0
As, al encontrar los valores an , an1 , ..., a1 , a0 :
+ ... + a1 x0 + a0 = f (x0 )
p(x0 ) = an xn0 + an1 xn1
0
n
n1
p(x1 ) = an x1 + an1 x1 + ... + a1 x1 + a0 = f (x1 )
..
.
+ ... + a1 xn + a0 = f (xn )
p(xn ) = an xnn + an1 xn1
n
Observe que el sistema anterior es de la forma
A = b

(6.2)

6.1. INTERPOLACIN

101

donde

A=

xn0
xn1
..
.

xn1
0
xn1
1
..
.

...

x0
x1
..
.

1
1
..
.

xnn

xn1
n

xn

n
n1
..
.
0

y b=

f (x0 )
f (x1 )
..
.
f (xn )

Note que es el vector de incgnitas. La matriz A se le conoce como la matriz de Vandermonde,


y por lo tanto, si x0 , x1 , ..., xn son todos distintos, entonces
Y
(xi xj ) 6= 0
det(A) =
0i<jn

Esto significa que A es invertible y, en consecuencia, el sistema lineal (6.2) tiene solucin y
sta es nica. Esto constituye la prueba del siguiente teorema:
Teorema 6.1 Existe un nico polinomio pn de grado menor o igual a n, tal que
f (xk ) = pn (xk ),
desde que xk 6= xj ,

6.1.2.

k 6= j,

k = 0, 1, ..., n

k, j = 0, 1, ..., n.

Modos de Obtener el Polinomio pn

Una vez que sabemos las condiciones que garantizan la existencia y unicidad de pn , procedemos a ver las maneras cmo encontrarlo. Existen varias formas de realizar esta tarea, la
primera es mediante la solucin directa del sistema A = b. No obstante, existen otras formas,
como la de Lagrange y de Newton. Desde un punto de vista terico, todas ellas llevan al mismo
polinomio, pero la eleccin de una u otra depende de algunos factores, tales como la dificultad
de los clculos, estabilidad del sistema lineal y tiempo de ejecucin.
Obtencin de pn Mediante la Resolucin A = b
Consiste en resolver por algn mtodo, directo o iterativo, el sistema de ecuaciones lineales
en (6.2).
Ejemplo 6.1 Vamos a interpolar f en los puntos x0 = 2, x1 = 0, x2 = 1 y x3 = 4, usando
un polinomio p3 (x) = a3 x3 + a2 x2 + a1 x + a0 y los siguientes datos:
xi
2 0 1 4
f (xi ) 6
4 5 8
podemos calcular la matriz de Vandermonde, pero vamos a repetir el procedimiento:
p3 (2)
p3 (0)
p3 (1)
p3 (4)

=
=
=
=

a3 (2)3 + a2 (2)2 + a1 (2) + a0 = 6 = f (2)


a3 (0)3 + a2 (0)2 + a1 (0) + a0 = 4 = f (0)
a3 (1)3 + a2 (1)2 + a1 (1) + a0 = 5 = f (1)
a3 (4)3 + a2 (4)2 + a1 (4) + a0 = 8 = f (4)

102
Luego

CAPTULO 6. INTERPOLACIN Y APROXIMACIN

(2)3
(0)3
A=
(1)3
(4)3

(2)2
(0)2
(1)2
(4)2

(2)
(0)
(1)
(4)

1
1
,
1
1

3
2

=
1
0

6
4

y b=
5
8

La solucin puede ser obtenida resolvindo el sistema lineal A = b, por cualquier tcnica ya
estudiada. Obtenemos


3
1/9
2 5/9


1 = 5/9
4
0
de donde

1
5
5
p3 (x) = x3 + x2 + x + 4
9
9
9
La figura 6.2 muestra la situacin de este ejemplo.

Figura 6.2: Polinomio p3 interpolando 4 puntos


Obtencin de pn Mediante la Forma de Lagrange
Dados n + 1 puntos diferentes x0 , x1 , ..., xn , donde y0 = f (x0 ), y1 = f (x1 ), ..., yn = f (xn ).
Sea pn un polinomio de grado menor o igual que n, tal que interpola a f en los puntos
x0 , x1 , ..., xn , es posible representar pn en la forma
pn (x) = y0 L0 (x) + y1 L1 (x) + ... + yn Ln (x)
donde los polinomios Lk son de grado n. Queremos que para cada i se cumpla la condicin
pn (xi ) = yi , es decir:
pn (xi ) = y0 L0 (xi ) + y1 L1 (xi ) + ... + yn Ln (xi ) = yi

i = 0, 1, ..., n

Una forma simple de elegir Lk consiste en exigir la condicin Lk (xj ) = 0 si k 6= j y Lk (xk ) = 1,


donde j, k = 0, 1, ..., n, esto se consigue definiendo
Lk (x) =

(x x0 )(x x1 )...(x xk1 )(x xk+1 )...(x xn )


(xk x0 )(xk x1 )...(xk xk1 )(xk xk+1 )...(xk xn )

6.1. INTERPOLACIN

103

Como el numerador de Lk es el producto de n factores (x xi ), i = 0, 1, ..., n, i 6= k, entonces


el polinomio Lk es de grado n. Con esto, el polinomio pn tiene grado menor o igual que n,
como requerimos. Ms an, para xi , i = 0, 1, ..., n, tenemos
pn (xi ) = yi Li (xi ) = yi
y vemos que pn realmente interpola f en tales puntos.
Por lo tanto, la forma de Lagrange para el polinomio interpolador es:
n
X
yk Lk (x)
pn (x) =
k=0

donde
Lk (x) =

Yn

i=0 (x xi )
i6=k
Yn
i=0 (xk xi )
i6=k

Ejemplo 6.2 La siguiente tabla resume los datos de alguna observacin


xi
2 0 3 5
yi = f (xi ) 3 1 4 9
Queremos interpolar f usando un polinomio interpolador segn la forma de Lagrange. As, el
polinomio buscado es
p3 (x) = y0 L0 (x) + y1 L1 (x) + y2 L2 (x) + y3 L3 (x)
Como y0 , ..., y3 son conocidos, resta slo conocer los polinomios L0 , ..., L3 :
L0 =
L1 =
L2 =
L3 =

(x x1 )(x x2 )(x x3 )
(x0 x1 )(x0 x2 )(x0 x3 )
(x x0 )(x x2 )(x x3 )
(x1 x0 )(x1 x2 )(x1 x3 )
(x x0 )(x x1 )(x x3 )
(x2 x0 )(x2 x1 )(x2 x3 )
(x x0 )(x x1 )(x x2 )
(x3 x0 )(x3 x1 )(x3 x2 )

=
=
=
=

(x 0)(x 3)(x 5)
x3 8x2 + 15x
=
(2 0)(2 3)(2 5)
70
3
2
(x (2))(x 3)(x 5)
x 6x x + 30
=
(0 (2))(0 3)(0 5)
30
3
(x (2))(x 0)(x 5)
x 3x2 10x
=
(3 (2))(3 0)(3 5)
30
3
2
(x 0)(x 3)(x 5)
x x 6x
=
(5 (2))(5 0)(5 3)
70

Por lo tanto,
3

x 8x2 + 15x
x 6x2 x + 30
x 3x2 10x
p3 (x) = (3)
+1
+4
70
30
30

3
2
x x 6x
+9
70
1
(15x3 57x2 + 246x + 210)
=
210
Observe la figura 6.3.

104

CAPTULO 6. INTERPOLACIN Y APROXIMACIN

Figura 6.3: Polinomio p3 interpolando 4 puntos, segn Lagrange

6.2.

Aproximacin: Caso Discreto

En la seccin anterior vimos algunos mtodos para interpolar una funcin f en los puntos
x0, x1 , ..., xn , por una funcin g previamente definida. Pero interpolar no es aconsejable cuando:
1. Es necesario obtener un valor aproximado de la funcin en algn punto fuera del intervalo
de la tabla de definicin, a esto se conoce con el nombre de extrapolacin.
2. Los valores en la tabla de datos son resultados de algn experimento fsico, los cuales
pueden contener errores inherentes, que en general no son previsibles.
Surge la necesidad de buscar una funcin que sea una buena aproximacin para los valores
deseados y, que en cierto modo, resuelva nuestro problema con un cierto margen de seguridad.
As, sean ahora los puntos (x1 , f (x1 )), ..., (xm , f (xm )), donde x1 , ..., xm [a, b] . El problema
que intentamos resolver consiste en lo siguiente: Una vez elegida n funciones g1 , ..., gn : R 7 R
continuas en [a, b] , obtener n constantes 1 , ..., n tales que la funcin
(x) = 1 g1 (x) + ... + n gn (x)

(6.3)

se aproxime lo mejor posible a f. Las funciones gi , i = 1, ..., n, pueden asumir formas no


lineales, tales como g1 (x) = ex , g2 (x) = sen x, g3 (x) = x2 + log x, etc.
Pero, Con qu criterio elegir las funciones gi , i = 1, ..., n?
consiste en lo siguiente:

El procedimiento comn

1. Graficar los puntos (x1 , f (x1 )), ..., (xm , f (xm )) en el plano cartesiano. El grfico resultante se denomina diagrama de dispersin. Por medio de este diagrama es posible identificar la curva, o una combinacin lineal de curvas, que mejor se aproxime a nuestro
problema.
2. Basndose en fundamentos tericos del experimento que nos otorgaron las observaciones.

6.2. APROXIMACIN: CASO DISCRETO

105

Ejemplo 6.3 (Eleccin de gi basado en el diagrama de dispersin)


Considere los siguientes datos, resultados de alguna observacin:
x
2 1, 5 0, 5
0
1 1, 2 2, 5 2, 65 2, 8 3, 1
f (x) 3
1
1 1, 5 2 4
6
7
10 12

(6.4)

El diagrama de dispersin est dado en la figura 6.4. Claramente, una forma conveniente es
elegir g1 (x) = x2 y g2 (x) = 1, entonces encontrar los valores de 1 y 2 que determinan la
funcin (x) = 1 x2 + 2 .

Figura 6.4: Diagrama de dispersin


Ejemplo 6.4 (Eleccin de gi utilizando fundamentos tericos) Si consideramos una experiencia donde fueron medidos varios valores de corriente elctrica que pasan por una resistencia sometida a varias tensiones, podemos elegir gi adecuadamente, colocando esos valores
inicialmente en el grfico 6.5:

Figura 6.5: Eleccin de gi mediante fundamento terico


En este caso existe un fundamento terico relacionado a la corriente elctrica con la tensin:
V = RI. Es decir, V (voltaje) es una funcin lineal de I (intensidad). Luego, como busca
aproximar la tensin relacionada a esos datos, resulta prudente elegir gi (I) = I, de tal modo
que:
(I) = 1 g1 (I) = 1 I

106

CAPTULO 6. INTERPOLACIN Y APROXIMACIN

Note que existe una sola incgnita, 1 . Al resolver este problema, el valor que tome 1 ser a
su vez una aproximacin a la resistencia R. En resumen, al determinar 1 habremos ajustado
ese diagrama a una curva lineal, todo eso basado en un fundamento terico.
Una vez que en (6.3) fueron elegidas las funciones gi , i = 1, 2, ..., n, resta calcular las
constantes que definen (x) = 1 g1 (x) + ... + n gn (x). A continuacin veremos una de las
formas ms comunes.

6.2.1.

Mtodo de Mnimos cuadrados

Dados los puntos conocidos (x1 , f (x1 )), ..., (xm , f (xm )), donde las funciones g1 , ..., gn : R 7
R fueron elegidas de la forma adecuada. En experimentos de este tipo, por lo general, se tiene
que m n (m mucho mayor que n). Nuestro objetivo es encontrar los valores de 1 , ..., n de
modo que (x) = 1 g1 (x) + ... + n gn (x) se aproxime lo mejor posible a la supuesta funcin
f.
Anlogamente a lo que vimos cuando estudiamos interpolacin, desearamos ahora que:
(x1 ) = 1 g1 (x1 ) + ... + n gn (x1 ) = f (x1 )
..
.
(xm ) = 1 g1 (xm ) + ... + n gn (xm ) = f (xm )

(6.5)

Este sistema de m filas y 1 , ..., n variables, podemos nuevamente verlo matricialmente as:
(6.6)

A = b
donde

g1 (x1 )

..
...
A=
.
g1 (xm )

gn (x1 )

..
,
.
gn (xm )

= ...
n

f (x1 )

..
y b=

.
f (xm )

Note que el sistema (6.6) por lo general es incompatible, es decir, que no tiene solucin.
Esto sucede justamente porque m (el nmero de observaciones) es mucho mayor que n (las
incgnitas).
Gustaramos ahora de encontrar
Rn , tal que A
b ( A
prximo de b). El mtodo
de Mnimos Cuadrados consiste en calcular
del siguiente modo:

= mnn kA bk2

(6.7)

donde kk es la norma eucldea. Observe que si i representa la i-fila de A, entonces ai bi


representa (xi ) f (xi ), esta diferencia es definida como el i-desvio:
di = (xi ) f (xi )
Adems,

m
m
X
X
2
(ai bi ) =
d2i
kA bk =
2

i=1

i=1

6.2. APROXIMACIN: CASO DISCRETO

107

P
2
Es decir, al minimizar kA bk2 estamos minimizando m
i=1 di , la sumatoria de los desvos
al cuadrado, de ah el nombre del mtodo (vea la figura 6.6)

Figura 6.6: Valor absoluto de la desviacin di


Para minimizar la funcin q : Rn 7 R, definida por la regla q() = kA bk2 , utilizamos
algunos resultados del clculo diferencial. Despus de derivar parcialmente q, igualando a cero,
tenemos el siguiente sistema de n incgnitas y n ecuaciones:
q
() = 0
1
..
.
q
() = 0
n
Esto es equivalente resolver q() = 0, donde
q() = At A At b

As, si A tiene rango completo, entonces At A es inversible. Luego, existe una nica solucin
para el sistema q() = 0, la cual la obtenemos de resolver:
At A = At b

(6.8)

= (At A)1 At b

(6.9)

Note que At A es una matriz cuadrada e inversible desde que A tenga rango completo. En
estas condiciones, la matriz At A es simtrica y definida positiva, as, el sistema (6.8) puede
resolverse utilizando la descomposicin de Cholesky.
Ejemplo 6.5 Considere los siguientes datos vistos en (6.4), cuyo diagrama de dispersin
asociado est en la figura 5.4. Despus de elegir g1 (x) = x2 y g2 = 1, tal que (x) = 1 x2 +2 ,

108

CAPTULO 6. INTERPOLACIN Y APROXIMACIN

procedemos a encontrar 1 y 2 exigiendo que:

(2)
(1, 5)
(0, 5)
(0)
(1)
(1, 2)
(2, 5)
(2, 65)
(2, 8)
(3, 1)

=
=
=
=
=
=
=
=
=
=

1 (2)2 + 2 = 3
1 (1, 5)2 + 2 = 1
1 (0, 5)2 + 2 = 1
1 (0)2 + 2 = 1, 5
1 (1)2 + 2 = 2
1 (1, 2)2 + 2 = 4
1 (2, 5)2 + 2 = 6
1 (2, 65)2 + 2 = 7
1 (2, 8)2 + 2 = 10
1 (3, 1)2 + 2 = 12

y obteniendo el sistema lineal A = b. donde:

A=

4, 0000
2, 2500
0, 2500
0, 0000
1, 0000
1, 4400
6, 2500
7, 0225
7, 8400
9, 6100

1
1
1
1
1
1
1
1
1
1

b=

3, 0000
1, 0000
1, 0000
1, 5000
2, 0000
4, 0000
6, 0000
7, 0000
10, 0000
12, 0000

y =

1
2

Resolviendo por mnimos cuadrados, es decir, resolviendo At A = At b :

266, 3943 39, 6625


39, 6625
10

1
2

302, 1375
42, 5000

tenemos

1
2

1, 22449857738665
0, 606667482559783

La curva que se aproxima, de la mejor manera, es (x) = 1, 224498x2 0, 606667, el grfico

6.2. APROXIMACIN: CASO DISCRETO


est dado en la figura 6.7.

Figura 6.7: aproximando el diagrama de dispersin

109

110

CAPTULO 6. INTERPOLACIN Y APROXIMACIN

Captulo 7
Integracin numrica
Sabemos que si una funcin f : R 7 R es continua en el intervalo [a, b] , entonces tal
funcin tiene antiderivada F en [a, b] , es decir
F 0 (x) = f (x),
y

x [a, b]

f (x)dx = F (b) F (a)

Sin lugar a dudas, esto constituy uno de los ms grandes descubrimientos dentro del clculo
infinitesimal. Pero es casi improbable calcular la integral de una funcin arbitraria f . En este
captulo veremos algunos de los ms populares mtodos numricos para calcular integrales
definidas.
La idea bsica de los mtodos numricos consiste en establecer una particin uniforme
{x0 , x1 , ..., xn1 , xn } del intervalo de integracin [a, b] :
a = x0 , x1 , ..., xn1 , xn = b

(7.1)

donde x0 < x1 < xn y h = x1 x0 = x2 x1 = = xn xn1 = (b a)/n. Posteriormente,


sustituir la funcin f por polinomios que la aproximen razonablemente en el intervalo [a, b] .
As, el problema se resumira a la integracin de polinomios, lo cual es trivial.

7.1.

Mtodo de los Trapecios

Si usamos la frmula de Lagrange para aproximar f por un polinomio p1 de grado uno en


x0 y x1 , tenemos

Z x1
Z x1
Z x1
x x1
x x0
f (x0 ) +
f (x1 ) dx
f (x)dx
p1 (x)dx =
h
h
x0
x0
x0
h
=
(f (x0 ) + f (x1 )) = T
2
Observe que, cuando f sobre [x0 , x1 ] est por encima del eje de las abscisas, T puede ser
interpretada como el rea del trapecio mostrado en la figura 7.1, la cual es una aproximacin
111

112

CAPTULO 7. INTEGRACIN NUMRICA

para el valor de la integral de f en [x0 , x1 ] . Mientras ms pequeo sea h, mejor ser la


aproximacin.

Figura 7.1:
Podemos repetir ese procedimiento para cada uno de los subintervalos generados por la particin uniforme, as
Z b
n1 Z xk+1
n1
n1
X
X
hX
h
(f (xk ) + f (xk+1 )) =
f (x)dx =
f (x)dx
(f (xk ) + f (xk+1 ))
2
2
a
x
k
k=0
k=0
k=0

Note adems que xk = x0 + kh = a + kb, esto nos lleva al siguiente algoritmo.

Algoritmo 7.1 (Regla de los Trapecios) Dada la funcin f : R 7 R continua en [a, b] .


Paso inicial: Definir n y calcular h = (b a)/n
Paso principal: Calcular
hX
I=
{f (a + kh) + f (a + (k + 1)h)}
2 k=0
n1

I es una aproximacin a

Rb
a

f (x)dx

Una funcin en Matlab quedara as:


function I=trapecio(a,b,n)
h=(b-a)/n;
I=0;
for k=1:n
I=I+f(a+(k-1)*h)+f(a+k*h);
end
I=I*h/2
Ejemplo 7.1 Usando la funcin de arriba, calcule y verifique que:
R2
1. Para n = 10000, se tiene 1 x2 dx 3, 00000004499998
R2
2
2. Para n = 10000, se tiene 0 ex dx 0, 882081390518215
R7
3. Para n = 10000, se tiene 3 sen(7x3 + sen(ln(x4 + x2 + 5)))dx 0, 681133991768069

7.2. MTODO DE SIMPSON

7.2.

113

Mtodo de Simpson

Consideremos la misma particin introducida en (7.1). Podemos usar de nuevo la frmula


de Lagrange para obtener la frmula de integracin resultante de la interpolacin de f por un
polinomio de grado 2. Sea p2 el polinomio que interpola f en los puntos x0 , x1 = x0 + h y
x2 = x0 + 2h (vea la figura 7.2)

Figura 7.2:
As,
p2 (x) =
Luego,
Z

x2

x0

(x x1 )(x x2 )
(x x0 )(x x2 )
(x x0 )(x x1 )
f (x0 ) +
f (x1 ) +
f (x2 )
(h)(2h)
(h)(h)
(2h)(h)
Z

Z
f (x0 ) x2
f (x)dx
p2 (x)dx =
(x x1 )(x x2 )dx
2h2 x0
x0
Z
Z
f (x1 ) x2
f (x2 ) x2
2
(x x0 )(x x2 )dx +
(x x0 )(x x1 )dx
h
2h2 x0
x0
x2

integrando, tenemos
Z

x2

x0

f (x)dx

h
(f (x0 ) + 4f (x1 ) + f (x2 )) = S
3

Podemos tomar de tres puntos de la particin y aplicar repetidamente esta regla, para eso
requerimos que la particin sea definida por n par. Luego:
Z

f (x)dx =

xn

f (x)dx =

x0

n/2 Z
X
k=1

x2k

x2k2

f (x)dx

h
{[f (x0 ) + 4f (x1 ) + f (x2 )]
3

+ [f (x2 ) + 4f (x3 ) + f (x4 )] + + [f (xn2 ) + 4f (xn1 ) + f (xn )]}


Ms an,
Z

f (x)dx

h
{[f (x0 ) + f (xn )] + 4 [f (x1 ) + f (x3 ) + + f (xn1 )]
3
+2 [f (x2 ) + f (x4 ) + + f (xn2 )]}

Esto nos lleva al siguiente algoritmo.

114

CAPTULO 7. INTEGRACIN NUMRICA

Algoritmo 7.2 (Regla de Sipmson) Dada la funcin f : R 7 R continua en [a, b].


Paso inicial: Definir n y calcular h = (b a)/n
Paso principal: Calcular
S =

h
{[f (a) + f (b)] + 4 [f (a + h) + f (a + 3h) + + f (a + (n 1)h)]
3
+2 [f (a + 2h) + f (a + 4h) + + f (a + (n 2)h)]}

S es una aproximacin para

Rb
a

f (x)dx.

Una funcin en Matlab para este caso, estara dada del siguiente modo:
function S=simpson(a,b,n)
S1=0;
S2=0;
h=(b-a)/n;
for k=1:2:n-1
S1=S1+f(a+k*h);
end
for k=2:2:n-2
S2=S2+f(a+k*h);
end
S=(h/3)*((f(a)+f(b))+4*S1+2*S2);
Ejemplo
7.2 Implementamos el mtodo de Simpson y lo usamos para calcular la misma inR 2 x
2
tegral 0 e dx, del ejemplo anterior. Para el caso de apenas n = 100, obtuvimos
Z

ex dx 0, 882081390111187

Observacin 7.1 En la prctica, el mtodo de Simpson es ms eficiente que el mtodo del


trapecio, una manera de medir analticamente esto es por medio del estudio de error cometido..
Problema 7.1 Haga un estudio de la estimativa de los errores cometidos por los mtodos del
Trapecio y Simpson.

Bibliografa
[1] Steven C. ,Mtodos Numricos para ingenieros.quinta edicin. McGraw-Hill, 2006
[2] Jaan K. Numerical Methods in Engineering with MATLAB. 2005
[3] John H. Mtodos numricos con Matlab. tercera edicin. Prentice 2000
[4] Hern M. Matlab 7.para ciencias e ingeniera. primera edicin. Megabyte. 2005
[5] Burden R. Anlisis numrico. 7 edicin. Cengage
[6] Amos Gilat Matlab una introduccin con ejemplos prcticos 2 edicin Ed reverte 2006

115

Vous aimerez peut-être aussi