Académique Documents
Professionnel Documents
Culture Documents
ii
ndice general
Introduccin
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
2
3
3
8
8
8
17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
19
19
20
21
22
26
.
.
.
.
.
.
.
.
.
29
29
31
32
37
38
42
54
58
58
.
.
.
.
.
.
.
63
64
65
65
66
67
67
68
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
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
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
A=
a1,1
a2,1
..
.
am,1
a1,2 a1,n
a2,2 a2,n
..
..
...
.
.
am,2
am,n
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
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
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.
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)
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)
no
xor o excluyente
Ejemplo 1.1
1 4 7 3
A= 2 5 1 5
3 6 5 1
4
5
0
0
7
1
5
8
3
5
1
0
4
5
0
0
7
1
5
8
3
5
1
0
9
0
0
0
7
1
5
8
3
5
1
0
9
0
0
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
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
ans=
1
5
9
1
2
6
0
3
3
7
5
5
4
8
2
7
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
2
4
6
8
7
b) Construya el arreglo
A
B
C
1.5.
Fichero function
1.5.1.
Bucles
1.5.2.
Sentencias condicionales
10
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
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
13
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
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
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
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
17
1.6.
sen x
x
18
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.
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
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.
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?
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.
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
30000
X
ai
i=1
30000
X
i=1
1 = 0, 5 30000 = 15000
22
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.
(10111)2 = 1 24 + 0 23 + 1 22 + 1 21 + 1 20
= 2(23 + 2) + 3 = 2 101 + 3 100
= (23)10
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)
24
A
Paso 3: Hacer prec = 2A e imprimir prec .
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]
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
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
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.
6, 1
6, 2
x = 5, 8 y x = 5, 9
11, 3
10, 9
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
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
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.
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
0
eje x
-1
raz
-2
-3
-4
f(x) = sqrt(x) - 5*exp(-x)
-5
31
x [2; 1]
xR
3.2.
xR
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<
Figura 3.2: f () = 0
32
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
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
33
precisin requerida, (b a) < , usando para eso una sucesiva divisin de [a; b] a la mitad.
a+b
2
e ir al paso 4.
ak +bk
,
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
b0 a0
2k
(3.2)
Entonces,
lm (bk ak ) = lm
(b0 a0 )
=0
2k
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 =
= (f ())
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
(3.4)
35
= log2 (102 ) + 1 = 7
Luego, el algoritmo debera detenerse con k = 7 iteraciones.
36
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
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
+
+
3.2.2.
37
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.
38
3.2.3.
39
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
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
41
(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
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, ...
|xk+1 |
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
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 ()
f (x)
. f 0 (x) 6= 0
f 0 (x)
(3.6)
Observe que
0 (x) = 1
44
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, ..
f (xk )
,
f 0 (xk )
f 0 (xk ) 6= 0,
k = 0, 1, 2, ..
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 .
(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 .
46
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 )
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 )
de donde 00 es continua en y
00 () =
f 00 ()
f 0 ()
|ek+1 |
=
k |ek |2
lm
lm
(3.9)
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
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)
48
-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
-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
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
+
-
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
50
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
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
-
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
x
(k)
(k1)
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
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
3.2.5.
Mtodo de Secante
f (xk )
f (xk )f (xk1 )
xk xk1
= xk
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.
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 +
= ( 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 | <
56
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
57
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
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
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
3.2.6.
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
y Ac = 3y +
y2
2
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
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.
t
N(t) = N0 et +
e 1
3.3. PROBLEMAS
1. Determinar la tasa de natalidad.
2. Hacer una previsin de la poblacin al cabo de tres aos.
61
62
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
4.1.
Aspectos Tericos
a1,1 x1 + a1,2 x2
a2,1 x1 + a2,2 x2
..
..
..
.
.
.
a x + a x
m,1 1
m,2 2
+
+
..
.
a1,n xn
a2,n xn
..
.
+ am,n xn
=
=
..
.
b1
b2
..
.
(4.1)
= bm
a1,1 a1,2
a2,1 a2,2
A = ..
..
...
.
.
am,1 am,2
(4.2)
b1
x1
a1,n
b2
x2
a2,n
,
b
=
y
x
=
..
..
..
.
.
.
am,n
bm
xn
4.1.1.
65
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}
4.1.2.
66
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
4.2.
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.
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
(4.4)
j=1
4.4.
Mtodo de Gauss
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
1,1 1
.
.
.
.
a0n,n xn = b0n
3
La regla de Cramer tiene un valor terico, pues se utiliza en la demostracin de muchas propiedades.
68
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
b0n1 a0n1,n xn
=
a0n1,n1
4.4.1.
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:
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
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
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
70
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
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.
72
ai,k
,
ak,k
i = 2, ..., n,
k = 1, ..., n 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
73
2
2 5
3
1 ;
A= 2
1 4
4
1 2 3
2 2 4
A = A(0) =
1 1 2
1 0 0
0
A(1) =
0
0
6
b = 13
3
0
2
10
(0)
4
y
b
=
b
=
6
1
2
0
2
3
0
2 2 10
1 5 1
2 3 2
1 2
3
0
0 2 2 10
A(2) =
0 0 4 4
0 0 1 8
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
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.
4.5.
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)
75
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:
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
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
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
77
78
4.6.
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
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
1
0 0
2,1
1 0
L = ..
..
. . . ..
.
.
.
1
n,1
n,2
80
U =
u1,1
0
..
.
u1,2
u2,2
..
.
...
u1,n
u2,n
..
.
un,n
(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.
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
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
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
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
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
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.1.
83
a1,1 a1,2
a2,1 a2,2
A = ..
..
.
.
an,1 an,1
...
a1,n
a2,n
..
.
an,n
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
g1,1 g1,1
g2,1 g1,1
..
.
j = 3, ..., n
k = 2, ..., n
84
haciendo
tenemos
de donde
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
j = k + 1, ..., n
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
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.
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
y
xt Cx = xt (B t B)x = (Bx)t (Bx) = kBxk2 0
1 0
0 1
es inversible pero no es definida positiva (en realidad es definida negativa).
86
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
+
+
..
.
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
87
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)
1
(b
a1,1 1
1
(b
a2,2 2
1
(b
an,n n
(4.15)
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.
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
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
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
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)
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)
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.
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:
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
10
0
0
8, 00
6, 00
9
3
10
te-nemos:
10
10
93
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 =
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
x1
x2
x3
3
2
1
2.08094228847598 2.55445312292730 1.44721106891753
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
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
95
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
4 u 1
1
1 3 u 2
J(x) =
1
2 3 u
2x
2y
2z
x=
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
Observe que
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
1
2
6
10
1
1
1
2
97
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.
98
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
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
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
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
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 )
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.
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)
=
=
=
=
102
Luego
(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.
i = 0, 1, ..., n
6.1. INTERPOLACIN
103
donde
Lk (x) =
Yn
i=0 (x xi )
i6=k
Yn
i=0 (xk xi )
i6=k
(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
6.2.
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)
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.
105
(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 .
106
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.
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)
m
m
X
X
2
(ai bi ) =
d2i
kA bk =
2
i=1
i=1
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)
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
(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
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
1
2
302, 1375
42, 5000
tenemos
1
2
1, 22449857738665
0, 606667482559783
109
110
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]
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)
7.1.
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
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
I es una aproximacin a
Rb
a
f (x)dx
7.2.
113
Mtodo de Simpson
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 (x)dx
h
{[f (x0 ) + f (xn )] + 4 [f (x1 ) + f (x3 ) + + f (xn1 )]
3
+2 [f (x2 ) + f (x4 ) + + f (xn2 )]}
114
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)]}
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
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