Está en la página 1de 139

Notas MATE 4061

Notas de Anlisis Numrico (MATE


4061)
Por: Pablo V. Negrn Marrero

Contenido:
1. Conceptos Bsicos
2. Representacin de Nmeros en la Computadora
3. Sistemas Lineales
1. Eliminacion Gaussiana y sus Variantes
2. Estabilidad de Sistemas Lineales
4. Ecuaciones Nolineales
5. Interpolacion y Aproximacion de Funciones:
1. El Problema de Interpolacin y la Representacin de Newton
2. Funciones Polinomiales por Pedazos - Splines
3. Interpolacion de Cuadrados Minimos
6. Diferenciacin e Integracin Numrica
1. Diferenciacin Numrica - Mtodos de Series de Taylor
2. Reglas del Trapezoide y Simpson
3. Anlisis de Errores y Frmulas Corregidas
4. Extrapolacin de Richardson y Reglas de Cuadratura Gaussiana
7. Ecuaciones Diferenciales Numricas - Problema de Valor Inicial
1. Mtodo de Euler - Sistemas de Ecuaciones y Ecuaciones de Orden Mayor de Uno
2. Mtodos Runge-Kutta
8. Apendices
1. Un Vistaso a Matlab
2. Reglas para la entrega de proyectos
Referencias:
1. Atkinson, K., Elementary Numerical Analysis, 2nd ed., John Wiley & Sons, Inc., New York,
1993.
2. Lindfield, G. and Penny, J., Numerical Methods using MATLAB, Prentice-Hall, New York,
1995.
3. Part-Enander, E., Sjoberg, A., Melin, B., and Isaksson, P., The MATLAB Handbook, AddisonWesley, New York, 1996.
4. Van Loan, C., Introduction to Scientific Computing: A Matrix-Vector Approach Using
MATLAB, Prentice-Hall, New York, 1997.
http://uprhmate01.upr.clu.edu/~pnm/notas4061/ (1 de 2) [04/08/2002 0:27:22]

Notas MATE 4061

Derechos Reservados por Pablo V. Negrn Marrero.

Este documento puede ser copiado y distribuido a gusto sujeto a las siguientes restricciones:
1. El documento no puede ser alterado en ninguna manera.
2. Ninguna parte del manuscrito o su totalidad puede ser distribuido comercialmente como parte
de otro documento.

http://uprhmate01.upr.clu.edu/~pnm/notas4061/ (2 de 2) [04/08/2002 0:27:22]

Capitulo 1

Capitulo 1
Conceptos Bsicos de Anlisis Matemtico
En este capitulo repasaremos algunos de los conceptos ms importantes del clculo que son esenciales
en el estudio de mtodos numricos. Adems discutiremos el resultado ms fundamental para
aproximar funciones para hacer estimados de errores: el Teorema de Taylor. Veremos tambin otros
resultados importantes como los Teoremas del Valor Medio para funciones e integrales, el Teorema
del valor intermedio, y el Teorema de la funcion implicita.

Resultados Bsicos
El primer resultado bsico es el Teorema del Valor Medio para funciones. En palabras y en el
contexto fsico del movimiento de una particula, este teorema dice que en cualquier intervalo finito de
tiempo, la velocidad promedio de la particula en el intervalo es igual a la velocidad instatanea en
algn instante de tiempo. Tenemos pues:
continua y
Teorema (1.1): (Teorema del Valor Medio para funciones) Sea
diferenciable en (a,b) donde a,b son finitos. Entonces existe un nmero c en (a,b) tal que
(1.1)
Para intergrales tenemos tambin un resultado parecido.
Teorema (1.2): (Teorema del Valor Medio para Integrales) Suponga que f y g son funciones
continuas en el intervalo acotado [a,b] y que g(x) 0 para toda x en [a,b]. Entonces existe un punto c
en [a,b] tal que

(1.2)

En el caso de que g=1, el resultado se puede interpretar como que el area bajo la curva f(x) en el
intervalo [a,b] es igual al area del rectangulo con base [a,b] y altura f(c).
El proximo teorema establece la idea intuitiva de que si una funcin continua cambia de signo en un
intervalo [a,b] entonces en algn punto del intervalo cruz el eje de x. Veamos:
Teorema (1.3): (Teorema del Valor Intermedio) Suponga que
es continua y que C es
un nmero estrictamente entre f(a) y f(b). Entonces existe un nmero c en (a,b) tal que f(c)=C. En
particular si f(a)f(b) < 0, entonces existe un c en (a,b) tal que f(c)=0.

http://uprhmate01.upr.clu.edu/~pnm/notas4061/basicos/basicos.html (1 de 11) [04/08/2002 0:28:11]

Capitulo 1

El siguiente resultado nos provee de condiciones suficientes que garantizan que una ecuacin nolineal
como f(x,y)=0 se pueda resolver digamos para "x" en terminos de "y".
Teorema (1.4): (Teorema de la Funcin Implicita): Sea

un conjunto abierto,

continua y con derivadas parciales continuas en D. Suponga que (x0,y0) en un punto en D


tal que
(1.3)

Entonces existe un nmero


continua tal que

y una funcin

continua y con derivada

(1.4)

El teorema dice que dadas las condiciones (1.3) podemos resolver la ecuacin f(x,y)=0 para "x" en
, en un intervalo alrededor de y0. Si en (1.3) cambiamos a
terminos de "y", i.e,
, entonces podemos resolver para "y" en terminos de "x". En el caso lineal
f(x,y)=ax+by+c, el teorema lo que dice es que si a 0, entonces en f(x,y)=0 podemos despejar para
"x" en terminos de "y" lo cal en este caso es obvio.

Teorema de Taylor
Un problema comn es el de evaluar una funcin f(x) en un argumento x=a dado. Aunque esto parece
un problema sencillo, la funcin f podria ser desconocida complicada para evaluar. Lo que
buscamos pues es aproximar a f con una funcin g que sea ms "fcil" de evaluar que f. Los
polinomios de Taylor son una forma de hacer esto aunque veremos otras alternativas ms adelante.
Polinomio de Taylor de grado uno: Suponga que conocemos f(a) y f '(a). Queremos hallar un
polinomio p1(x) tal que p1(a)=f(a), p'1(a)=f '(a). Sabemos que p1(x)=a1+a2x (por qu?) de modo que:

de donde obtenemos que p1(x)=f(a)+f '(a)(x-a) lo que se conoce como el polinomio de Taylor de
grado uno para f en x=a.
Polinomio de Taylor de grado dos: De igual forma, si conocemos f(a), f '(a), f "(a) podemos construir
http://uprhmate01.upr.clu.edu/~pnm/notas4061/basicos/basicos.html (2 de 11) [04/08/2002 0:28:11]

Capitulo 1

un polinomio de grado dos p2(x) tal que p2(a)=f(a), p'2(a)=f '(a), p"2(a)=f "(a). Trabajando como arriba
obtenemos que
p2(x)=f(a)+f '(a)(x-a)+(1/2)(x-a)2f "(a)
lo que se conoce como el polinomio de Taylor de grado dos para f en x=a.
En general si f(a), f '(a),,f (n)(a) son conocidas, se puede demostrar que el polinomio de grado a lo
esta dado por
ms n que cumple con las condiciones

lo que se conoce como el polinomio de Taylor de grado a lo ms n para f en x=a. Recuerde aqui que
j! denota el factorial de j y se define en forma recursiva por:

Ejemplo 1: Considere la funcin f(x)=1/(1+x) y tomemos a=0. Entonces f '(x)=-(1+x)-2, f "(x)=2(1+x)3, f(3)(x)=-(2)(3)(1+x)-4, de donde podemos concluir en forma inductiva que

Tenemos ahora que

En particular

Podemos ahora graficar p1, p2, y f en el mismos sistema de coordenadas con las siguientes
instrucciones en MATLAB:
x=linspace(-0.5,0.5,100);
http://uprhmate01.upr.clu.edu/~pnm/notas4061/basicos/basicos.html (3 de 11) [04/08/2002 0:28:11]

Capitulo 1

p1=1-x;
p2=p1+x.^2;
f=1./(1+x);
plot(x,p1,x,p2,x,f)
xlabel('X');ylabel('Y');
title('Funcion f(x)=1/(1+x) con sus polinomios de Taylor de grados uno y dos')
text(-0.4,1.8,'f');
text(-0.45,1.4,'p1');
text(-0.45,1.7,'p2');
Esto produce la grfica que se muestra a continuacin:

Note que el polinomio de grado dos aproxima mejor a f en el intervalo en cuestin pero la diferencia
entre los polinomios y la funcin f (el error) aumenta segn nos alejamos del centro a=0.
Queremos ahora de alguna forma cuantificar las observaciones del ejemplo anterior en cuanto al error
de aproximacin de los polinomios de Taylor. Tenemos pues:
Teorema (1.5) (de Taylor): Suponga que

y sea

http://uprhmate01.upr.clu.edu/~pnm/notas4061/basicos/basicos.html (4 de 11) [04/08/2002 0:28:11]

. Sea Rn(x)=f(x)-pn(x) el

Capitulo 1

error en aproximar f con pn. Entonces

donde cx es un nmero entre a y x.


Ejemplo 2: Considere la funcin f(x)=e2x y tomamos nuevamente a=0. Aqui f(j)(x)=2je2x para toda
j0. Asi que

El error de aproximacin esta dado por

donde cx esta entre cero y x. El caso especial x = nos provee de una frmula para aproximar el
nmero "e":

Note que

donde usamos que como c esta entre cero y , entonces ec < e < 3. Si queremos aproximar "e" con la
frmula de arriba con un error (absoluto) de 10-t entonces podemos estimar "n" mediante el siguiente
programa en MATLAB:
t=6;
n=0;
R=3;
tol=10^(-t);
while R>tol
n=n+1;
R=3/gamma(n+1);
http://uprhmate01.upr.clu.edu/~pnm/notas4061/basicos/basicos.html (5 de 11) [04/08/2002 0:28:11]

Capitulo 1

end
n
lo cual produce el siguiente resultado para t=6 de n = 10.
Ejemplo 3: Vamos a aproximar la funcin sen(x) en el intervalo
con un error de 10-4.
Sabemos que f'(x)=cos(x), f ''(x)=-sen(x), f '''(x)=-cos(x), etc. Tomando a=0 obtenemos pues que f
'(0)=1, f ''(0)=0, f '''(0)=-1, etc., de donde podemos concluir que

Ahora

donde cx esta en

. Note que en cualquier caso, "n" par impar, para


el error satisface:

Podemos calcular la "n" que hace el error menor de 10-4 mediante el siguiente programa en
MATLAB:
t=4;
n=0;
R=pi/2;
tol=10^(-t);
while R>tol
n=n+1;
R=(pi/2)^n/gamma(n+1);
end
n
http://uprhmate01.upr.clu.edu/~pnm/notas4061/basicos/basicos.html (6 de 11) [04/08/2002 0:28:11]

Capitulo 1

lo cual produce el valor de n=10.


En ocasiones podemos calcular polinomios de Taylor de funciones complicadas definidas en terminos
de otras funciones para las cuales conocemos sus polinomios de Taylor. Antes de ver un ejemplo de
esto, veamos la frmula para la serie geomtrica:

Esta frmula se demuestra facilmente por induccin y en el caso

tenemos que

Ejemplo 4: Vamos a calcular un polinomio de Taylor con su residuo para la funcin log(1+x2).
Primero observamos que para t > -1

Usando la frmula de arriba podemos escribir

De modo que

Sustituyendo ahora t=x2 obtenemos

http://uprhmate01.upr.clu.edu/~pnm/notas4061/basicos/basicos.html (7 de 11) [04/08/2002 0:28:11]

Capitulo 1

donde usamos el Teorema del Valor Medio para integrales y cx es un nmero entre cero y x2. Esta
frmula nos da un polinomio para aproximar log(1+x2) con la correspondiente frmula del error.

Evaluacin de Polinomios
Considere el polinomio
p(x)=2 - 3x + 4x2 - 5x3 + 7x4 + 2x5
Podemos evaluar este polinomio de tres maneras:
1. Calculamos 2x5, 7x4, -5x3, 4x2, 3x y luego sumamos los resultados. Esto requiere de
5+4+3+2+1=15 multiplicaciones.
2. Calculamos x2, x(x2)=x3, x(x3), etc. Luego multiplicamos por los coeficientes y sumamos.
Esto requiere 4+5=9 multiplicaciones.
3. Escribimos p(x)=2+x(-3+x(4+x(-5+x(7+2x)))) lo cal requiere de 5 multiplicaciones.
La tercera forma de evaluar el polinomio es lo que se conoce como el Mtodo de Horner y
corresponde exactamente al proceso de evaluacin sinttica que aprendimos en preclculo. En general
para evaluar el polinomio p(x)=a0 + a1x + a2x2 + + anxn tenemos
Mtodo

Nmero de Multiplicaciones

n(n+1)/2

2n-1

Horner

Examinamos ahora en ms detalles el mtodo de Horner. Este se mtodo se puede describir por las
siguientes iteraciones: dado un nmero z
1.
2.
3.

bn = an
Para i=n-1,,0
bi=ai + z bi+1

http://uprhmate01.upr.clu.edu/~pnm/notas4061/basicos/basicos.html (8 de 11) [04/08/2002 0:28:11]

Capitulo 1

Tenemos pues que p(z) = b0.


Demostracin: Por induccin en "n" el grado del polinomio.
(Paso bsico) Para n=1, p(x) = a0 + a1x, b1 = a1, b0 = a0 + z b1 = a0 + z a1 = p(z) lo cal demuestra
que el resultado es cierto para n=1.
(Paso inductivo) Vamos a suponer que el resultado es cierto para cualquier polinomio de grado k1.
Entonces para p(x)=a0 + a1x + a2x2 + + ak+1xk+1 definimos
1.
2.
3.

bk+1 = ak+1
Para i=k,,0
bi=ai + z bi+1

Defina el polinomio q(x) de grado k por: q(x)=a0 + a1x + a2x2 + + (ak + ak+1z)xk y los
correspondientes b's por:
1.
2. Para i=k-1,,0
3.
Observe que p(z)=q(z) y que

para 0 i k. Como el grado de q(x) es k, tenemos por la

hipotesis de induccin que

. Pero

y el resultado es cierto para

polinomios de grado k+1 tambin.


El resultado queda pues establecido para cualquier n 1.
El mtodo de Horner lo podemos implementar en MATLAB en forma eficiente. Aqui el arreglo a(1:n)
contiene los coeficientes a0, a1, etc. del polinomio. El arreglo "z" puede contener ms de un valor de
modo que la funcin evalua el polinomio en el conjunto de datos dados por z:
function pval=hornerV(a,z)
n=length(a); m=length(z);
pval=a(n)*ones(m,1);
for k=n-1:-1:1
pval=a(k)+z.*pval;
end
Ejemplo 5: Para trazar el polinomio p(x)=2 - 3x + 4x2 - 5x3 + 7x4 + 2x5 en el intervalo de [-1,1]
podemos escribir:
http://uprhmate01.upr.clu.edu/~pnm/notas4061/basicos/basicos.html (9 de 11) [04/08/2002 0:28:11]

Capitulo 1

a=[2 -3 4 -5 7 2];
z=linspace(-1,1,100)';
y=hornerV(a,z);
plot(z,y)
xlabel('x');ylabel('y');
title('p(x)=2-3*x+4*x^2-5*x^3+7*x^4+2*x^5')
lo cual produce la grfica:

Ejercicios
1. Considere la funcin

en el intervalo [-1,1].

,i.e., los primeros cuatro polinomios de Taylor de


a. Calcule las formulas de
alrededor de
.
b. Grafque en el mismo sistema de coordenadas los cuatro polinomios.
c. Estme grficamente el error

para

http://uprhmate01.upr.clu.edu/~pnm/notas4061/basicos/basicos.html (10 de 11) [04/08/2002 0:28:11]

Capitulo 1

d. Compare los resultados de la parte (c) con los predichos por la cota del Teorema de
Taylor.

http://uprhmate01.upr.clu.edu/~pnm/notas4061/basicos/basicos.html (11 de 11) [04/08/2002 0:28:11]

Captulo 2

Captulo 2
Representacin de Nmeros en la Computadora
En este captulo estudiaremos como se representan los nmeros en la computadora. Por limitaciones
fisicas, los nmeros solo se pueden representar con un nmero finito de cifras en la computadora. Al
igual las operaciones aritmticas que se efectuan en la computadora no corresponden a las operaciones
matemticas exactas. Veremos pues como estas limitaciones en la representacin de los nmeros y las
operaciones arimticas afectan los computos y la propagacin de errores.

Bases Numricas y Cambios de Bases


Veamos primero las distintas formas de representar nmeros en terminos de bases distintas. Por ejemplo
el nmero 231.12 base dies se interpreta como:
(231.12)10 = 2 x 102 + 3 x 101 + 1 x 100 + 1 x 10-1 + 2 x 10-2
Otro ejemplo seria:
(101.11)2 = 1 x 22 + 0 x 21 + 1 x 20 + 1 x 2-1 + 1 x 2-2 = 4 + 1 + + = (5.75)10
Un ejemplo menos trivial es el siguiente:

donde usamos que

Hemos visto aqui como convertir un nmero binario a su decimal correspondiente. Veamos ahora como
convertimos de decimal a binario. Mostramos aqui el procedimiento convirtiendo (217.732)10 a binario.
Trabajamos primero con la parte entera del nmero. Dividimos esta sucesivamente por dos y llevamos
registro de los residuos sucesivos hasta que el cociente sea cero. Estos reciduos desde el ltimo hasta el
primero, forman la representacin binaria de la parte entera. Veamos
divisor

dividendo

cociente

residuo

217

108

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap2/repre.html (1 de 18) [04/08/2002 0:30:47]

Captulo 2

108

54

54

27

27

13

13

Asi que (217)10=(11011001)2. Para la parte fraccional, multiplicamos sucesivamente por dos y llevamos
cuenta cada ves que el resultado sea mayor de uno no. Veamos
2(0.732)=1.464

0.464

2(0.464)=0.928

0.928

2(0.928)=1.856

0.856

2(0.856)=1.712

0.712

2(0.712)=1.424

0.424

En este caso el proceso sigue indefinidamente y escribimos (0.732)10=(0.10111)2. Combinando los


dos clculos tenemos (217.732)10=(11011001.10111)2.
En los nmeros hexadecimales o base 16 los digitos son
{0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}
Aqui (A)16=(10)10, (B)16=(11)10, etc. Por ejemplo
(CD.B9)16=(12 x 161 + 13 x 160 + 11 x 16-1 + 9 x 16-2)10
Los mtodos para cambiar de binario a hexadecimal y viceversa son extremadamente sencillos.
Historicamente las bases binaria, hexadecimal, y octal han sido las ms utilizadas para representar
http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap2/repre.html (2 de 18) [04/08/2002 0:30:47]

Captulo 2

nmeros en la computadora. Esto es bsicamente por que el circuito electrico ms bsico se puede
representar por uno si hay corriente cero si no hay corriente. Lo que lleva naturalmente al sistema
binario como forma de representar el estado del circuito. Esto con lo relativamente fcil de pasar de una
base a otra hace que las bases binaria, hexadecimal, y octal sean utilizadas eficientemente para disear
computadoras.

Nmeros de Punto Flotante


Sea "x" un nmero real base dies dos. Podemos representar a "x" en forma nica como sigue:
(2.1)
donde

, "e" es un entero positivo negativo,

,y

es dies dos. Por ejemplo

(-117.32)10 = -(0.11732)10 x 103 , (1101.11)2 = (0.110111)2 x 24


La representacin de punto flotante del nmero "x" se denota por fl(x) y consiste de (2.1) con alguna
restriccin en el nmero de cifras en y el tamao de "e". Tenemos pues que
(2.2)
donde N,M son positivos y
forma a partir de

. El nmero

. Los ai's se obtienen de alguna


se conoce como la mantisa y "t" el nmero de cifras o

largo de mantisa. Si alguna operacin aritmtica produce un resultado con e > M decimos que hubo un
overflow. Por el contrario si en el resultado, e < -N decimos que hubo un underflow.
Se puede verificar que "t" cifras en la mantisa equivalen aproximadamente a "t" cifras significativas en la
misma base. Ademas "t" digitos binarios equivalen a "t log102" digitos base dies.
Veamos ahora varias cantidades importantes del sistema (2.2):

el nmero ms grande en el sistema es:

el nmero ms pequeo es:

el nmero positivo "u" ms pequeo tal que

, llamado el epsilon de la mquina es

(por qu?)
La dos formas ms comunes de calcular la mantisa son:
http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap2/repre.html (3 de 18) [04/08/2002 0:30:47]

Captulo 2

Truncacin: si

digitos
Redondeo: en el caso

entonces

. Esto es truncamos

a "t"

, tenemos

con las reglas correspondientes base dos.


Tenemos ahora el teorema que nos habla sobre el error en estas dos reglas:
Teorema (2.1):

donde

Note que el error en redondeo es en general la mitad del error en truncacin. Tambin se puede verificar
que como los errores en redondeo varian en signo, estadisticamente "en promedio" tienden a cancelarce.
Esta cancelacin no es tan probable con truncacin. A pesar de estas ventajas la truncacin es usada
comunmente en el diseo de computadoras por lo fcil de su implementacion a nivel de "hardware".

Estandar de Aritmtica de Punto Flotante de la IEEE


La gran mayoria de las computadoras construidas en los ltimos quince aos utilizan lo que se conoce
como el estandar de aritmtica de punto flotante de la IEEE. Esto uniformiz los procesos de
representacin de nmeros en computadoras distintas facilitando asi las comparaciones y anlisis de
errores. En este estandar
y el flotante de un nmero tiene la forma:
(2.3)
donde "f" es ahora la mantisa y satisface
usados para t y e son como sigue:

y se representa con t cifras binarias. Los valores

en presicin sencilla, fl(x) se almacena en una palabra de 32 bits con un bit para , ocho para
"e", t = 24, y N = 126, M = 127.
en presicin doble, fl(x) se almacena en una palabra de 64 bits con un bit para , once para "e", t
= 52, y N = 1022, M = 1023.

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap2/repre.html (4 de 18) [04/08/2002 0:30:47]

Captulo 2

La presicin sencilla economiza memoria pero no es mucho ms rapida que la presicin doble en las
computadoras modernas. La distribucin de los nmeros de punto flotante en la recta numrica es una
nouniforme. De hecho para un exponente "e" dado, los nmeros de punto flotante entre 2e y 2e+1 estan
uniformemente distribuidos con incremento 2e-t. Ilustramos esto aqui para el estandar de la IEEE con un
sistema trivial donde f y e tienen dos y tres digitos binarios respectivamente. Los nmeros de punto
flotante de este sistema los podemos enumerar en la siguiente tabla:
1+f \ e

-2

-1

1.00

(1.01)2=1.25

5/16

5/8

5/4

5/2

10

(1.10)2=1.50

3/8

3/2

12

(1.11)2=1.75

7/16

7/8

7/4

7/2

14

Si ordenamos estos nmeros en forma ascendente obtenemos:

Podemos observar aqui que la densidad de los nmeros de punto flotante disminuye con su tamao.
Podemos tambin observar esto grficamente en la siguiente figura:

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap2/repre.html (5 de 18) [04/08/2002 0:30:47]

Captulo 2

El nmero positivo ms grande en el estandar de la IEEE esta dado por:

Este nmero se denota en MATLAB por realmax. Cualquier resultado numrico que produsca un
nmero mayor que realmax se conoce como un overflow y se denota por Inf (infinito) y se representa en
(2.3) tomando f=0 y e=1024 en presicin doble. El nmero Inf satisface las relaciones 1/Inf=0 y
Inf+Inf=Inf.
El correspondiente nmero positivo ms pequeo es:

y se denota en MATLAB por realmin. Cualquier resultado numrico que produsca un nmero menor
que realmin se conoce como un underflow y en muchas computadoras el resultado se iguala a cero pero
esto no es estandar. Calculos como 0/0, Inf-Inf que pueden conllevar a resultados indefinidos se denotan
por NaN (not a number).
http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap2/repre.html (6 de 18) [04/08/2002 0:30:47]

Captulo 2

El epsilon de la mquina esta dado en este sistema por 2-t y se denota en MATLAB por eps. Este
nmero corresponde al incremente de los nmeros entre 1 y 2 en el sistema de punto flotante. eps
corresponde al error relativo (ver definicin ms adelante) minimo posible en cualquier computo
numrico en el sistema de punto flotante. Toda operacin aritmtica en la computadora o la
representacin de punto flotante de un nmero, induce un error relativo no mayor de eps.
En la siguiente tabla ilustramos estas cantidades especiales con sus respectivas representaciones binarias
en la computadora en presicin doble:
Nmero

Signo

Exponente

Mantisa

realmax

111 1111 1110 (si ponemos 1 al final


corresponde a overflow)

1111 1111 1111 1111 1111


1111 1111 1111 1111 1111
1111 1111 1111

realmin

000 0000 0001 (exponente mas pequeo


antes de underflow)

0000 0000 0000 0000 0000


0000 0000 0000 0000 0000
0000 0000 0000

-realmin

000 0000 0001

0000 0000 0000 0000 0000


0000 0000 0000 0000 0000
0000 0000 0000

eps

011 1100 1011 (-52+1023)

0000 0000 0000 0000 0000


0000 0000 0000 0000 0000
0000 0000 0000

000 0000 0000 (exponente de underflow)

0000 0000 0000 0000 0000


0000 0000 0000 0000 0000
0000 0000 0000

011 1111 1111 (0+1023)

0000 0000 0000 0000 0000


0000 0000 0000 0000 0000
0000 0000 0000

realmin/2

000 0000 0000 (situacin de underflow)

1000 0000 0000 0000 0000


0000 0000 0000 0000 0000
0000 0000 0000

Propagacin de Errores - Perdida de Cifras Significativas

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap2/repre.html (7 de 18) [04/08/2002 0:30:47]

Captulo 2

Como vimos antes, el uso de un nmero finito de cifras en la representacin de punto flotante introduce
errores de representacin. An cuando los nmeros en cuestin se puedan representar en forma exacta en
la computadora, estos podrin contener error, por ejemplo si son datos experimentales. Queremos ver
como estos errores en los datos se propagan al usar las operaciones aritmticas usuales o ms general al
evaluar funciones.
Denotamos por xt el valor real o exacto de una cierta cantidad y xa una aproximacin de xt obtenida
experimentalmente al truncar xt para representarlo en la computadora. Definimos los errores absolutos
y relativos respectivamente en xa como aproximacin de xt por:
Error(xa) = xt - xa , Rel(xa) = Error(xa)/xt
Se puede demostrar que si

, entonces xa tiene por lo menos m cifras significativas

como aproximacin de xt.


Ejemplo 1: Si tomamos xt=exp(1) y xa=2.718, tenemos que Error(xa)=2.8183e-004 y Rel(xa)=1.0368e004.
Uno de los ejemplos ms comunes de la propagacin de errores es en el fenomeno conocido como
perdida de cifras significativas. Este tipo de situacin se da cuando algn clculo numrico envuelve la
resta de dos cantidades similares en el clculo de un nmero por medio de una sumatoria donde el
resultado es mucho menor que los terminos de la sumatoria los cuales alternan en signo. Veamos algunos
ejemplos:
Ejemplo 2: Considere el clculo de la funcin

para "x" grande. Suponemos que

trabajamos con seis cifras significativas. Veamos el caso de calcular f(100). Note que
correctos a seis cifras. Ahora calculamos
. El valor exacto a seis cifras de f(100) es
de modo que perdimos tres cifras en el computo. Cal fu el problema? Restamos
cantidades similares! En este caso podemos evitar restar cantidades similares si rescribimos f (x)
(racionalizando) como:

Podemos ahora calcular f (100) mediante:

que es correcto a seis cifras. Una situacin similar ocurre al usar la frmula cuadrtica. En particular
http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap2/repre.html (8 de 18) [04/08/2002 0:30:47]

Captulo 2

considere la ecuacin x2+bx+c/4=0 donde b>0 y c es mucho ms pequeo que b. Entonces como el
, vamos a tener cancelacin de cifras al calcular la raiz con el "+" en la
discriminante
frmula cuadrtica. Aqui nuevamente una racionalizacin de la frmula problemtica resuelve el asunto.
Si b<0, la raiz problemtica es la del "-".
Ejemplo 3: Considere el problema de evaluar

para "x" cerca de cero. Como


para "x" cerca de cero, tenemos resta de cantidades similares
y por consiguiente habr perdida de cifras significativas. Ilustramos aqui el uso de polinomios de Taylor
para obtener representaciones aproximaciones de la funcin que no conlleven perdida de cifras
significativas. Por el Teorema de Taylor tenemos que:

donde

esta entre 0 y x. Tenemos ahora que

Note que si

, entonces

Podemos pues aproximar a f(x) mediante

con un error absoluto del orden de 10-11 y no hay perdida de cifras significativas al calcular con la
frmula aproximada.
Ejemplo 4: Otro caso comn de cancelacin de cifras significativas ocurre en el clculo de un nmero
mediante una sumatoria donde los terminos de la sumatoria son mucho mayores que el resultado y
alternan en signo. Considere el problema de evaluar el polinomio f(x) = x7-7x6+21x5-35x4+35x321x2+7x-1. El siguiente cdigo en MATLAB evalua el polinomio en el intervalo [0.988,1.012] y lo
http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap2/repre.html (9 de 18) [04/08/2002 0:30:47]

Captulo 2

grafica:
x=linspace(0.988,1.012,100);
y=x.^7-7*x.^6+21*x.^5-35*x.^4+35*x.^3-21*x.^2+7*x-1;
plot(x,y)

Lo que deberia ser una grfica suave de un polinomio aparece altamente oscilatoria y de caracter
aparentemente aleatorio. Esto se debe a la cancelacin severa de cifras significativas en el clculo donde
el resultado final es aproximadamente cero y se toman sumas y diferencias de nmeros del tamao de
. El polinomio de este ejemplo corresponde a la forma expandida de (x-1)7 donde
graficamos cerca de x=1. Si clculamos con la frmula sin expandir no ocurre el problema de
cancelacin de cifras pero claro lo importante aqui es ilustrar el fenmeno.

Propagacin de Errores - Evaluacin de Funciones


En los ejemplos anteriores la perdida de cifras significativas se debe primordialmente al uso de un
nmero finito de cifras en los clculos numricos. Queremos estudiar ahora el otro aspecto, esto es,
suponiendo que se hace uso de un nmero infinito de cifras en los clculos, cmo la funcin frmula
que se usa propaga los errores en los datos iniciales? Estudiaremos esto para funciones de una y dos
variables.
http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap2/repre.html (10 de 18) [04/08/2002 0:30:47]

Captulo 2

Suponga que queremos evaluar una cierta funcin f (x) en un argumento cuyo valor exacto es xt.
Suponga que xa es una aproximacin de xt. Cmo comparan f(xt) y f(xa)? Note que implicitamente
asumimos que f se puede calcular exactamente dado un argumento y lo que nos interesa es determinar
como f propaga el error en xa como aproximacin de xt. Usando el Teorema del Valor Medio (cf. Xxx)
podemos escribir

para algn c entre xa y xt. Dividiendo por f(xt) en ambos lados podemos obtener la siguiente frmula
para los errores relatvos:

Esta fmula nos indica que el nmero

actua como un factor de magnificacin para el error relativo en xa. K se denomina como el nmero de
condicin. Si suponemos que el error absoluto en xa como aproximacin de xt es pequeo, podemos
aproximar c y xt por xa y tenemos que

(2.4)

Ejemplo 5: Suponga que

y que xa=0.0025 con un error relatvo de 10-4. Entonces

es una aproximacin del valor exacto f(xt) con un error relativo de

En este ejemplo hay que tener cuidado porque la aproximacin (2.4) del factor de magnificacin K,
deteriora segn nos acercamos a cero.
Si f es una funcin de dos variables (x,y), entonces el Teorema del Valor Medio nos dice que si f tiene
derivadas parciales continuas, existen c y d tal que

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap2/repre.html (11 de 18) [04/08/2002 0:30:47]

Captulo 2

el cal se puede usar para estimar el error al evaluar f en un argumento aproximado.


Ejemplo 6: Queremos clcular la distancia focal f de un lente usando la frmula

donde
pues que

. Aqui xa=32, ya=46 con errores absolutos de 1mm. Tenemos

correcto a seis cifras. Este clculo tiene un error absoluto aproximado de

Ahora obtenemos f tomando el reciproco del resultado de arriba para obtener


que tiene un error absoluto aproximado de

Propagacin de Errores en las Funciones Aritmticas


Vamos a considerar ahora los efectos en la propagacin de errores en las funciones aritmticas de la
computadora. Esto es consideramos ambas fuentes de error: el uso de un nmero finito de cifras en los
clculos y como la funcin en si propaga los errores en los datos.
Las funciones aritmticas son funciones de dos variables de modo que denotamos por xa y ya
aproximaciones de los valores exactos xt y yt. Denotamos por cualquiera de las operaciones
y por
la operacin aritmtica correspondiente segn se clcula en la computadora.
corresponde a la operacin exacta pero truncada a la presicin de la mquina.
Vamos a suponer que
Esto es

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap2/repre.html (12 de 18) [04/08/2002 0:30:47]

Captulo 2

(2.5)
Queremos estimar el error

Pero podemos escribir


(2.6)
Los dos terminos de la derecha de esta ecuacin corresponden a el error propagado por la operacin
exacta debido a los errores en xa y ya, mientras que el segundo termino corresponde a el error causado
por el uso de la operacin aproximada . Por el Teorema (2.1) y la hipotesis (2.5) tenemos que

donde

esta acotado por el epsilon de la mquina. De aqui que

De aqui que

de modo que el termino del error en (2.6) por la operacin aritmtica

aproximada de la computadora es del orden del epsilon de la mquina. El termino del error propagado en
(2.6) es pues el ms significativo y su comportamiento depende de la operacin aritmtica en cuestin.
Veamos el caso en que
. Escribimos
en lugar de
. Escribimos

Entonces el error propagado se puede expresar como

el cual se puede estimar con los estimados de


error relativo en xaya como sigue:

y los valores de xa, ya. Podemos ms an calcular el

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap2/repre.html (13 de 18) [04/08/2002 0:30:48]

Captulo 2

de donde tenemos que si Rel(xa) y Rel(ya) son pequeos, entonces Rel(xaya) ser pequeo y se puede
aproximar por

Decimos pues que la multiplicacin es una operacin estable. En forma similar se demuestra que

obteniendo asi que la divisin es tambin una operacin estable. Para la suma y la resta la situacin es
distinta. Es fcil ver que

que es pequeo dado que

lo son. Pero para el error relativo tenemos que

el cual puede ser bien grande aunque


sean pequeos si
de cifras significativas que vimos anteriormente.

. Este es el fenmeno de perdida

Sumatorias
En esta seccin estudiamos el problema de sumar muchos nmeros en la computadora. Como cada suma
introduce un error, proporcional al epsilon de la mquina, queremos ver como estos errores se acumulan
durante el proceso. El anlisis que presentamos generaliza al problema del clculo de productos
interiores.
El problema es pues clcular la sumatoria

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap2/repre.html (14 de 18) [04/08/2002 0:30:48]

Captulo 2

usando aritmtica de punto flotante. Definimos pues

Queremos determinar el error S - Sn. Motivados por el Teorema (2.1) definimos

por

donde tomamos S1=a1. Tenemos ahora:

Teorema (2.2):

Demostracin: Procedemos por induccin en el nmero de terminos en la sumatoria.


1. Paso bsico: Aqui
concide con la frmula del teorema.
2. Paso inductivo: Suponemos que el resultado es cierto para n = m, i.e.,

lo cal

Ahora verificamos que el resultado tambin es cierto para n = m+1. Pero

lo cual es el resultado para n = m+1.


3. Por el Principio de Induccin Matemtica, el resultado del teorema es cierto para toda n2.

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap2/repre.html (15 de 18) [04/08/2002 0:30:48]

Captulo 2

Como los i's son pequeos, podemos aproximar

Asi que por el resultado del teorema

De aqui que

Asi que si queremos minimizar el error en la sumatoria calculada, debemos ordenar los ai's de modo que

i.e., debemos sumar los neros ms pequeos primero y luego los grandes. Note pues que la suma no es
una operacin conmutativa en la computadora.
Un anlisis similar pero ms complicado matemticamente se puede hacer para el producto interior

Note que en el anlisis de arriba no se tomaron en consideracin posibles errores en los datos ai's. Estos
efectos se pueden incluir tambin en el anlisis. (Ver ejercicio (7)).

Ejercicios
1. Suponga que

y que calculamos

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap2/repre.html (16 de 18) [04/08/2002 0:30:48]

Captulo 2

en el orden de la siguiente figura (para

Obtenga los estimados de los errores "forward" y "backward" para este cmputo.
2. El polinomio
se evala en un sistema de punto flotante mediante la regla
de Horner. Muestre que el valor calculado

donde

satisface

es el epsilon de la mquina. (Los terminos

se pueden descartar).

3. Con canta precisin necesitamos conocer a para poder calcular

correcto a cuatro cifras?

en el intervalo

4. Trace la grfica de la funcin

para

. Evale la funcin de dos formas:

normal:
anidada:

Observe cualquier diferencia o caractersticas particulares en las grficas. Comente.


donde
5. Considere la recurrencia

Verfique que la solucin exacta de esta recurrencia es:

Resuelva esta recurrencia en la computadora. Haga una grfica de k vs


grfica.
6. Sean

Suponiendo que

donde

. Defina

y que r t, calcule el error

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap2/repre.html (17 de 18) [04/08/2002 0:30:48]

. Explque la

Captulo 2

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap2/repre.html (18 de 18) [04/08/2002 0:30:48]

Captulo 3

Captulo 3
Sistemas Lineales
Los sistemas de ecuaciones lineales son una de las herramientas matemticas de modelaje ms
comunes en las aplicaciones. Una clasificacin comn de los sistemas lineales es por su tamao. Los
sistemas con O(100) variables se consideran pequeos y usualmente se utilizan los llamados mtodos
directos para su solucin. Los sistemas de O(1000) ms variables se consideran grandes o de gran
escala y los mtodos de solucin ms eficientes por lo general son los llamados mtodos iterativos o
indirectos. Otra clasificacin importante de los sistemas lineales es por la cantidad o densidad de
ceros de la matriz de coeficientes. Los sistemas con pocas entradas distintas de cero se llaman
escasos. De lo contrario decimos que el sistema es denso. El aprovechar la estructura de ceros de la
matriz de coeficientes nos lleva por lo general a algortmos mucho ms eficientes que los
convencionales.
La solucin directa de sistemas de ecuaciones lineales conlleva esencialmente dos etapas:
transformacin del sistema original a otro sistema equivalente ms "simple" y luego la solucin del
nuevo sistema equivalente. La transformacin del sistema original a uno ms simple toma muchas
formas la ms comn de ellas siendo el proceso de Eliminacin Gaussiana. En este mtodo, en su
forma bsica, si ninguno de los pivotes se hace cero, se producen como resultado matrices L y U
triangulares inferior unitaria y superior respectivamente tal que A=LU donde A es la matriz de
coeficientes del sistema original. El sistema Ax=b se puede resolver ahora en dos etapas adicionales.

Problema Bsico y Notacin


Un sistema lineal de n ecuaciones en n desconocidas se puede escribir de la forma

(3.1)

donde los

son dados y x1,x2,,xn son desconocidas. Si definimos la matriz A y los

vectores b, x por

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap3/sislin1.html (1 de 17) [04/08/2002 0:33:33]

Captulo 3

(3.2)

Entonces podemos escribir el sistema (3.1) en forma matricial como Ax=b. La matriz A se conoce
como la matriz de coeficientes del sistema y b como el lado derecho. Si b=0, i.e., bi=0, 1 i n,
entonces decimos que el sistema es homogeneo. De lo contrario se dice que es nohomogeneo.
Ejemplo 1: Considere el sistema

Si definimos

Entonces podemos escribir el sistema en forma matricial como Ax=b.


Cando tiene (3.1) solucin y que esta sea nica?
Teorema (3.1): Sea A una matriz n n y b un vector. Las siguientes aseveraciones para el sistema
Ax=b son todas equivalentes:
a.
b.
c.
d.
e.

El sistema tiene solucin que es nica para todo lado derecho b.


El sistema tiene por lo menos una solucin para todo lado derecho b.
El sistema homogeneo asociado tiene x=0 como nica solucin.
det(A) 0
A es invertible

Eliminacin Gaussiana
Vamos ahora a estudiar el mtodo ms bsico y a la ves ms importante para la solucin directa de
http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap3/sislin1.html (2 de 17) [04/08/2002 0:33:33]

Captulo 3

sistemas lineales. Primero ilustramos el mtodo con un ejemplo y despes lo generalizamos.


Ejemplo 2: Considere el sistema de ecuaciones siguiente:

Podemos resolver esto mediante eliminacin Gaussisana como sigue:

Con este ltimo sistema equivalente podemos obtener la solucin sustituyendo para atrs:
a.
b.
c.
Vamos a generalizar este ejemplo a un sistema 33 general. Escribimos el sistema original como

(3.3)

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap3/sislin1.html (3 de 17) [04/08/2002 0:33:33]

Captulo 3

Paso 1: Suponemos que

y definimos

se llama el pivote en este paso. El sistema (3.3) reduce ahora a:

(3.4)

donde

Paso 2: Suponemos ahora que

y definimos

Ahora (3.4) reduce a:

donde

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap3/sislin1.html (4 de 17) [04/08/2002 0:33:33]

Captulo 3

Paso 3: Hacemos ahora la sustitucin para atrs para obtener la solucin. Suponemos aqui que
:

Pasamos ahora al caso general del sistema:

Primero pasamos por la etapa de eliminacin. Esto es, para k=1,2,,n-1:


Paso k: Suponemos que

(pivote). El sistema en este paso se reduce a uno de la forma:

donde

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap3/sislin1.html (5 de 17) [04/08/2002 0:33:33]

Captulo 3

(3.5)

En el ltimo paso llegamos a un sistema triangular superior de la forma:

(3.6)

donde
(3.7)
Paso n: Calculamos finalmente la solucin del sistema haciendo sustitucin para atrs:

(3.8)

Las frmulas (3.5), (3.7), (3.8) definen el Mtodo de Eliminacin Gaussiana en su forma bsica. Las
formulas (3.5) definen la parte de eliminacin del mtodo mientras que (3.8) nos da la sustitucin
para atrs.
Antes de entrar en las variantes de el mtodo bsico vamos a hacer un estudio de la cantidad de
operaciones envueltas en el mtodo. Esto se conoce como un conteo operacional. Examinando las
frmulas para los
en (3.5) podemos construir la tabla siguiente:

Paso

Sumas

Multiplicaciones

Divisiones

(n-1)2

(n-1)2

n-1

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap3/sislin1.html (6 de 17) [04/08/2002 0:33:33]

Captulo 3

(n-2)2

(n-2)2

n-2

n-1

TOTAL

n(n-1)(2n-1)/6

n(n-1)(2n-1)/6

n(n-1)/2

donde usamos las frmulas

Es costumbre contar las operaciones de multiplicacin y divisin juntas. De modo que la tabla de
arriba la podemos resumir diciendo que en la parte de eliminacin del mtodo de eliminacin
Gaussiana el total de:

Sumas y Restas =

Multiplicaciones y Divisiones =

Las frmulas para los

en (3.5) se conocen como la modificacin del lado derecho. Estas

conllevan:
Sumas y Restas = n-1 + (n-2) + + 1 =

Multiplicaciones y Divisiones = n-1 + (n-2) + + 1 =

Las frmulas (3.8) de la sustitucin para atrs conllevan los siguientes totales de operaciones:
Sumas y Restas = 1 + 2 + + (n-1) =

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap3/sislin1.html (7 de 17) [04/08/2002 0:33:33]

Captulo 3

Multiplicaciones y Divisiones = 1 + 2 + + n =

Combinando todos los totales parciales hasta ahora obtenemos que el proceso completo de
eliminacin Gaussiana conlleva un total de:
Sumas y Restas =

Multiplicaciones y Divisiones =

Note que para n "grande" ambos resultados son aproximadamente (1/3)n3. Asi que por ejemplo doblar
n equivale a aproximadamente ocho veces ms tiempo computacional. Observe tambin que la parte
de eliminacin es la que contribuye el termino proporcional a n3. La modificacin del lado derecho y
la sustitucin para atrs son ambas proporcionales a n2. Note que estos tres procesos son
independientes uno del otro. Por consiguiente si hay la necesidad de resolver varios sistemas todos
con la misma matriz de coeficientes, la parte de eliminacin debe hacerse una sola ves.
Al derivar las frmulas (3.5), (3.7), (3.8) asumimos que los pivotes
, entonces podemos argumentar matemticamente que algn

. Si por el contrario algn


si la

matriz de coeficientes del sistema original es nosingular. En tal caso podemos intercambiar la fila "i"
con la "k" y continuar el proceso. A pesar de esto un pivote pequeo, aunque distinto de cero, puede
causar que los efectos de redondeo debido a la aritmtica finita de la computadora se propagen
rpidamente.
Ejemplo 3: Considere el sistema

El determinante de la matriz de coeficientes es -20/3 de modo que es nosingular. Vamos a resolver el


sistema pero usando solo cuatro cifras decimales. Representamos el sistema con la matriz aumentada:

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap3/sislin1.html (8 de 17) [04/08/2002 0:33:33]

Captulo 3

De donde obtenemos que z = 1, y = 0, x = 0.6667. La solucin exacta del sistema es x=, y=, z=1!
Para evitar el problema de pivotes distintos de cero pero pequeos usamos lo que se denomina como
pivoteo parcial. Esto es, definimos el indice i0 por:
(3.9)
Si i0k, entonces intercambiaamos las filas i0 y k. Note que estamos haciendo el pivote

mximo

en valor absoluto. De esta forma los multiplicadores mik satisfacen

lo cal es lo que ayuda con la propagacin de errores. Existe otra variante del pivoteo. En este caso se
determinan los indices i0 y j0 tal que:
(3.10)
y se intercambian las filas i0 y k y las columnas j0 y k si i0k j0k respectivamente. Esto se conoce
como pivoteo total y se puede demostrar que es ms efectivo que el pivoteo parcial en el control de la
http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap3/sislin1.html (9 de 17) [04/08/2002 0:33:33]

Captulo 3

propagacin de errores. Pero el clculo del mximo en (3.10) es mucho ms costoso que en (3.9) por
lo que en la practica se prefiere el pivoteo parcial. Adems se ha observado en pruebas usando
matrices generadas aleatoriamente, que la diferencia entre ambos mtodos no es significativa en
terminos de la propagacin del error.

Clculo de la Inversa de una Matriz


Suponga que A es una matriz nosingular y A-1 su inversa. Escribimos A-1 y la matriz identidad I en
forma particionada como
A-1 = (x1,x2,,xn) , I = (e1,e2,,en)
donde los ei's forman la base estandar de

. Ahora como A A-1 = I, tenemos que

Axi = ei , 1 i n

(3.11)

Asi que para calcular A-1 debemos resolver n sistemas distintos pero con la misma matriz de
coeficientes A. La eliminacin de A la hacemos una ves lo cual requiere (1/3)n3 operaciones
aproximadamente. La modificacin del lado derecho y la sustitucin para atrs de cada uno de los
sistemas en (3.11) conlleva aproximadamente n2 operaciones cada uno. Asi que en total tenemos
(1/3)n3+n(n2) = (4/3)n3 aproximadamente. (Este conteo se puede mejorar a (5/6)n3). En muchas
ocaciones las frmulas que envuelven inversos de matrices se pueden rescribir en terminos de
sistemas lineales intermedios. Por el conteo operacional de arriba, las frmulas con los sistemas
lineales son preferibles ya que la solucin de cada sistema envuelve aproximadamente (1/3)n3
operaciones mientras que calcular los inversos toma (4/3)n3 operaciones. Como regla general tenemos
pues que:
LOS INVERSOS DE MATRICES NO SE CALCULAN A MENOS QUE SE NECESITEN
EXPLICITAMENTE.
Veamos una aplicacin de esta regla. Supongamos que desamos calcular la expresin
donde c, b son vectores en
y A es nn. Si calculamos A-1, luego multiplicamos por b y
finalmente el producto interior con c tenemos aproximadamente
Clculo A-1

(4/3)n3

Multiplicacin A-1 por b

n2

Producto interior con c

TOTAL

(4/3)n3+n2+n

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap3/sislin1.html (10 de 17) [04/08/2002 0:33:33]

Captulo 3

Si en lugar de esto calculamos mediante:

Halle la solucin x del sistema Ax=b

Calcule

un anlisis similar al de arriba nos da aproximadamente (1/3)n3+n2+n lo cual es mucho mejor que la
frmula directa.

Factorizacin LU de una Matriz


Para discutir la factorizacin LU de una matriz necesitamos priemro definir dos tipos especiales de
matrices. Una matriz A=(aij) se dice que es triangular superior si aij=0 para toda i > j. A es triangular
inferior si aij=0 para toda i < j. El adjetivo unitaria se aade en ambos casos si en adicin aii=1 para
toda i. Una matriz que es ambas triangular superior e inferior se llama diagonal. Note que una matriz
diagonal satisface aij=0 para toda i j.
Ejemplo 4: Las matrices

son triangular superior, inferior y diagonal respectivamente.


La matriz de coeficientes del sistema (3.6) es triangular superior y la denotamos por U=(uij). Usando
los multiplicadores mik en (3.5) podemos definir la matriz triangular inferior unitaria L por:

Teorema (3.2): Sea A una matriz nn nosingular. Defina las matrices L y U como arriba. Entonces si
no se hace pivoteo en el proceso de eliminacin Gaussiana, tenemos que A=LU.
Demostracin: El elemento (i,j) del producto LU consiste del producto interior de la fila i de L con la
columna j de U. Esto es
http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap3/sislin1.html (11 de 17) [04/08/2002 0:33:33]

Captulo 3

Si i j, tenemos que

Usando las frmulas (3.5) y la definicin de U podemos escribir esto como

donde para simplificar la segunda sumatoria usamos que esta es telescpica. Ahora si i > j

Como (LU)ij=aij para toda i,j tenemos que A=LU.


Ejemplo 5: Para la matriz

tenemos que mediante eliminicin Gaussiana

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap3/sislin1.html (12 de 17) [04/08/2002 0:33:33]

Captulo 3

Si definimos ahora

tenemos que A=LU.


Dado que A=LU, el sistema Ax=b se puede escribir como LUx=b. La solucin del sistema Ax=b se
puede ver entonces en tres etapas:
1. (Eliminacin) Calcular la factorizacin A=LU.
2. (Modificacin del lado derecho) Resolver el sistema triangular inferior Lg=b para el vector g.
3. (Sustitucin para atras) Resolver el sistema triangular superior Ux=g para el vector x.
Ejemplo 5: Resuelva el sistema

La matriz de coeficientes de este sistema coincide con la del ejemplo anterior de modo que

La solucin de Lg=b con b=(1,-1,0)t esta dada por:

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap3/sislin1.html (13 de 17) [04/08/2002 0:33:33]

Captulo 3

Ahora Ux=g nos da la solucin del sistema original:

Variantes del Mtodo de Eliminacin Gaussiana


Vamos ahora a discutir dos mtodos alternos para calcular la factorizacin LU de una matriz pero que
aprovechan alguna estructura particluar de la matriz. El primero de ellos es la Factorizacin de
Cholesky que se usa para matrices simtricasy positivas definidas. El otro mtodo aprovecha la
estructura escasa de la matriz en el caso que esta sea tridiagonal.
Factorizacin de Cholesky
Una matriz A es simtrica si At=A. Decimos que A es positiva definida si xtAx>0 para todo x0. Se
puede demostrar que una matriz simtrica es positiva definida si y solo si todos sus valores propios
son positivos. Tambin se puede demostrar que existe una matriz triangular inferior L tal que
A = L Lt
lo cual se conoce como la factorizacin de Cholesky de A. De hecho las entradas de L=(lij) de pueden
calcular mediante las frmulas:
1. Para i=1,2,,n
a.
b. Para j=1,2,,i-1

(3.12)

a.

Estas frmulas se obtienen multiplicando las filas de L por las columnas de Lt e igualando a las
http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap3/sislin1.html (14 de 17) [04/08/2002 0:33:33]

Captulo 3

entradas correspondientes de A. Un conteo operacional de estas frmulas muestra que el total de


operaciones es aproximadamente (1/6)n3, i.e., la mitad que en eliminacin Gaussiana bsico. (Note sin
embargo que hay que calcular n racies cuadradas). La ganacia aqui se debe a que se utiliz la simetra
de la matriz A. Note tambin que como A es simtrica solo hay que almacenar en la computadora la
mitad de la matriz al igual que para L que es triangular inferior.
Sistemas Tridiagonales
Una matriz A se llama tridiagonal si aij=0 para toda i,j tal que i - j > 1. Esto es, todas las entradas
de A son cero excepto posiblemente en las diagonales inferior, superior y principal. Podemos pues
escribir A de la siguiente forma:

(3.13)

Para almacenar A en la computadora usamos tres vectores de tamao n lo que da un total de 3n


lugares de memoria en comparacin con n2 para una matriz densa. Vamos ahora a resolver el sistema
Ax=b aprovechando la estructura de ceros de A. Primero buscamos la factorizacin LU de A. Para
esto buscamos L y U de la forma:

(3.14)

Multiplicando e igualando a las entradas correspondientes de A obtenemos:

fila uno de L por columna uno de U:


fila dos de L por columna uno de U:
fila dos de L por columna dos de U:
fila tres de L por columna dos de U:
fila tres de L por columna tres de U:

, etc.

De esta forma obtenemos las frmulas:


http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap3/sislin1.html (15 de 17) [04/08/2002 0:33:33]

Captulo 3

1.
2. Para j=2,3,n
a.

(3.15)

b.
El total de multiplicaciones y divisiones en estas frmulas es 2n-2 (compare con (1/3)n3 para
eliminacin Gaussiana bsico). Para resolver Lg=b es fcil ver que las frmulas son:
1.
2. Para j=2,3,,n
a.

(3.16)

El total de multiplicaciones y divisiones en este clculo es de n-1. Finalmente la solucin de Ux=g se


obtinene mediante las frmulas:
1.
2. Para j=n-1,n-2,,1
a.

(3.17)

El conteo aqui de multiplicaciones y divisiones es de 2n-1. Asi que en total para resolver el sistema
Ax=b donde A es tridiagonal se requieren de 5n-4 multiplicaciones y divisiones. En todo este proceso
necesitamos que los pivotes
y es conveniente que los
's sean menor de uno en valor
absoluto. Esto se cumple si

(3.18)

Ejemplo 6: Considere la matriz tridiagonal

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap3/sislin1.html (16 de 17) [04/08/2002 0:33:33]

Captulo 3

Aqui aj=1, j=2,3, bj=3, j=1,2,3, cj=1, j=1,2. Asi que

de donde obtenemos que

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap3/sislin1.html (17 de 17) [04/08/2002 0:33:33]

Estabilidad de Sistemas Lineales

Estabilidad de Sistemas Lineales


En esta seccin estudiaremos can sensitiva es la solucin del sistema lineal Ax=b a cambios o
perturbaciones en los datos A y b. Note que A B pueden contener errores ya sea por las truncaciones
envueltas al entrar estos en la computadora o porque sean datos experimentales. De modo que
queremos ver como esto puede afectar la solucin calculada x. Primero estudiamos variaciones en b
unicamente. Sea una aproximacin de b y la solucin del sistema (aproximado)
.
Queremos estimar el error
en terminos la diferencia
. Para esto definimos:

(3.19)

Estas se conocen como la norma vectorial infinita y la norma matricial asociada respectivamente.
Estas normas satisfacen las siguientes propiedades para cualesquieras vectores x,y y matrices A,B:
1.
2.

(desigualdad triangular)

3.
4.
Tenemos ahora el siguiente teorema:
Teorema (3.3): Sea A una matriz nosingular. Sean x,
. Entonces

las soluciones de los sistemas Ax=b y

(3.20)

Demostracin: De Ax=b y
entonces

obtenemos que

. Usando la propiedad (4) de las normas obtenemos que


. Dividiendo por

Pero

. Como A es nosingular,

en ambos lados obtenemos

. Usando esto arriba obtenemos el resultado.

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap3/sislin2.html (1 de 10) [04/08/2002 0:37:38]

Estabilidad de Sistemas Lineales

Si definimos

, y el nmero de condicin de A por


(3.21)

entonces podemos escribir el resultado del teorema como


(3.22)
De modo que si

es "grande", entonces

se puede magnificar por un factor hasta de

. Decimos pues que el sistema Ax=b es mal acondicionado si


contrario el sistema se dice que es bien acondicionado. Note que como

es "grande". De lo
, entonces

i.e.,
para toda matriz A. En MATLAB podemos calcular el nmero de condicin de A con
la instruccin cond(A). Este no es el nmero de condicin en la norma (3.19) pero si en lo que se
conoce como la norma dos de A. La instruccin rcond(A) nos da una aproximacin del inverso de
cond(A). rcond es mucho ms rpida que cond para matrices de tamao grande.
En forma similar se puede demostrar el resultado que incluye variaciones en A y b ambas.
Simplemente enunciamos el resultado.
Teorema (3.4): Sea A una matriz nosingular y

otra matriz tal que

(3.23)

Entonces

es nosingular y

(3.24)

Ejemplo 7: La matriz de Hilbert de orden n se define por

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap3/sislin2.html (2 de 10) [04/08/2002 0:37:38]

Estabilidad de Sistemas Lineales

(3.25)

Note que Hn es simtrica para toda n 1. Usando la instruccin de MATLAB, hilb(n) podemos
generar la matriz de Hilbert de orden n. La instruccin invhilb(n) calcula el inverso exacto de Hn. Por
ejemplo
hilb(5)
ans =
1.0000 0.5000 0.3333 0.2500 0.2000
0.5000 0.3333 0.2500 0.2000 0.1667
0.3333 0.2500 0.2000 0.1667 0.1429
0.2500 0.2000 0.1667 0.1429 0.1250
0.2000 0.1667 0.1429 0.1250 0.1111
que es la matriz de Hilbert de orden 5 truncada a cuatro cifras aunque MATLAB guarda ms cifras
internamente. Mientras que
invhilb(5)
ans =
25 -300

1050 -1400 630

-300 4800 -18900 26880 -12600


1050 -18900 79380 -117600 56700
-1400 26880 -117600 179200 -88200
630 -12600 56700 -88200 44100

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap3/sislin2.html (3 de 10) [04/08/2002 0:37:38]

Estabilidad de Sistemas Lineales

produce el inverso exacto de H5. Podemos calcular el nmero de condicin de H5 segn definido en
(3.21) mediante:
norm(hilb(5),inf)*norm(invhilb(5),inf)
ans =
943656
lo que indica el mal acondicionamiento de la matriz de Hilbert apenas para n=5. Este nmero compara
con
cond(hilb(5))
ans =
4.7661e+005
y con
1/rcond(hilb(5))
ans =
6.9409e+005
Usando la instruccin flops de MATLAB podemos estimar que el computo con cond requiere de 937
operaciones de punto flotante mientras que el clculo con rcond toma 296 operaciones.

Refinamiento Iteratvo - Mtodo de Residuos


El Mtodo de Eliminacin Gaussiana produce la solucin exacta de un sistema lineal en
aproximadamente (1/3)n3 operaciones aritmticas donde n es el orden de la matriz de coeficientes A.
En general, debido a que los cmputos se hacen con precisin finita, la solucin obtenida por
Eliminacin Gaussiana no es la solucin exacta del sistema (aunque esta cerca de serlo si el sistema es
bien acondicionado). Veamos ahora un proceso iteratvo que toma la solucin calculada por el
Mtodo de Eliminacin Gaussiana y trata de mejorarla.
Sea x(0) la solucin calculada por Eliminacin Gaussiana y x la solucin exacta del sistema, i.e.,
defina
(error exacto) y
Ax=b. Para cualquier
(los residuos). Entonces es fcil ver que
A ya calculada para obtener x(0), podemos resolver

, de modo que utilizando la factorizacin LU de


. Este sistema tampoco se puede

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap3/sislin2.html (4 de 10) [04/08/2002 0:37:38]

Estabilidad de Sistemas Lineales

resolver en forma exacta obteniendo asi una aproximacin e(k) de


. Definimos ahora
la cual debe ser una mejor aproximacin de x que
. El proceso continua de
esta manera en forma inductiva hasta que un cierto criterio de "paro" se cumple y el proceso termina.
En forma algortmica tenemos:
1. Sea L y U los factores (aproximados) de A.
2. Sea x(0) la solucin aproximada de Ax=b obtenida mediante Eliminacin Gaussiana.
3. Para k=0, 1, 2,
a. Calcule
.
.
b. Resuelva
.
c. Ponga
Note que en el clculo del residuo r(k) en el paso (3a) tenemos cancelacin de cifras significativas ya
que Ax(k)b. Para evitar esto el clculo debe hacerse en presicin extendida y el resto de los clculos
en presicin normal. El ciclo en (3) se puede detener con un criterio como
(3.26)
lo que garantiza t cifras correctas en la solucin calculada en caso de convergencia. Normalmente sin
embargo el ciclo no debe ejecutarse ms de dos veces.
Note que el clculo de r(k) en (3a) requiere de n2 multiplicaciones con aproximadamente la misma
cantidad de sumas y restas. Para la solucin del sistema en (3b) se usa la factorizacin LU de A del
paso (1) de modo que esto toma aproximadamente n2 operaciones. Asi que cada pasada por el ciclo
(3) conlleva aproximadamente 2n2 multiplicaciones y divisiones.
Ejemplo 8: Considere el sistema lineal

La solucin exacta a tres cifras significativas es x1=15.2, x2=-18.7. Si resolvemos el sistema mediante
eliminacin Gaussiana sin pivoteo y usando aritmtica de tres cifras tenemos:

de donde obtenemos

. El residual de esta solucin calculada esta dado por:

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap3/sislin2.html (5 de 10) [04/08/2002 0:37:38]

Estabilidad de Sistemas Lineales

correcto a tres cifras. Podemos calcular e(0) mediante:

de donde obtenemos que

. La solucin mejorada es:

lo cal es mejor que x(0). El proceso se puede repetir una o dos veces mas.

Propagacin de Errores en la Solucin de Sistemas Lineales


Cuando usamos Eliminacin Gaussiana para resolver el sistema Ax=b en una computadora normal,
ocurren errores de redondeo en cada paso del proceso debido a la aritmtica finita de la mquina.
Queremos estudiar como estos errores se propagan o acumulan durante todo el proceso y estimar el
error en la solucin calculada. En realidad al final del proceso de eliminacin Gaussiana obtenemos
un vector tal que
. En el anlisis de errores hacia atras nos interesa saber si es la
solucin exacta de otro problema que este cerca del problema original en cierto sentido.
Primero repasamos algunas de las frmulas del Captulo 2. En particular recordamos que las
operaciones aritmticas de la computadora se asumen que corresponden a la operacin exacta pero
truncada al nmero de cifras de la mquina. Esto es si denota la operacin aritmtica en la
computadora, entonces
(3.27)
donde

para el sistema de punto flotante (2.2) y

para el

estandar de la IEEE (2.3). Usando estas frmulas repetidamente en (3.5), (3.8), similar al anlisis que
hicimos de la sumatoria de n numros, obtenemos el siguiente resultado.
Teorema (3.5): Sea la solucin calculada del sistema Ax=b mediante eliminacin Gaussiana
usando aritmtica de punto flotante base con una mantisa de t cifras. Sea u el epsilon de la mquina.
Entonces es la solucin exacta del sistema
donde H=(hij) y

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap3/sislin2.html (6 de 10) [04/08/2002 0:37:38]

Estabilidad de Sistemas Lineales

(3.28)
donde n es el tamao de A y
(3.29)

El factor del teorema mide la razn de crecimiento de las entradas de la matriz de coeficientes
segn el mtodo numrico progresa. La cota superior de este factor depende de la estrategia de
pivoteo que se use. En particular
, para pivoteo parcial

(3.30)

, para pivoteo completo o total


En cualquiera de los dos casos, si n no es muy grande, el teorema lo que dice es que es solucin
exacta de un problema que esta cerca del original. En este sentido es que decimos que Eliminacin
Gaussiana es un mtodo estable. Esto no implica que est cerca de la solucin exacta x. De hecho
si tomamos
en el Teorema (3.4) y usamos las cotas del Teorema (3.5) obtenemos que

(3.31)

lo que dice que

estar cerca de x si A es una matriz bien acondicionada.

El Teorema de Gerschgorin
Dada una matriz A nxn de entradas complejas, un nmero
C (conjunto de los nmeros
complejos) es un valor propio de A si existe un vector
tal que
. Usando propiedades
de determinantes, es fcil ver que el problema de hallar los valores propios de una matriz es
equivalente al de hallar las raices de un polinomio con coeficientes complejos. Por el Teorema
Fundamental del Algebra, tenemos ahora que toda matriz nxn tiene exactamente n valores propios
contando multiplicidades. Tambin tenemos, por un teorema famoso de Galois, que el clculo de los
valores propios de una matriz no se puede hacer utilizando unicamente formulas algebraicas. Por tal
razn el clculo de los valores propios de matrices es un problema computacionalmente complejo y el
poder estimar los mismos es de vitl importancia. El estimado ms crudo de los valores propios de
una matriz esta dado por la desigualdad
, donde
es valor propio de A} (3.32)

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap3/sislin2.html (7 de 10) [04/08/2002 0:37:38]

Estabilidad de Sistemas Lineales

se conoce como el radio espectral de A. Este estimado aunque til en muchas ocaciones, no es muy
preciso en cuanto a la localizacin de los valores propios de A. El Teorema de Gerschgorin va ms
all en este sentido. Para A=(aij) definimos los radios
(3.33)

y los discos
(3.34)
El Teorema de Gerschgorin establece que cada valor propio de A pertenece al menos a uno de los Dis
y que si k de los discos de Gerschgorin se intersecan entre si y estan aislados de los otros discos,
entonces su unin contiene exactamente k de los valores propios de A.

Ejercicios
1. Al resolver un sistema del tipo

es conveniente intercambiar primero las filas uno y cinco y luego las columnas uno y cinco
(por qu?). Resuelva el sistema luego de permutar y calcle la factorizacin LU de la matrz
permutada.
2. Calcule la factorizacin LU de la matrz

usando aritmtica finita con dos cifras decimales. El sistema


tiene la solucin aproximada
mejor aproximacin mediante un paso de refinamiento iterativo.
3. Dados
http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap3/sislin2.html (8 de 10) [04/08/2002 0:37:38]

donde
. Calcle una

Estabilidad de Sistemas Lineales

,b=

calcule una solucin aproximada de Ax=b primero redondeando las entradas de b al entero ms
cercano y luego resolviendo el resultante. Verifique que la solucin calculada es = (12, 4, 2,
el vector residual.
1)t. Sea
a. Determine los valores de ||r|| y
.
b. Utilize su respuesta a la parte (a) para hallar una cota superior para el error relativo en la
solucin aproximada.
c. Calcule la solucin exacta x y determine el error relativo exacto
4. Defina los siguientes:
A = round(10 * rand(6)) ,
s = ones(6, 1) ,
b= A*s.
La solucin al sistema lineal Ax = b es claramente s. Resuelva el sistema utilizando la
operacin \ de MATLAB. Calcule el error x - s. Ahora perturbamos el sistema como sigue.
Deje que
t = 1.0e-12, E = rand(6) - 0.5, r = rand(6, 1) - 0.5
y sean
M = A + t * E, c = b + t * r
Resuelva el nuevo sistema perturbado Mz = c para z. Compare la solucin z con la solucin del
sistema original calculando z - 1. Cmo se compara el tamao de la perturbacin en la
solucin a el tamao de las perturbaciones en A y b? Repita el anlisis de perturbacin con t
=1.0e-04 y t =1.0e-02. Es no el sistema Ax = b bien acondicionado? Explique. Utilice
MATLAB para calcular el nmero de condicin de A.
5. Defina A = round(10 * rand(5)). Calcule el radio de los discos de Gerschgorin de A y
gurdelos en un vector r. Para graficar los discos usamos el parmetro t = [0:0.1:6.3]'.
Podemos generar dos matrices X y Y cuyas columnas contengan las coordenadas x-y de los
discos. Primero inicializamos X y Y a cero (por qu?):
http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap3/sislin2.html (9 de 10) [04/08/2002 0:37:38]

Estabilidad de Sistemas Lineales

X = zeros(lenght(t), 5) , Y = X .
Las matrices X y Y se generan utilizando los siguientes comandos de MATLAB:
for i = 1 : 5
X (: , i) = r(i) * cos(t) + real (A (i, i));
Y (: , i) = r(i) * sin(t) + imag (A (i, i));
end
Sea e = eig(A). Podemos ahora graficar los valores propios y los discos de Gerschgorin con el
comando
plot(X, Y, real(e), imag(e), 'x') .
6. Defina
B = [3 0.1 2; 0.1 7 2; 2 2 50]
a. Utilice el mtodo descrito en el problema (5) para calcular y graficar los discos
Gerschgorin de B.
b. Como B es simtrica, sus valores propios son todos reales y por esto deben estar en el
eje real. Sin computar los valores propios, explique porqu B debe tener exactamente un
valor propio en el intervalo [46, 54]. Multiplique las primeras dos filas de B por 0.1 y
luego multiplique las primeras dos columnas por 10. Esto se logra mediante la
transformacin de similitud

D = diag([0.1, 0.1, 1]) ,

La nueva matriz C tiene los mismos valores propios que B. Por qu? Explique. Utilice
C para hallar intervalos que contengan los otros dos valores propios de B. Calcule y
grafique los discos de Gerschgorin de C.

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap3/sislin2.html (10 de 10) [04/08/2002 0:37:38]

Captulo 4

Captulo 4
Solucin de Ecuaciones Nolineales
Suponga que f es una funcin continua digamos
ecuacin escalar nolineal

. Deseamos calcular soluciones de la

f(x) = 0

(4.1)

Ms general an, podemos considerear el caso en que


donde n1. Entonces (4.1)
representa un sistema de ecuaciones nolineales. Problemas del tipo (4.1) aparecen en la optimizacin
de funciones y en la solucin numrica de problemas de frontera nolineales. En este captulo
enfocaremos ms en el problema escalar y discutiemos los apectos bsicos del caso de sistemas de
ecuaciones.

Mtodo de la Biseccin
Este mtodo tiene como base motivavin el Teorema (1.3), Teorema del Valor Intermedio. En
particular, si f es una funcin continua digamos
, y a, b son dados tales que f(a)f(b)0,
entonces definimos c=(a+b)/2. Si f(c)=0, entonces terminamos. De lo contrario remplazamos a b con
c manteniendo la diferencia en signos, etc. Esto nos lleva al siguiente pseudo algortmo llamado el
Mtodo de la Biseccin:
es una funcin continua y que a, b son dados tales que f(a)f(b)0 y >0 es
Suponga que
tambin dado (criterio de paro).
1.
2.
3.
4.
5.

Sean a1=a, b1=b, n=1.


Defina cn=(an+bn)/2.
Si bn-cn, entonces aceptamos cn como una raiz aproximada y paramos el proceso.
Si signo(f(bn))signo(f(cn))0, entonces ponemos an+1=cn. De lo contrario ponemos bn+1=cn.
Ponga n=n+1, y vuelva a (2).

Ejemplo 1: Considere la funcin f(x)=x2+x-1. Note que como f(0)=-1 y f(1)=1, tenemos que existe
una raiz de la ecuacin f(x)=0 en el intervalo (0,1). Vamos a aproximar esta raiz con el mtodo de la
biseccin. Los resultados son como sigue:
n

an

bn

cn

f(an)

f(bn)

f(cn)

0.5

-1

0.25

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap4/nonleq.html (1 de 17) [04/08/2002 0:41:38]

Captulo 4

0.5

0.25

-1

0.25

-0.69

0.25

0.5

0.375

-0.69

0.25

-0.48

0.375

0.5

0.4375

-0.48

0.25

-0.37

0.4375

0.5

0.46875

-0.37

0.25

-0.31

La solucin correcta a seis cifras calculada con la funcin fzero de MATLAB es 0.618034. Podemos
ver que el mtodo de la biseccin aunque progresa hacia la solucin, lo hace un tanto lento. Veamos
ahora por que esto es asi analizando la convergencia del mtodo.
Anlisis de Error: Como f(a)f(b)0, sabemos que existe un nmero
Mediante induccin matemtica es fcil ver que

tal que f()=0.

(4.2)

Esto es asi ya que el largo del intervalo se divide a la mitad cada ves que pasamos por el paso (2) del
algortmo. Nuevamente usando induccin matemtica obtenemos que
(4.3)

Observe que como

tenemos que

(4.4)

Combinando (4.3) y (4.4) obtenemos que


(4.5)

lo cual implica que


segn
. La convergencia en (4.5) es lo que se conoce como
convergencia lineal con taza razn de convergencia . De la desigualdad (4.5) podemos estimar el
nmero de iteraciones necesarias para obtener que

. En particular si requerimos que

, obtenemos que

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap4/nonleq.html (2 de 17) [04/08/2002 0:41:38]

Captulo 4

(4.6)

Basados en este anlisis de convergencia podemos hacer las siguientes observaciones:

El mtodo tiene convergencia segura! Esto es dada la condicin inicial f(a)f(b)0, el mtodo
converge a una raiz en [a,b]. Esta propiedad conocida como convergencia global es una de
las caractersticas fuertes del mtodo de la biseccin y la mayoria de los mtodos no la poseen.
El error en las aproximaciones generadas por el mtodo se reduce a la mitad en cada paso.
La convergencia lineal caracterizada por la ecuacin (4.5) es lenta comparada con otros
mtodos. Esto es asi ya que el mtodo solo usa evaluaciones de la funcin y comparaciones.
Veremos que usando derivadas mas infoormacin de la funcin f, podemos asi obtener
mtodos ms rpidos.

El mtodo de la biseccin no generaliza al caso de sistemas nolineales debido a que no es posible una
generalizacin del Teorema (1.3) a funciones vectoriales de variable vectorial.

Mtodo de Newton
Suponemos ahora que la funcin f es diferenciable e incorporamos informacin de la derivada en el
mtodo. Sea pues f C1. La recta tangente a f en el punto (x0,f(x0)) esta dada por la ecuacin
. Ahora aproximamos a f con esta recta y definimos x1 como el
intercepto en x de la recto, esto es:

(4.7)

Este proceso lo podemos repetiir ahora con el punto (x1,f(x1)), etc., obteniendo asi la recursin

(4.8)

Esta recursin define el Mtodo de Newton y es un ejemplo de una iteracin de punto fijo.

Aplicacin 1
Vamos a suponer que queremos calcular el cociente a/b usando solo las operaciones
. En la
se implementan a nivel de "hardware" mientras
mayoria de las computadoras las operaciones
. Note que como
que la divisin se hace mediante programado (software) utilizando

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap4/nonleq.html (3 de 17) [04/08/2002 0:41:38]

Captulo 4

, entonces es suficiente discutir el computo de reciprocos. Si definimos la funcin


f(x) por
(4.9)
entonces

es la raiz de f(x)=0. Usando que

, el mtodo de Newton para la

ecuacin f(x)=0 toma la forma:


(4.10)
la cal envuelve unicamente

. Note que

de donde obtenemos la frmula

(4.11)

i.e,
(4.12)
Esta frmula, exacta en este caso, aplica en general al mtodo de Newton pero asintoticamente segn
se converge a la raiz (demostracin ms adelante). De la ecuacin (4.12) obtenemos que
segn

si y solo si

, i.e.,

(4.13)

Cmo seleccionamos x0 para que cumpla con (4.13)? Bueno la parte de x0>0 es simple de verificar.
Cmo saber si x0<(2/b) cuando no conocemos 2/b? Note que si x0>0, entonces

, entonces sabemos que


. En esta caso reducimos x0, digamos a x0/2, y
Asi que si
empezamos las iteraciones de nuevo. Note que despes de esta etapa inicial, la convergencia es bin
http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap4/nonleq.html (4 de 17) [04/08/2002 0:41:38]

Captulo 4

rpida, de hecho cuadrtica de acuerdo a la ecuacin (4.12). Esto es, en cada iteracin el nmero de
cifras significativas se duplica.
Vamos ahora a precisar la nocin de rpidez o orden de convergencia de una sucesin.
converge al nmero . Decimos que

Definicin (4.1): Suponga que la sucesin

converge a con orden p1 si existen M,N0 tales que


(4.14)
El nmero p, que no tiene que ser un entero, se llama el orden de convergencia. Si p=2 la convergencia
se llama cuadrtica. Si p=1 y M<1 la convergencia se llama lineal con taza o razn de convergencia
M.
a . Si p=1, mientras ms

Nota: Mientras ms grande sea p, ms rpido converge la sucesin


pequeo sea M, ms rpido converge la sucesin.

Aplicacin 2
Vamos a discutir ahora el problema de calcular raices cuadradas. Defina para a>0 la funcin
la cual tiene como una de sus raices
. Dado que
tenemos que el
mtodo de Newton aplicado a la ecuacin f(x)=0 toma la forma:

(4.15)

Tenemos ahora el siguiente resultado sobre la convergencia de estas iteraciones.


Teorema (4.1): La sucesin (xn) definida por la iteracin (4.15) converge a
con orden de convergencia de dos.

para cualquier x0>0

Demostracin: Si x0>0 y a>0 entonces sigue de (4.15) que xn>0 para toda n0. Adems

(4.16)

De aqui y como xn>0, obtenemos que

para toda n1. Ahora (4.15) se puede rescribir como

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap4/nonleq.html (5 de 17) [04/08/2002 0:41:38]

Captulo 4

(4.17)

Esto combinado con

para toda n1 implica que

que (xn) esta acota inferiormente por


converge a

para toda n1. Tenemos pues

y es decreciente de modo que es convergente. Falta ver que

. Sea el limite de (xn). Entonces dejando

en la ecuacin (4.17) obtenemos

que
, i.e,
. Pero como xn>0 para toda n0, tenemos que
convergencia cuadrtica de la sucesin sigue ahora de la expresin (4.16).

, i.e.,

. La

Nuevamente vemos convergencia cuadrtica del mtodo de Newton. Veamos ahora el resultado
general.
Teorema (4.2) (Convergencia Local del Mtodo de Newton): Suponga que
es una funcin
. Entonces si x0 se selecciona
C2 en una vecindad del nmero para el cual
suficientemente cerce de , las iteraciones del Mtodo de Newton convergen a . Adems

(4.18)
es decir, (xn) converge a con orden de convergencia p=2.
Demostracin: Usando el Teorema de Taylor podemos escribir
(4.19)

donde
tal que

esta entre y xn. Como


para

es continua, existe un intervalo I alrededor de x=

. Defina ahora el nmero M por

(4.20)

el cual existe y es finito (por qu?). Si

, podemos despejar para en (4.19) obteniendo asi que

(4.21)

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap4/nonleq.html (6 de 17) [04/08/2002 0:41:38]

Captulo 4

Definimos ahora el intervalo

por
(4.22)

Veamos ahora que si

, entonces

para toda n0. De hecho de (4.21) tenemos que si

, entonces

. Multiplicando por M ambos lados obtenemos que

(4.23)

Ahora como

, tenemos que
, i.e,

De aqui que si
permanecen en

. Tambin de (4.23) obtenemos que

. Combinando esto con

obtenemos que

entonces las iteraciones del Mtodo de Newton estan bien definidas,


, y (4.23) implica que

(4.24)

Si

de modo que

orden dos ya que

, entonces (4.24) implica que

y la convergencia es de

. Para terminar note que (4.21) se puede escribir como

(4.25)

Dejando
y usando que
obtenemos la expresin (4.18).

, y por consiguiente

, y la continuidad de

La seleccin del punto inicial x0 que garantice la convergencia del Mtodo de Newton es un asunto
notrivial. Cualquier estimado o conocimiento previo de la localizacin de la raiz debe utilizarce para
asegurar la convergencia del mtodo. Por ejemplo una grfica de la funcin f podria arrojar una idea
sobre la raiz. Luego de esto se puede utilizar un mtodo como la biseccin para corregir la
aproximacin y pasarla entonces al mtodo de Newton. Esto asemeja a los mtodos predictorcorrector comunes en la solucin numrica de ecuaciones diferenciales ordinarias.
Una ves tenemos un mtodo iterativo como el de Newton que no tiene en general una expresin como
(4.6) para predecir el nmero de iteraciones necesarias para lograr un error pre-determinadado, cmo
detenemos las iteraciones? Veamos ahora un criterio heurstico para detener el mtodo. Suponiendo
que las iteraciones (xn) estan "cerca" de la raiz , podemos escribir
http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap4/nonleq.html (7 de 17) [04/08/2002 0:41:38]

Captulo 4

(4.26)

Asi que si

tenemos aproximadamente t cifras significativas en xn como

aproximacin de .

Mtodo de la Secante
La motivacin del mtodo de la secante viene de que en ocaciones es complicado quizas imposible
calcular la derivada de la funcin f en el mtodo de Newton. Por ejemplo la funcin f podra estar
especificada por un nmero discreto de puntos dada por un programa de computadora. En tales
situaciones el mtodo de Newton se hace impractico y buscamos un mtodo intermedio entre el de la
biseccin y el de Newton. Para esto suponemos que tenemos dos aproximaciones x0, x1 de la raiz .
Podemos ahora construir la secante a la funcin f en los punto (x0,f(x0)), (x1,f(x1)), la cual esta dada
por:

(4.27)

Definimos la nueva aproximacin x2 como el intercepto en x de esta secante, i.e.,

(4.28)

Este proceso lo podemos repetir ahora con x1, x2 para generar x3, etc. Obtenemos asi la recurcin que
define el Mtodo de la Secante:

(4.29)

El mtodo de la secante es un ejemplo de un mtodo iterativo de dos puntos ya que predice en el paso
n+1 basado en la informacin obtenida en los pasos n, n-1. Note tambin que

(4.30)

de modo que el mtodo de la secante se puede ver como una discretizacin del mtodo de Newton.

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap4/nonleq.html (8 de 17) [04/08/2002 0:41:38]

Captulo 4

El anlisis de convergencia del mtodo de la secante es un tanto ms complicado que el del mtodo de
Newton y requiere del concepto de diferencias divididas las cuales se discuten en el Cpitulo 5.
Usando propiedades de las diferencias dividas se puede demostrar que las iteraciones del mtodo de la
secante satisfacen:

(4.31)

esta entre xn-1, xn y


y pertenece al intervalo minimo que contiene a xn-1, xn, .Usando
donde
esta frmula se puede demostrar el siguiente teorema.
Teorema (4.3) (Convergencia Local del Mtodo de la Secante): Suponga que
es una
. Entonces si x0, x1 se
funcin C2 en una vecindad del nmero para el cual
seleccionan suficientemente cerce de , las iteraciones del Mtodo de la Secante convergen a .
Adems

(4.32)

donde

Demostracin (borrador): Vamos a suponer que las iteraciones convergen. Entonces de (4.31), para n
suficientemente grande, podemos escribir

(4.33)

,y

Multiplicando esta aproximacin por M en ambos lados, definiendo


convirtiendo la aproximacin en una igualdad, obtenemos la relacin:
(4.34)

donde por conveniencia hemos tomado F0=F1=1. La iteracin (4.34) define los nmeros de Fibonachi
y es bien conocido que para n grande:

(4.35)

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap4/nonleq.html (9 de 17) [04/08/2002 0:41:38]

Captulo 4

Asi que

(4.36)

donde usamos la notacin

. Ahora podemos escribir

(4.37)

lo cual nos da en forma asinttica la frmula (4.32).


En la siguiente tabla resumimos las propiedades de los mtodos de Newton y de la Secante:
Mtodo

Taza de convergencia

Newton

Dos

Secante

1.62

Evaluaciones (funcin y/o derivada)


1 para f; 1 para
1 para f

Si
es dificil o imposible de evaluar, entonces el mtodo de la secante podra ser ms conveniente
que el de Newton. Muchas veces f esta dada por una tabla o programa de computadora lo que hace el
calculo de
imposible. Si
es accesible y computacionalmete viable, entonces el mtodo de
Newton es preferible por su convergencia rpida. Note que en ambos mtodos aproximamos la funcin
original por una funcin lineal a la cual es fcil de calcular sus raices.

Raices Multiples
En ambos de los Teoremas (4.2) y (4.3) tenemos la condicin
que garantiza que
en forma transversal. Cuando esta condicin de
la funcin f(x) corta el eje de "x" en
transversalidad no se cumple en la raiz
, entonces el mtodo numrico puede diverger o si
converge lo hace ms lento que en el caso transversal. Vamos a estudiar esta situacin en mas detalles
en particular para el mtodo de Newton.
, y m un entero positivo. Decimos que es una
Sea f una funcin, un nmero real tal que
raiz de f de multiplicidad m si existe una funcin g(x) tal que
(4.38)
http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap4/nonleq.html (10 de 17) [04/08/2002 0:41:38]

Captulo 4

Si m=1 decimos que la raiz es simple. Tenemos ahora:


Teorema (4.4): Sea

. Entonces es raiz de f de multiplidad m si y solo si

(4.39)

Demostracin: Supongamos que (4.39) es cierta. Por el Teorema de Taylor tenemos que podemos
escribir:

Como

esta entre y x, y

cerca de la funcin

, tenemos que para x suficientemente

. Asi que con

, la ecuacin (4.38) se

cumple, i.e., es raiz de f de multiplicidad m.


Suponga que por el contrario, (4.38) es dado donde

. Entonces usando la regla de

Leibnitz obtenemos que

(4.40)

Si

, entonces

y (4.40) implica que

Si k=m,

entonces (4.40) se puede escribir como

Note que al evaluar en


los terminos en la sumatoria son todos cero ya que las potencias de
son todas positivas. De modo que tenemos que
. Combinando esto
con lo anterior, obtenemos (4.39).
Ejemplo 2: Para f(x)=(x-2)3(x-1)2 tenemos que =2 es raiz de f de multiplicidad 3 y que =1 es raiz

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap4/nonleq.html (11 de 17) [04/08/2002 0:41:38]

Captulo 4

de multiplicidad 2. Para la funcin f(x)=sen(x) tenemos que =0 es una raiz de f. Ademas con

tenemos que =0 es raiz simple de f.


Cuando los mtodos de Newton la Secante se utilizan en problemas con raices multiples, la
convergencia si alguna se hace ms lenta. Por ejemplo si consideramos el problema de buscar las
raices de la ecuacin x3=0 usando el mtodo de Newton, entonces las iteraciones de Newton estan
dadas por la recursin:

Como =0 es la nica solucin en este caso, vemos que el mtodo tiene convergencia lineal en este
problema. En general se puede demostrar que si x= es una raiz de multiplicidad m de la ecuacin
f(x)=0, entonces las iteraciones del mtodo de Newton convergen localmente a la raiz x= y
satisfacen

(4.41)
i.e., la convergencia es lineal si m>1 con taza o razn de convergencia . Note que si m>2, entonces
>1/2 y el mtodo de la biseccin es en general ms rpido que el de Newton.
Otro problema con el clculo de raices multiples es provocado por la aritmtica finita de la
computadora y el hecho de que la funcin f no cruza el eje de x transversalmente en x= . Esto hace
que el intervalo de incertidumbre para el clculo de la raiz sea mucho mayor de lo que sera para una
raiz simple.
Cmo podemos entonces calcular raices multiples en forma efectiva? Si la multiplicidad m de la raiz
es conocida, entonces podemos mejorar la convergencia del mtodo de Newton de dos formas:

1. Calculamos la sucesin (xn) mediante la recurrencia

(4.42)

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap4/nonleq.html (12 de 17) [04/08/2002 0:41:38]

Captulo 4

Se puede demostrar (ver ) que


con orden p=2. Pero el problema de la
incertidumbre mencionado arriba, no mejora debido a que la raiz multiple de f esta todavia
presente.
2. Calculamos analiticamente f(m-1)(x) y le aplicamos el mtodo de Newton a la funcin F(x)= f(m1)(x). Note que ahora es raiz simple de F, tenemos convergencia cuadrtica y no hay el
problema de un intervalo de incertidumbre grande. Este mtodo es efectivo si las derivadas de f
son fciles de calcular.
Para estimar m si este no es conocido, usamos el mtodo de Newton aplicado a la funcin original f y
vamos calculando los cocientes

(4.43)

. Usando esto podemos


los cuales de acuerdo a la frmula (4.41) aproximan a
aproximar "m" y luego procedemos con uno de los mtodos (1) (2) descritos arriba.

Sistemas Nolineales
Consideramos ahora el problema de resolver un sistema de ecuaciones nolineales de n ecuaciones en n
funciones (nolineales) suficientemente diferenciables.
desconocidas. Sean
Un sistema nolineal n n consiste de:

(4.44)

por

Si definimos

, entonces podemos escribir (4.44) en forma

vectorial como:
(4.45)
Sea

tal que

, i.e., una solucin de (4.45). Defina la siguiente matriz n n por

(4.46)

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap4/nonleq.html (13 de 17) [04/08/2002 0:41:38]

Captulo 4

Suponga que

es una aproximacin de

. Entonces usando el Teorema de Taylor para funciones de

varias variables, podemos escribir

Definimos ahora la siguiente aproximacin

como la solucin de

i.e.,

De esta forma continuamos obteniendo asi la versin para sistemas del Mtodo de Newton dada por

(4.47)

Si

es nosingular, y

se toma suficientemente cerca de

, entonces se puede demostrar que

las iteraciones
convergen a la raiz . Las iteraciones (4.47) se pueden rescribir para que no
haya que calcular el inverso de una matriz. Esto se hace de la forma:

(4.48)

Ejemplo 3: Considere el problema de aproximar una solucin del sistema:

Tenemos que

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap4/nonleq.html (14 de 17) [04/08/2002 0:41:38]

Captulo 4

Estas dos expresiones las calculamos en MATLAB mediante las siguientes funciones:
function z=f(w)
z=zeros(2,1);
x=w(1);y=w(2);
z(1)=x^3-x*y^2+y^3;
z(2)=x*sin(x*y)+1;
function z=fp(w)
z=zeros(2,2);
x=w(1);y=w(2);
z(1,1)=3*x^2-y^2;
z(1,2)=-2*x*y+3*y^2;
z(2,1)=sin(x*y)+x*y*cos(x*y);
z(2,2)=x^2*cos(x*y);
Tomando como

, tenemos el siguiente programa que implementa la recursin (4.48):

x0=[1,0]';
normx=1;
normz=1;
while normz > 1.0e-6*normx
f0=f(x0);
fp0=fp(x0);
z=-fp0\f0;
normz=norm(z,2);
normx=norm(x0,2);
x0=x0+z;
end
x0
con el cual obtenemos (1.1674,-0.8812) como una raiz aproximada del sistema.

Ejercicios

1. Calcle la raiz ms grande de la ecuacin

Despes de haber calculado la raiz mayor, use divisin sinttica y calcle las raices restantes.
2. La siguiente ecuacin tiene una raiz nica en el intervalo (-1,0):

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap4/nonleq.html (15 de 17) [04/08/2002 0:41:38]

Captulo 4

Use el Mtodo de Newton para calcular la raiz lo ms preciso posible para los valores de B=1,
5, 10, 25, 50. Como punto inicial puede tomar entre otros x0=0. Explique cualquier diferencia
en el comportamiento del mtodo segn aumenta el valor de B. Utilice la grfica de
para sustentar sus argumentos.
3. Implemente el Mtodo de Newton para buscar todas las raices de un polinomio p(x). Debe
. Si es una raiz, como
utilizar el Mtodo de Horner para evaluar p(x) y su derivada
resultado del Mtodo de Horner, se obtiene un polinomio q(x) tal que p(x)=(x- )q(x). Usando
q(x) podemos calcular las raices restantes de p(x). Uttilice su programa para resolver las
ecuaciones:
a.
b.
c.
4. Sea A la matriz 3x3 y b el vector 3x1 dados por:

Escriba un algortmo (en MATLAB) basado en el mtodo de la biseccin, que aproxime a 12


cifras significativas el valor de
tal que la solucin x de
satisfaga
. Puede suponer la existencia de una subrutina solve que dada una matriz C y un
vector d, solve(C,d) devuelve como resultado la solucin z de Cz=d.
Ayuda: La solucin x de
sustituirse en la ecuacin

se puede ver como una funcin


produce la ecuacin (nolineal) en :

la cual al

.
5. La ecuacin
tiene un mximo para
satisfacen las ecuaciones:

define a y implicitamente como funcin de x. La funcin


. Demuestre que las coordenadas

del mximo

Calcule una solucin aproximada de este sistema usando el Mtodo de Newton.


6. Considere el problema de resolver la ecuacin integral
http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap4/nonleq.html (16 de 17) [04/08/2002 0:41:38]

Captulo 4

para la funcin desconocida z(s). Usando una regla de cuadratura apropiada para discretizar el
integral en esta ecuacin, obtenga un sistema de ecuaciones nolineales cuya solucin es una
aproximacin de z(s). Resuelva el sistema resultante usando el Mtodo de Newton.

http://uprhmate01.upr.clu.edu/~pnm/notas4061/cap4/nonleq.html (17 de 17) [04/08/2002 0:41:38]

Interpolacin de Polinomios

Captulo 5
Interpolacin y Aproximacin de Funciones
Problema bsico de Interpolacin: Dados los datos (xi,yi) , 1<=i<=n, queremos hallar una funcin
g(x) tal que
g(xi)=yi , 1<=i<=n.
Problema de Interpolacin Polinomial: Dados los datos (xi,yi) , 1<=i<=n, queremos hallar un
polinomio pn-1(x) de grado a lo ms n-1, tal que
pn-1(xi)=yi , 1<=i<=n.
Ejemplo: Considere los datos (-2,5), (1,3). Podemos construir el polinomio de grado uno que interpola
a estos datos:
p1(x) = 5 - (2/3) (x+2) .
Note que tambin podemos interpolar con una funcin de la forma g(x)= a ebx. De hecho b= (1/3)ln(5/3) y a=3(5/3)1/3.
Existencia y construccin de pn-1(x)
Considere el caso de los datos (-2,10), (-1,4),(1,6), y (2,3). Entonces si escribimos p3(x)=a1+a2x
+a3x2+a4x3 tenemos que
p3(-2)=10 implica que a1-2a2+4a3-8a4 =10;
p3(-1)=4 implica que a1-a2+a3-a4 =4;
p3(1)=6 implica que a1+a2+a3+a4 =6;
p3(2)=3 implica que a1+2a2+4a3+8a4 =3;
Esto es equivalente al sistema:

http://uprhmate01.upr.clu.edu/~pnm/notas4061/interpolacion/interpolacion.htm (1 de 10) [04/08/2002 0:42:48]

Interpolacin de Polinomios

el cual se puede resolver con el siguiente codigo en MATLAB:


y=[10 4 6 3]';
V=[1 -2 4 -8;1 -1 1 -1;1 1 1 1;1 2 4 8];
a=V\y
obteniendo asi el resultado: a=[4.5000 1.9167 0.5000 -0.9167]
Esto generaliza al caso general como sigue. Escribimos pn-1(x)=a1+a2x +...+anxn-1. Ahora
yi=pn-1(xi)=a1+a2 xi +...+anxin-1 , 1<=i<=n.
Esto es equivalente al sistema:

La matriz de coeficientes de este sistema se conoce como la matriz de Vandermonde y se puede


demostrar que es nosingular si los xi's son todos distintos. (Esta condicin se asumir de aqui en
adelante). De modo que el polinomio de interpolacin pn-1(x) existe por construccin. La unicidad de
pn-1(x) se verifica usando el Teorema Fundamental del Algebra. De hecho, si q(x) es otro polinomio
de grado n-1 que interpola a los datos, entonces pn-1(x)-q(x) es polinomio de grado n-1 con n raices,
los xi's. Esto es imposible a menos que q(x)= pn-1(x).
Para calcular la matriz de Vandermonde V, primero observamos que si j>1, la columna j de V se
obtiene multiplicando (componente a componente) el vector columna (x1,,xn) con la columna j-1 de
V:

lo cual se puede escribir en MATLAB como V(:,j)=x.*V(:,j-1), donde x=[x1 x2 xn].


Esto motiva el siguiente programa en MATLAB para calcular los coeficientes de pn-1(x). Aqui x, y
http://uprhmate01.upr.clu.edu/~pnm/notas4061/interpolacion/interpolacion.htm (2 de 10) [04/08/2002 0:42:48]

Interpolacin de Polinomios

son vectores de n componentes y x tiene todos sus componentes distintos:


function a = interpV(x,y)
n=length(x); V=ones(n,n);
for j=2:n
V(:,j)=x.*V(:,j-1);
end
a=V\y;
El polinomio pn-1(x) se puede evaluar ahora usando el mtodo de Horner el expresa a pn-1(x) en su
forma anidada:
a1+x(a2+...(an-2+x(an-1+anx)))
Dado un valor de z para evaluar pn-1(z) podemos hacer esto mediante el siguiente codigo en
MATLAB:
n=length(a); % a es el vector de coeficientes
pval=a(n);
for i=n-1:-1:1
pval=a(i)+z*pval;
end
Este programa lo podemos generalizar al caso en que z es un vector columna de valores en el que
tenemos que evaluar el polinomio:
function pval=hornerV(a,z)
n=length(a); m=length(z);
pval=a(n)*ones(m,1);
for k=n-1:-1:1
pval=a(k)+z.*pval; end
Ejemplo: Considere el caso de los datos (-2,10),(-1,4),(1,6), y (2,3) que vimos anteriormente.
Podemos calcular el polinomio de interpolacin mediante:
x=[-2 -1 1 2]'; y=[10 4 6 3]';
a=interV(x,y);
x0=linspace(-2,2,100)';
y0=hornerV(a,x0);
% grafica el polinomio de interpolacin
plot(x0,y0)

http://uprhmate01.upr.clu.edu/~pnm/notas4061/interpolacion/interpolacion.htm (3 de 10) [04/08/2002 0:42:48]

Interpolacin de Polinomios

Representacin de Newton de pn-1(x)


El polinomio de interpolacin pn-1(x) es nico. De modo que podemos buscar formas ms eficientes
de calcularlo sin peligro de obtener otro polinomio. La representacin de Newton de p n-1(x) es tal que
el sistema para obtener los coeficientes es triangular inferior. Esto es una gran ventaja ya que la matriz
de Vandemonde es densa y en general mal-acondicionada.
En el caso de los datos (-2,10),(-1,4),(1,6), y (2,3), en lugar de buscar p3(x) de la forma
a1+a2x+a3x2+a4x4 lo buscamos de la forma:

Note ahora que


10 = p3(-2) = c1
4 = p3(-1) = c1 + c2
6 = p3(1) = c1 +3 c2+ 6 c3
http://uprhmate01.upr.clu.edu/~pnm/notas4061/interpolacion/interpolacion.htm (4 de 10) [04/08/2002 0:42:48]

Interpolacin de Polinomios

3 = p3(2) = c1 +4 c2+ 12 c3 + 12 c4
Esto es un sistema triangular inferior cuya solucin es:
c1=10 , c2=-6 , c3=7/3 , c4=-11/12
En el caso general buscamos pn-1(x) de la forma:

Examinamos el caso n=4 para luego llegar al caso general. En este caso al aplicar las condiciones de
interpolacin pn-1(xi)=yi , 1<=i<=n, obtenemos el sistema triangular superior 4x4 dado por:

Inmediatamente vemos que c1=y1. Restandole la primera fila a las ecuaciones dos, tres y cuatro y
diviendo estas por (x2-x1), (x3-x1), (x4-x1) respectivamente, obtenemos el sistema transformado:

Note que hemos reducido el problema 4x4 a el problema 3x3:

http://uprhmate01.upr.clu.edu/~pnm/notas4061/interpolacion/interpolacion.htm (5 de 10) [04/08/2002 0:42:48]

Interpolacin de Polinomios

Este sistema corresponde al polinomio


q(x)=c2+c3(x-x2)+c4(x-x2)(x-x3)
que interpola a los datos (x2,y21), (x3,y31) , (x4,y41). Es fcil ver tambin que
p3(x)=c1+(x-x1)q(x).
Note que el lado derecho de este sistema se puede calcular mediante el siguiente cdigo en MATLAB:

En el caso general tenemos que c1= y1 y que pn-1(x)=c1+(x-x1)q(x) donde q(x) es polinomio de grado
n-2 que interpola a los datos:
(xi,(yi-y1)/(xi-x1)) , 2<=i<=n.
Esto nos lleva a el siguiente programa recursivo en MATLAB para calcular la representacin de
Newton del polinomio de interpolacin:
function c = interpNR(x,y)
n=length(x);
c=zeros(n,1);
c(1)=y(1);
if n>1
c(2:n)=interpNR(x(2:n),(y(2:n)-y(1))./(x(2:n)-x(1)));
end
Repitiendo el proceso que nos llevo a la forma recursiva del algortmo anterior, podemos resolver
dicha recursin para obtener asi la forma secuencial del algortmo para la representacin de Newton
del polinomio de interpolacin:
function c = interpN(x,y)
n=length(x);
http://uprhmate01.upr.clu.edu/~pnm/notas4061/interpolacion/interpolacion.htm (6 de 10) [04/08/2002 0:42:48]

Interpolacin de Polinomios

for k=1:n-1
y(k+1:n)=(y(k+1:n)-y(k)) ./ (x(k+1:n)-x(k));
end
c=y;
La representacin de Newton del polinomio de interpolacin se puede evaluar con una variacin de
mtodo de Horner donde escribimos el polinomio es forma anidada como sigue:
pn-1(x)=c1+(x-x1)(c2 +...(cn-2+(x-xn-2)(cn-1+cn(x-xn-1))))
En el caso n=4 esto reduce a :
p3(x)=c1+(x-x1)(c2+(x-x2) (c3+c4(x-x3)))
Esto nos lleva a el siguiente programa en MATLAB que implementa esta versin del mtodo de
Horner:
function pval = hornerN(c,x,z)
n = length(c);
pval = c(n)*ones(size(z));
for k = n-1:-1:1
pval=c(k) + (z-x(k)) .* pval;
end
Eficiencia
En general interpNR y interpN requieren menos operaciones de punto flotante que interpV, O(n2) en
comparacin con O(n3), ya que la matriz de Vandermonde es densa mientras que en la representacin
de Newton resolvemos un sistema triangular. Hay mtodos alternos que resuelven el sistema de
Vandermonde en O(n2) operaciones al aprovechar su estructura particular.
Si comparamos interpNR y interpN, el segundo mtodo es ms eficiente en el uso de memoria que el
primero. La naturaleza recursiva de interpNR requiere O(n2) lugares de memoria en comparacion con
O(n) para interpN.
Error de Interpolacin
Teorema: Suponga que pn-1(x) interpola a la funcin f(x) en los puntos distintos x1,,xn y que f tiene
derivadas continuas hasta orden n en un intervalo I que contiene a los xi's. Entonces para cualquier z
en I existe un entre z y los xi's tal que:

http://uprhmate01.upr.clu.edu/~pnm/notas4061/interpolacion/interpolacion.htm (7 de 10) [04/08/2002 0:42:48]

Interpolacin de Polinomios

Si f(x) es una funcin en [a,b] y los xi's estan uniformemente distribuidos en [a,b], i.e.,
xi = a+i h, 0<=i<=n-1, h=(b-a)/(n-1)
entonces se puede demostrar que:

De modo que si

donde M es una constante independiente de n, entonces el error de interpolacin tiende a cero segn h
se va a cero, i.e., hay convergencia. Este es el caso, por ejemplo para las funciones trigonomtricas sen
y cos, y para la exponencial ex en un intervalo finito.
Esta propiedad (derivadas de todo orden acotadas uniformemente) no la poseen todas las funciones. El
ejemplo clsico de este mal comportamiento en las derivadas es la funcin de Runge dada por:

El siguiente programa en MATLAB calcula los polinomios de interpolacin de f(x) de grados


10,11,12, y 13 y los grafica en el mismo sistema de coordenadas junto con f(x).
x=linspace(-1,1,100)';
y=1./(1+25*x.^2);
k=0;
for n=10:13
k=k+1;
xunif=linspace(-1,1,n)';
yunif= 1./(1+25*xunif.^2);
cunif=interpN(xunif,yunif);
pvals=hornerN(cunif,xunif,x);
http://uprhmate01.upr.clu.edu/~pnm/notas4061/interpolacion/interpolacion.htm (8 de 10) [04/08/2002 0:42:48]

Interpolacin de Polinomios

subplot(2,2,k)
plot(x,y,x,pvals)
title(sprintf('(n = %2.0f)',n))
end

Ejercicios
1. Calcule la funcin q(x) = a + b cos(x) + c sen(x) que interpola a los datos (0,2), (1/2,5),
(1,4).
2. Halle el polinomio cuadrtico que interpola a los datos (-2,-15), (-1,-8), (0,-3) por los dos
mtodos discutidos en clase.
3. Use induccin matemtica para demostrar que si V(x1,,xn) representa la matriz de
Vandermonde para {x1,,xn}, entonces

4. Demuestre que si q(x) es el polinomio de grado n-2 que interpola a los datos
http://uprhmate01.upr.clu.edu/~pnm/notas4061/interpolacion/interpolacion.htm (9 de 10) [04/08/2002 0:42:48]

Interpolacin de Polinomios

(xi,(yi-y1)/(xi-x1)) , 2<=i<=n,
y pn-1(x) interpola a (xi,yi) , 1<=i<=n, entonces
pn-1(x) = y1 + (x-x1) q(x) .
5. Demuestre mediante induccin matemtica que los coeficientes c1,,cn de la representacin de
Newton de pn-1(x) estan dados por el programa sequencial interpN.
6. Suponga que z y a(1:n) son dados e inicializados y que p(x)= a1+a2 x+...+ann-1. Haciendo uso
eficiente de la subrutina hornerV escriba segmentos de programas en MATLAB que calculen
las expresiones:

7. Escriba una funcin en MATLAB, nbest(L,R,a,delta), que devuelva el entero menor n tal que si
pn-1(x) es el polinomio de interpolacin de eax en los puntos
L +(i-1)(R-L)/(n-1) , i=1:n
entonces

http://uprhmate01.upr.clu.edu/~pnm/notas4061/interpolacion/interpolacion.htm (10 de 10) [04/08/2002 0:42:48]

Interpolacin Polinomial por Pedazos

Interpolacin Polinomial por Pedazos


El uso de polinomios de interpolacin de alto grado puede producir errores grandes debido al alto grado de
oscilacin de este tipo de polinomios. Para evitar este problema se aproxima la funcin desconocida en
intervalos pequeos usando polinomios de grado bajo. El caso ms comn de la interpolacin por pedazos
es usar polinomios cbicos.
Polinomios Cbicos de Lagrange: Suponemos que n es divisible por tres y buscamos un polinomio
cbico que interpole a la funcin en los puntos
. Este polinomio esta dado en su
representacin de Lagrange por:

para

se asume constante para toda i.

Interpolacin de Hermite: Aqui buscamos un polinomio por pedazos Hn(x) que sea cbico en cada
subintervalo
, y que interpole a f(x) y f'(x) en los puntos
. La funcin
Hn(x) queda determinada en forma nica por estas condiciones y su clculo requiere de la solucin de n
sistemas lineales de tamao 4x4 cada uno. La desventaja de la interpolacin de Hermite es que requiere de
la disponibilidad de los
lo cual no es el caso en muchas aplicaciones.
Interpolacin usando Splines: Los dos tipos de polinomios por pedazos que hemos discutidos hasta ahora
tienen la desventaja de que su segunda derivada no es continua en los puntos de interpolacin. Se ha
observado que en aplicaciones grficas, el ojo humano es capaz de detectar discontinuidades en la
segundas derivadas de una funcin, haciendo que los grficos con este tipo de funciones no luscan
uniformes. Esto motiva el uso de los splines que son funciones s(x) continuas por pedazos con las
siguientes propiedades:
1. s(x) es polinomio cbico en

2.

existen y son continuas en

3. s(x) interpola a la funcin f en los datos


4. s(x) es continua en
Si escribimos

.
, entonces tenemos un total de

4n desconocidas. Las condiciones 2) y 4) nos dan 3(n-1) ecuaciones mientras que de 3) obtenemos n+1
para un total de 4n-3(n-1)-(n+1)=2 grados de libertad. Estos grados de libertad se fijan imponiendo
condiciones de frontera adicionales en s(x).

http://uprhmate01.upr.clu.edu/~pnm/notas4061/piecewise/piecewise.htm (1 de 5) [04/08/2002 0:43:34]

Interpolacin Polinomial por Pedazos

Defina

. Como s(x) es cbico en

, entonces s"(x) es lineal en

y esta dado por:

.
Integrando esta ecuacin dos veces, obtenemos que

.
Las condiciones

implican que

Sustituyendo esto en la formula anterior de s(x) obtenemos que

Note que s(x) y s"(x) son continuas por construccin y adems tenemos que la condicin de interpolacin
se cumple. Falta la condicin de que s'(x) sea continua, i.e.,

En

, tenemos que

, se obtiene que la condicin de continuidad expresada por


Usando una expresin equivalente en
los limites de derecha e izquierda arriba, implica que

http://uprhmate01.upr.clu.edu/~pnm/notas4061/piecewise/piecewise.htm (2 de 5) [04/08/2002 0:43:34]

Interpolacin Polinomial por Pedazos

donde

Tenemos aqui n-1 ecuaciones para las n+1 desconocidas

Condicin Natural de los Splines: Para fijar los dos grados de libertad en el spline, requerimos que s(x) sea
lineal en los intervalos
lo cual es equivalente a las condiciones
.
Tenemos ahora el siguiente sistema de ecuaciones Am=d para las restantes desconocidas
donde:

Note que la matriz de coeficientes de este sistema es tridiagonal y simtrica lo que hace que el spline s(x)
pueda ser calculado en forma eficiente. El siguiente programa en MATLAB ensambla la matriz y lado
derecho segn definidos arriba y resuelve el sistema para determinar los M's:
%
% Los datos estan dados por los vectores x=[x(1) x(n)] , y=[y(1) y(n)]
%
n=length(x)
dx=x(2:n)-x(1:n-1);
yp=(y(2:n)-y(1:n-1))./dx;
a=sparse([1:n-2],[1:n-2],(dx(1:n-2)+dx(2:n-1))/3,n-2,n-2);
udiag=sparse([1:n-3],[2,n-2],dx(2:n-2)/6,n-2,n-2);
a=udiag'+a+udiag;
d=yp(2:n-1)-yp(1:n-2);
m=a\d;
La funcin spline de MATLAB se utiliza para calcular el spline s(x) directamente. En el siguiente ejemplo
los datos se obtienen dividiendo el intervalo [-5,5] en seis subintervalos y evaluamos la funcin atan
http://uprhmate01.upr.clu.edu/~pnm/notas4061/piecewise/piecewise.htm (3 de 5) [04/08/2002 0:43:34]

Interpolacin Polinomial por Pedazos

(tangente inversa) en los puntos de la particin. Luego construimos el spline que interpola en estos puntos
y lo graficamos:
%
% Divide el intervalo [-5,5] en cinco pedazos generando asi seis puntos
%
x=linspace(-5,5,6);
%
% Evalua la funcin atan en los puntos de la particin
%
y=atan(x);
%
% Calcula la representacin del spline que interpola a los datos
%
pp=spline(x,y);
%
% Calcula 100 puntos en el intervalo [-5,5] para las graficas
%
z=linspace(-5,5,100);
%
% Evalua el spline y la funcin atan en los 100 puntos
%
sval=ppval(pp,z);
y1=atan(z);
%
% Grafica el spline, atan, y los puntos de interpolaci&oacuten en un mismo
% sistema de coordenadas
%
plot(z,sval,z,y1,x,y,'+')
xlabel('x');
ylabel('y');
title('atan(x) en violeta y s(x) en amarillo')

http://uprhmate01.upr.clu.edu/~pnm/notas4061/piecewise/piecewise.htm (4 de 5) [04/08/2002 0:43:34]

Interpolacin Polinomial por Pedazos

http://uprhmate01.upr.clu.edu/~pnm/notas4061/piecewise/piecewise.htm (5 de 5) [04/08/2002 0:43:34]

Problemas de Cuadrados Minimos Polinomiales

Problemas de Cuadrados Minimos Polinomiales


Consideramos ahora el problema de aproximar o "ajustar" una funcin en un nmero grande de datos
que contienen posiblemente un cierto grado de error. En lugar de tratar de ajustar un polinomio de alto
grado o insistir en interpolar datos que sabemos tienen un cierto grado de error, lo que hacemos es que
buscamos una funcin que en cierto sentido suavice las fluctuaciones en los datos y a la ves resalte las
caracteristicas esenciales de estos. En el mtodo de cuadrados minimos, se trata de minimizar la suma
de los cuadrados de las diferencias entre los datos y la funcin que se usa para aproximar estos.
Suponga que los datos estan dados por
aproximar estos datos tiene la forma general:

donde las funciones


desconocidas. Un caso comn es tomar

donde k=1,2,m. La funcin que usamos para

son funciones dadas y los

son

y en este caso decimos que

buscamos aproximar los datos con un polinomio de grado a lo ms n-1. Las diferencias entre los datos
y la funcin g(x) estan dados por:
.
Buscamos pues minimizar la suma de los cuadrados de estas diferencias dada por:

, los valores de
Bajo ciertas condiciones en los datos
minimizan a "S" son solucin del sistema lineal (ecuaciones normales):

donde

http://uprhmate01.upr.clu.edu/~pnm/notas4061/leastsqr/leastsq.htm (1 de 6) [04/08/2002 0:44:30]

que

Problemas de Cuadrados Minimos Polinomiales

La solucion "a" de las ecuaciones normales se conoce como la solucin de cuadrados minimos para
los datos
usando las funciones base
. En el caso
el problema de minimizar "S" se conoce como el problema de cuadrados
minimos polinomial y la matriz A toma la forma:

.
(Compare esta matriz con la matriz de Vandermonde que vimos en la interpolacin de polinomios).
Siguiendo nuestra discusin anterior de la matriz de Vandermonde, podemos escribir el siguiente
codigo en MATLAB que calcula la matriz A:
function a=vandg(n,x);
m=length(x);
a=ones(m,n);
for j=2:n
a(:,j)=x.*a(:,j-1);
end
El siguiente programa en MATLAB llama la funcin de arriba para luego ensamblar las ecuaciones
normales y resuelve estas para obtener asi la solucin de cuadrados minimos:
function a=leastsqu(n,x,y);
A=vandg(n,x);
B=A'*A;
a=B\(A'*y);
El vector "a" que devuelve esta funcin representa los coeficientes del polinomio de grado a lo ms n1 que mejor aproxima a los datos en el sentido de los cuadrados minimos. Podemos ahora utilizar la
funcin hornerV discutida anteriormente para evaluar dicho polinomio.
Ejemplo: Para ilustrar las ideas presentadas hasta ahora, considere el caso de aproximar 17 datos
tomados de la funcin y=ex en el intervalo [0,4] utilizando un polinomio cuadrtico y otro cbico:
%
% Genera los datos
%
x=[0:.25:4]';
http://uprhmate01.upr.clu.edu/~pnm/notas4061/leastsqr/leastsq.htm (2 de 6) [04/08/2002 0:44:30]

Problemas de Cuadrados Minimos Polinomiales

y=exp(x);
%
% Calcula los coeficientes de los polinomios cuadrtico y cbico
% que mejor aproximan en el sentido de los cuadrados minimos
%
a2=leastsqu(3,x,y);
a3=leastsqu(4,x,y);
%
% Genera puntos adicionales para evaluar los polinomios y
% la funcin original
%
xx=[0:.02:4]';
%
% Evalua los polinomios y la funcin original
%
pval2=hornerV(a2,xx);
pval3=hornerV(a3,xx);
yy=exp(xx);
%
% Traza las grficas
%
plot(xx,yy,xx,pval2,xx,pval3,x,y,'o')
xlabel('X');ylabel('Y');
title('Cuadratica en violeta; Cubica en azul; exp(x) en amarillo')

http://uprhmate01.upr.clu.edu/~pnm/notas4061/leastsqr/leastsq.htm (3 de 6) [04/08/2002 0:44:30]

Problemas de Cuadrados Minimos Polinomiales

La matriz de coeficientes
de las ecuaciones normales es en general una matriz mal
acondicionada segn la "m" aumenta. De hecho en el caso del problema de cuadrados minimos
es de la forma:
polinomial, es fcil ver que la entrada (k,l) de

donde la N=k+l-2 . Pero

de modo que

http://uprhmate01.upr.clu.edu/~pnm/notas4061/leastsqr/leastsq.htm (4 de 6) [04/08/2002 0:44:30]

Problemas de Cuadrados Minimos Polinomiales

para "m" grande. Asi que


es (aproximadamente) proporcional a la matriz de Hilbert de orden
nxn para "m" grande la cual es mal acondicionada. El nmero de datos no tiene que ser muy grande.
son 983.3594 y 5.7299e+004
De hecho en el ejemplo anterior, los numeros de condicin de
respectivamente para los casos n=3,4 lo cual indica que se pierden en el orden de 4 cifras
significativas en el calculo.
Para poder resolver las ecuaciones normales en forma eficiente y estable, se utiliza la llamada
factorizacin QR de la matriz A.
Teorema: (Factorizacin QR) Sea A una matriz mxn de rango n. Entonces existe una matriz Q de
tamao mxn con
, y una matriz R de tamao nxn triangular superior y nosingular tal que
A=QR.
La demostracin de este teorema utiliza el proceso de Gram-Schmidt y se encuentra por ejemplo en el
libro Linear Algebra with Applications de S.J. Leon. Tampoco discutiremos los aspectos
computacionales de como calcular la factorizacin QR de una matriz pues utilizaremos las funciones
de MATLAB para esto. Lo que si nos interesa en este punto es que utilizando la factorizacin QR de
la matriz A que aparece en las ecuaciones normales, podemos calcular la solucin de cuadrados
minimos en forma eficiente y sin problemas de mal acondicionamiento.
Teorema: Sea A una matriz mxn de rango n y A=QR la factorizacin QR de A dada por el teorema
anterior. Entonces la solucin "a" de las ecuaciones normales
se puede obtener
resolviendo el sistema triangular

Demostracin: Dado que A=QR tenemos que:

. Como R es nosingular Rt tambin lo es y tenemos

De igual forma:
pues que

es equivalente al sistema

. <>

Vale la pena recalcar que los sistemas triangulares se resuelven eficientemente mediante sustitucin
para atras y son por lo general bien acondicionados. La funcin qr de MATLAB se utiliza para
calcular las factorizaciones QR. Modificamos la funcin leastsqu de arriba como sigue:
function a=leastsqr(n,x,y);
A=vandg(n,x);
[Q R]=qr(A);
a=R\(Q'*y);

http://uprhmate01.upr.clu.edu/~pnm/notas4061/leastsqr/leastsq.htm (5 de 6) [04/08/2002 0:44:30]

Problemas de Cuadrados Minimos Polinomiales

El mismo ejemplo anterior pero usando esta subrutina en lugar de leastsqu produce resultados
similares (al nmero de cifras mostradas) pero ahora los nmeros de condicin de R son 31.3586 y
239.3714 para n=3,4 respectivamente los cuales son mucho mejor que antes.
Ejercicios:
1. Considere los datos dados por los vectores x=[0:0.25:3], y=[6.3806 7.1338 9.1662 11.5545
15.6414 22.7371 32.0696 47.0756 73.1596 111.4684 175.9895 278.5550 446.4441].
Aproxime estos datos con funciones de la forma:
1.
2.
3.
Modifique los programas dados anteriormente segn sea necesario. Grafique las tres funciones
"g(x)" y los datos originales en un mismo sistema de coordenadas. Qu tan bien aproximan
estas funciones a los datos?
se puede aproximar con un polinomio de grado cinco de la forma
2. La funcin
. Use la funcin gamma de MATLAB para generar
para x=0:0.1:1. Usando los programas desarrollados en esta leccin,
valores de
construya el polinomio de grado cinco que mejor aproxima estos datos en el sentido de los
cuadrados minimos. Trace los datos, la funcin
y el polinomio calculado en el
mismo sistema de coordenadas.

http://uprhmate01.upr.clu.edu/~pnm/notas4061/leastsqr/leastsq.htm (6 de 6) [04/08/2002 0:44:30]

Integracin Numrica

Integracin Numrica - Mtodos del Trapezoide y Simpson


En esta leccin comenzamos el estudio de mtodos numricos para el clculo numrico de integrales
de la forma

Un mtodo comn para aproximar I(f) es reemplazando f(x) con un polinomio de interpolacin. Este
procedimiento se conoce como las reglas de Cuadratura de Newton. Examinamos los primeros dos
casos de este mtodo donde se usan polinomios de interpolacin lineales y cuadrticos.
Mtodo del trapezoide: Sea p1(x) el polinomio lineal que interpola a f(x) en x=a y x=b, i.e.,

Usando la frmula para el area de un trapezoide o integrando p1(x) directamente se obtiene que

Asi que podemos escribir la aproximacin:

(*)
Ms adelante anlizamos en detalles el error en esta aproximacin. Por el momento basta observar que
la aproximacin es buena siempre que f sea aproximadamente lineal. En el caso general, dividimos el
intervalo [a,b] en subintervalos ms pequeos y aplicamos la frmula anterior en cada subintervalo. Si
los subintervalos son suficientemente pequeos, entonces f es aproximadamente lineal en cada
subintervalo y la aproximacin es buena. Definimos el largo de los subintervalos por:

El j-esimo subintervalo esta dado por [xj-1,xj] donde

http://uprhmate01.upr.clu.edu/~pnm/notas4061/numint1/numint.htm (1 de 7) [04/08/2002 0:45:10]

Integracin Numrica

Podemos escribir ahora que:

Usando la aproximacin (*) podemos escribir

Usando esto en la frmula anterior, obtenemos que

Esto se conoce como la regla (compuesta) del trapezoide para aproximar I(f).
Ejemplo 1: Usando la regla del trapezoide con n=2 y n=4 aproximamos:

cuyo valor exacto es


correcto al nmero de cifras mostradas. Para n=2 tenemos
que h=(2-1)/2=0.5, x0=1, x1=1.5, x2=2. Ahora

Con n=4 tenemos h=(2-1)/4=0.25, x0=1, x1=1.25, x2=1.5, x3=1.75, x2=2, de modo que

http://uprhmate01.upr.clu.edu/~pnm/notas4061/numint1/numint.htm (2 de 7) [04/08/2002 0:45:10]

Integracin Numrica

Estos calculos los podemos realizar tambin utilizando la funcin trapz de MATLAB. En el siguiente
programa no solo calculamos los dos resultados de arriba sino que generamos una tabla de errores
(exactos) para varios valores de n aprovechando que en este ejemplo tenemos el valor exacto del
integral:
iexacto=log(2);
n=2;
error1=0;
for i=1:10
x=linspace(1,2,n+1);
y=1./x;
iaprox=trapz(x,y);
error=iexacto-iaprox;
ratio=error1/error;
disp(['n=' num2str(n) ', iaprox=' num2str(iaprox,6) ',error=' num2str(error,6) ',ratio='
num2str(ratio,6)])
n=2*n;
error1=error;
end
Los resultados fueron como sigue:
n

Tn(f)

en=I(f)- Tn(f)

en/ e2n

0.708333

-0.0151862

-----

0.697024

-0.00387663

3.91736

0.694122

-0.00097467

3.97738

16

0.693391

-0.000244022

3.99419

32

0.693208

-0.0000610277

3.99854

64

0.693162

-0.0000152583

3.99963

128

0.693151

-3.81467e-006

3.99991

256

0.693148

-9.53672e-007

3.99998

512

0.693147

-2.38418e-007

3.99999

1024

0.693147

-5.96046e-008

4.00000

Estos resultados confirman claramente la convergencia del mtodo del trapezoide en este ejemplo
particular. Podemos ver que cada ves que se duplica la n, lo cual equivale a dividir la h entre dos, el
error disminuye por un factor de cuatro aproximadamente (ltima columna de la tabla) esto es

http://uprhmate01.upr.clu.edu/~pnm/notas4061/numint1/numint.htm (3 de 7) [04/08/2002 0:45:10]

Integracin Numrica

caracterstico de convergencia O(h2) lo cual confirmaremos teoricamente ms adelante.


Regla de Simpson: Utilizamos ahora un polinomio de interpolacin cuadrtico. Sea p2(x) el
polinomio de grado (a lo ms) dos que interpola a f(x) en x=a, x=(a+b)/2, x=b. Este polinomio se
puede escribir como:

Tenemos ahora que

Pero con h=(b-a)/2 y u=x-a tenemos que

En forma similar se obtiene que

Tenemos pues que

(**)
Argumentando en forma similar a en mtodo del trapezoide, tenemos que si n es un entero par (por
qu?) entonces

http://uprhmate01.upr.clu.edu/~pnm/notas4061/numint1/numint.htm (4 de 7) [04/08/2002 0:45:10]

Integracin Numrica

Usando la frmula (**) podemos aproximar

Ahora

Esta frmula se conoce como la regla (compuesta) de Simpson para aproximar a I(f).
Ejemplo 2: Usando la regla de Simpson con n=2 y n=4 aproximamos:

cuyo valor exacto es


correcto al nmero de cifras mostradas. Para n=2 tenemos
que h=(2-1)/2=0.5, x0=1, x1=1.5, x2=2. Ahora

Con n=4 tenemos h=(2-1)/4=0.25, x0=1, x1=1.25, x2=1.5, x3=1.75, x2=2, de modo que

MATLAB no tiene una rutina simp equivalente a trapz. Tiene una mejor llamada quad! La
subrutina quad utiliza una regla de Simpson adaptativa donde el valor de h se ajusta para que el error
en la aproximacin satisfaga una tolerancia especificada por el usuario. Tambin MATLAB tiene la
http://uprhmate01.upr.clu.edu/~pnm/notas4061/numint1/numint.htm (5 de 7) [04/08/2002 0:45:10]

Integracin Numrica

subrutina quad8 que al igual que quad usa un mtodo adaptativo pero con una frmula de
aproximacin de grado mayor. En lugar de usar estas rutinas que hacen las comparaciones un tanto
complicadas, implementamos nuestra versin de simp equivalente a trapz:
function q=simp(x,y);
n=length(x)-1;
if (n/2)~=floor(n/2)
disp('n tiene que ser par');
break;
end
h=x(2)-x(1);
v=2*ones(n+1,1);
v2=2*ones(n/2,1);
v(2:2:n)=v(2:2:n)+v2;
v(1)=1;v(n+1)=1;
q=(h/3)*y*v;
Esta subrutina implementa una forma vectorizada del mtodo de Simpson que ejecuta eficientemente
en MATLAB. Note que se requiere que n sea par. Recuerde tambin que en MATLAB los indices de
los arreglos corren empezando en uno. El mismo programa del Ejemplo 1 lo podemos usar aqui ahora
reemplazando la llamada a trapz por simp. Obtuvimos los siguientes resultados:
n

Sn(f)

en=I(f)- Sn(f)

en/ e2n

0.694444

-0.00129726

-----

0.693254

-0.000106788

12.1481

0.693155

-7.35009e-006

14.5288

16

0.693148

-7.35009e-006

14.5288

32

0.693147

-2.97299e-008

15.885

64

0.693147

-1.86151e-009

15.9708

128

0.693147

-1.16398e-010

15.9927

256

0.693147

-7.27562e-012

15.9983

512

0.693147

-4.54747e-013

15.9993

1024

0.693147

-2.84217e-014

16.0000

Estos resultados confirman claramente la convergencia de la regla de Simpson en este ejemplo


particular. Podemos ver que cada ves que se duplica la n, lo cual equivale a dividir la h entre dos, el
error disminuye por un factor de 16 aproximadamente (ltima columna de la tabla) esto es
caracteristico de convergencia O(h4) lo cual confirmaremos teoricamente ms adelante.
Ejercicios:

http://uprhmate01.upr.clu.edu/~pnm/notas4061/numint1/numint.htm (6 de 7) [04/08/2002 0:45:10]

Integracin Numrica

1. Usando las reglas del trapezoide y de Simpson y los programas descritos en esta leccin,
aproxime el siguiente integral:

El valor exacto de este integral es /4. Use esto para generar una tabla con las aproximaciones
y los errores (exactos) y estime el orden de convergencia.
2. La regla del punto medio se puede usar para obtener la siguiente aproximacin de I(f):

Usando esta frmula disee una frmula compuesta llamada la regla (compuesta) del punto
medio. Use esta frmula en el ejercicio anterior y estime el orden de convergencia de la misma.
3. Utilizando un polinomio cbico de Hermite para interpolar a f(x) en [a,b], desarrolle una
frmula para aproximar a I(f). Obtenga la frmula compuesta correspondiente.

http://uprhmate01.upr.clu.edu/~pnm/notas4061/numint1/numint.htm (7 de 7) [04/08/2002 0:45:10]

Integracin Numrica - Anlisis de Errores

Integracin Numrica - Anlisis de Errores


Pasamos ahora a estudiar formalmente el error de aproximacin en las frmulas:

Regla del Trapezoide: Usando el teorema sobre el error de interpolacin discutido anteriormente,
tenemos que si p1(x) es el polinomio que interpola a f(x) en xj-1, xj entonces

De modo que

donde usamos el Teorema del Valor Medio para integrales. Tenemos pues que el error en la frmula
del mtodo del trapezoide esta dado por

(*)
Suponiendo que
funciones, obtenemos que

(continua en [a,b]) y aplicando el Teorema del Valor Medio para

http://uprhmate01.upr.clu.edu/~pnm/notas4061/numint2/numint2.htm (1 de 5) [04/08/2002 0:46:30]

Integracin Numrica - Anlisis de Errores

Usando este resultado en la frmula del error de arriba obtenemos que

Esta frmula se conoce como la frmula exacta del error y establece que la frmula del trapezoide
Tn(f) tiene un orden de convergencia de O(h2) lo que confirma nuestros resultados numricos de la
seccin anterior. Esta frmula aparte de su vala teorica, no nos proporciona un estimador prctico del
error ya que f '' puede no ser accesible y el punto de la frmula es desconocido. Para obtener un
estimador prctico del error utilizamos la llamada frmula asinttica que se obtiene de la siguiente
manera. Si f '' es continua, entonces

Asi que usando esto y la frmula (*) obtenemos que

se conoce como el estimador asinttico del error. Note que si f ' es accesible, esta
La frmula
frmula envuelve cantidades conocidas y es posible calcularla como parte del proceso de
aproximacin. Ms aun podemos utilizar el estimador para corregir la frmula del trapezoide
obteniendo asi la fmula del trapezoide corregida:

la cal en general debe ser una mejor aproximacin a I(f) que Tn(f).
Ejemplo 1: Consideremos nuevamente el problema de aproximar

En este caso f(x)=1/x de modo que f'(x)=-1/x2, asi que el estimador asinttico del error esta dado por
la frmula

http://uprhmate01.upr.clu.edu/~pnm/notas4061/numint2/numint2.htm (2 de 5) [04/08/2002 0:46:30]

Integracin Numrica - Anlisis de Errores

Como en este problema el valor exacto del error


frmula asinttica. Veamos los resultados:

se conoce, podemos compararlo con la

n
2

0.708333

0.692708

-0.0151862

-0.015625

0.697024

0.693118

-0.00387663

-0.00390625

0.694122

0.693145

-0.00097467

-0.000976562

16

0.693391

0.693147

-0.000244022

-0.000244141

32

0.693208

0.693147

-0.0000610277

-0.0000610352

64

0.693162

0.693147

-0.0000152583

-0.0000152588

128

0.693151

0.693147

-3.81467e-006

-3.8147e-006

256

0.693148

0.693147

-9.53672e-007

-9.53674e-007

512

0.693147

0.693147

-2.38418e-007

-2.38419e-007

1024

0.693147

0.693147

-5.96046e-008

-5.96046e-008

Podemos ver de esta tabla que la frmula asinttica del error predice bastante bien el error real en este
ejemplo. Tambin podemos observar que la frmula corregida del trapezoide produce seis cifras
correctas en la aproximacin con apenas n=16 mientras que la frmula sin corregir requiere hasta
n=512. <>

De la frmula asinttica

tenemos que

lo cual fu lo que observamos en nuestros computos numricos. Note tambin que si casualmente f
'(a)=f '(b) , entonces la convergencia del mtodo ser ms rpida.
Mtodo de Simpson: En este caso el anlisis de los errores es similar al del mtodo del trapezoide
pero ms extenso. Simplemente pues resumimos los resultados en este caso. Si
entonces la frmula exacta del error esta dada por

http://uprhmate01.upr.clu.edu/~pnm/notas4061/numint2/numint2.htm (3 de 5) [04/08/2002 0:46:30]

Integracin Numrica - Anlisis de Errores

y la frmula asinttica por

La frmula corregida de Simpson es pues

De la frmula del error exacto se obtiene que el mtodo tiene un orden de convergencia O(h4) y
empleando la frmula asinttica podemos ver que los cocientes
aproximadamente 16.

son

Ejercicios:
1. Repita los clculos del Ejemplo 1 pero para el mtodo de Simpson.
2. Para la formulas bsica y compuesta de la regla del punto medio (problema 2, seccin anterior)
haga un anlisis de errores y derive las frmulas exactas y asintticas del error y la frmula
corregida del mtodo.
3. Si la regla del trapezoide se utiliza para aproximar

con h=0.01, halle una cota para el error en dicha aproximacin y un estimado asinttico del
mismo.
4. Si los puntos
no estan uniformemente distribuidos en [a,b], es posible
generalizar la frmula del trapezoide en este caso como sigue: sean
. Entonces definimos

Verifique la siguiente frmula para el error exacto de este mtodo

http://uprhmate01.upr.clu.edu/~pnm/notas4061/numint2/numint2.htm (4 de 5) [04/08/2002 0:46:30]

Integracin Numrica - Anlisis de Errores

donde

http://uprhmate01.upr.clu.edu/~pnm/notas4061/numint2/numint2.htm (5 de 5) [04/08/2002 0:46:30]

Integracin Numrica - Extrapolacin de Richardson

Integracin Numrica - Extrapolacin de Richardson


y Reglas de Cuadrtura Gaussiana
Aqui examinamos dos procedimientos para obtener frmulas de integracin numrica de orden
arbitrario. Una de estas tcnicas es la extrapolacin de Richardson que es un proceso comnmente
utilizado en anlisis numrico para acelerar la convergencia de sucesiones convergentes. La otra
tcnica son las reglas de cuadrtura Gaussiana que producen frmulas de alto grado utilizando puntos
distribuidos en el intervalo de integracin en forma no uniforme.
Extrapolacion de Richardson: Denotamos aqui por In cualquier frmula numrica para aproximar
I(f), e.g., la frmula del Trapezoide la regla de Simpson. La correspondiente frmula asintotica del
mtodo nos garantiza que para alguna constante C

donde p es el orden de convergencia del mtodo, e.g., p=2 para el mtodo del Trapezoide y p=4 para
el de Simpson. Podemos escribir ahora que

Despejando para I(f) obtenemos que

lo cual se conoce como la frmula de extrapolacin de Richardson y se puede demostrar que

i.e., el orden de la frmula original se duplic.


Ejemplo 1: Consideramos nuevamente el computo de

cuyo valor exacto es 0.693147 correcto a seis cifras. El siguiente programa en MATLAB implementa
el mtodo de extrapolacin de Richardson para la regla del trapezoide:
http://uprhmate01.upr.clu.edu/~pnm/notas4061/numint3/numint3.htm (1 de 5) [04/08/2002 0:46:55]

Integracin Numrica - Extrapolacin de Richardson

n=2;
x=linspace(1,2,3);
y=1./x;
iaproxn=trapz(x,y);
for i=2:5
n=2*n;
x=linspace(1,2,n+1);
y=1./x;
iaprox2n=trapz(x,y);
richard=(4*iaprox2n-iaproxn)/3;
disp(['n=' num2str(n) ', iaprox2n=' num2str(iaprox2n,6) ',richard=' num2str(richard,6)])
iaproxn=iaprox2n;
end
Los resultados fueron como sigue:
n

I2n

R2n

0.697024

0.693254

0.694122

0.693155

16

0.693391

0.693148

32

0.693208

0.693147

Aqui podemos ver que ya para n=32 la frmula de Richardon tiene ya seis cifras correctas. Para el
mtodo del trapezoide la frmula de Richardson es de orden O(h4) y no requiere derivadas de la
funcin f(x) en comparacin con la frmula corregida. <>
La frmula de extrapolacin de Richardson se puede ahora utilizar en forma recursiva generando
formulas de orden cada vez ms alto (se duplica en cada etapa). La frmula resultante por este
procedimiento se conoce como la frmula de integracin numrica de Romberg.
Reglas de Cuadrtura Gaussiana: Consideramos por el momento integrales de la forma

Note que si el integral esta dado en un intervalo arbitrario [a,b] entonces mediante el cambio de
variables

http://uprhmate01.upr.clu.edu/~pnm/notas4061/numint3/numint3.htm (2 de 5) [04/08/2002 0:46:55]

Integracin Numrica - Extrapolacin de Richardson

tenemos que

lo cual nos da una integral en [-1,1]. Asi que sin perdida de generalidad podemos asumir que el
integral es en [-1,1].
Sean x1,x2,,xn puntos (no necesariamente uniformemente distribuidos) en [-1,1] y w1,w2,,wn
nmeros llamados pesos ("weights"). Los puntos xj's y los pesos wj's se determinan de modo que la
frmula de integracin numrica

sea exacta para polinomios de grado a lo ms 2n-1, i.e., In(p)=I(p) para todo polinomio p de grado a lo
ms 2n-1. Como In I son operadores lineales, basta verificar que

Caso n=1: Aqui I1(f)=w1f(x1) y requerimos que I1(1)=I(1), I1(x)=I(x). Pero I(1)=2 y I1(1)=w1 de
modo que w1=2. Adems I(x)=0 y I1(x)=2x1, de donde obtenemos que x1=0. Tenemos pues la fmula
numrica I1(f)=2f(0) lo cal se conoce como la frmula del punto medio.
Caso n=2: Tenemos ahora que I2(f)= w1f(x1)+ w2f(x2) y se requiere que I2(xi)=I(xi) para i=0,1,2,3.
Esto nos lleva al siguiente sistema nolineal para x1,x2,w1,w2:

Suponiendo que x1, x2 son conocidas, resolvemos la tercera y cuarta ecuacin (que son lineales en los
w's) mediante la regla de Cramer para w1, w2 obteniendo asi que

http://uprhmate01.upr.clu.edu/~pnm/notas4061/numint3/numint3.htm (3 de 5) [04/08/2002 0:46:55]

Integracin Numrica - Extrapolacin de Richardson

Sustituyendo estas expresiones en la primera y segunda ecuacin y resolviendo para x1, x2 obtenemos
que

Asi que nuestra frmula numrica en el caso n=2 lee como sigue:

Caso n>2: Al aplicar las condiciones


se obtiene un sistema
nolineal de 2n ecuaciones en 2n desconocidas (las x's y las w's). Este sistema se puede resolver
numricamente usando el mtodo de Newton para sistemas nolineales. Pero en lugar de proceder de
esta forma se utiliza el hecho de que se puede demostrar que los xi's son los ceros del n-esimo
polinomio de Legendre Ln(x). Estos polinomios se definen por la recursin

En particular tenemos que L2(x)=(3/2)x2-(1/2) cuyos ceros son 1/3 que fueron los x's que
determinamos en el caso n=2. Tambin

de donde podemos obtener los x's para las frmulas de los casos n=3,4 respectivamente. Teniendo los
x's podemos ahora calcular los w's resolviendo un sistema lineal de ecuaciones.
Ejemplo 2: Aproximamos

http://uprhmate01.upr.clu.edu/~pnm/notas4061/numint3/numint3.htm (4 de 5) [04/08/2002 0:46:55]

Integracin Numrica - Extrapolacin de Richardson

usando la regla de cuadrtura con n=2. Primero hacemos un cambio de variables de modo que el
integral sea en el intervalo de [-1,1]. Para esto usamos el cambio de variables discutido al principio de
esta seccin lo que resulta en:

Tenemos ahora que

Ejercicios:
1. Trabaje el problema del Ejemplo 1 pero con la frmula de extrapolacin de Richardson que usa
la regla de Simpson. Cul es el orden de convergencia de la frmula de Richardson en este
caso?
2. Utilizando las expresiones para L3 y L4 dadas anteriormente y la subrutina roots de MATLAB,
calcule los x's para las frmulas de cuadrtura Gaussiana con n=3,4. Usando los x's calculados
determine usando MATLAB los pesos w's correspondientes.
3. Usando los resultados obtenidos en esta leccin para los x's y w's en los casos n=1,2 y los
casos n=3,4 del problema 2, escriba una subrutina en MATLAB con secuencia de llamada
compQG(fname,a,b,m,n) que aproxime el integral de la funcin con nombre fname en el
intervalo [a,b] aplicando una regla de cuadrtura de m puntos (1 m 4) en cada uno de n
subintervalos de [a,b] del mismo largo.

http://uprhmate01.upr.clu.edu/~pnm/notas4061/numint3/numint3.htm (5 de 5) [04/08/2002 0:46:55]

Solucin Numrica de Ecuaciones Diferenciales Ordinarias - Problema de Valor Inicial

Capitulo 7
Ecuaciones Diferenciales Numricas
Problema de Valor Inicial y Mtodo de Euler
Las ecuaciones diferenciales aparecen naturalmente al modelar situaciones fsicas en las ciencias
naturales, ingeniera, y otras disciplinas, donde hay envueltas razones de cambio de una varias
funciones desconocidas con respecto a una varias variables independientes. Estos modelos varan
entre los ms sencillos que envuelven una sola ecuacin diferencial para una funcin desconocida,
hasta otros ms complejos que envuelven sistemas de ecuaciones diferenciales acopladas para varias
funciones desconocidas. Por ejemplo, la ley de enfriamiento de Newton y las leyes mecnicas que
rigen el movimiento de los cuerpos, al ponerse en terminos matemticos dan lugar a ecuaciones
diferenciales. Usualmente estas ecuaciones estan acompaadas de una condicin adicional que
especifica el estado del sistema en un tiempo o posicin inicial. Esto se conoce como la condicin
inicial y junto con la ecuacin diferencial forman lo que se conoce como el problema de valor inicial.
Por lo general, la solucn exacta de un problema de valor inicial es imposible dificil de obtener en
forma analtica. Por tal razn los mtodos numricos se utilizan para aproximar dichas soluciones.
Comenzaremos discutiendo los mtodos para ecuaciones escalares y luego generalizamos los mismos
a sistemas de ecuaciones.
El Mtodo de Euler: Considere el problema de valor inicial para la funcin (desconocida) y(t)
descrito por:

Defina para n0 los siguientes cantidades:

Para cualquier j0, tenemos por el Teorema de Taylor que podemos escribir:

Eliminando los terminos O(h2) obtenemos la aproximacin:

http://uprhmate01.upr.clu.edu/~pnm/notas4061/odes1/odes1.htm (1 de 9) [04/08/2002 0:47:40]

Solucin Numrica de Ecuaciones Diferenciales Ordinarias - Problema de Valor Inicial

Denotamos ahora por yj una aproximacin de y(tj). Entonces motivado por la aproximacin de arriba
definimos las aproximaciones {yj} por la recursin:

lo que se conoce como el mtodo de Euler. La cantidad

la cual descartamos en la serie de Taylor para obtener las aproximaciones, se llama el error de
truncacin o local del mtodo de Euler y esta intimamente relacionada con la convergencia del
mtodo. De hecho si definimos los errores absolutos por ej=y(tj)-yj, entonces restando la expansin de
Taylor y la formula del mtodo se obtiene que

Suponiendo ahora que f cumple una Condicin de Lipschitz uniforme en t, i.e.,

para alguna constante L, entonces se puede verificar que de la recursin de los errores obtenemos que:

(*)
lo que prueba que el mtodo tiene un orden de convergencia global O(h).
La implementacin en MATLAB del mtodo de Euler es relativamente simple. Hacemos esto
mediante una subrutina llamada feuler que recibe en la secuencia de llamada el nombre de la
subrutina que calcula la funcin f, y los datos t0, b, y0, n. Esta subrutina devuelve dos vectores con las
t's y las y's aproximadas. Veamos:
function [tvals,yvals]=feuler(f,t0,b,y0,n)
h=(b-t0)/n;
tvals=zeros(1,n+1);
yvals=zeros(1,n+1);
http://uprhmate01.upr.clu.edu/~pnm/notas4061/odes1/odes1.htm (2 de 9) [04/08/2002 0:47:40]

Solucin Numrica de Ecuaciones Diferenciales Ordinarias - Problema de Valor Inicial

index=[0:1:n];
tvals=t0+h*index;
yvals(1)=y0;
for i=2:n+1
yvals(i)=yvals(i-1)+h*feval(f,tvals(i-1),yvals(i-1));
end
Usamos ahora esta subrutina en el siguiente ejemplo.
Ejemplo 1: Considere el problema de valor inicial

cuya solucin exacta es y(t)=(t+1)5e-t. Definimos la siguiente funcin en MATLAB que evala el lado
derecho de la ecuacin diferencial:
function f=etest(t,y);
f=5*y/(t+1)-y;
Ahora resolvemos este problema para n=20 y grficamos la solucin numrica junto con la exacta
para comparar los resultados usando las siguientes instrucciones en MATLAB:
[t,y]=feuler('etest',0,4,1,20);
yy=(t+1).^5.*exp(-t);
plot(t,y,'x',t,yy)

http://uprhmate01.upr.clu.edu/~pnm/notas4061/odes1/odes1.htm (3 de 9) [04/08/2002 0:47:40]

Solucin Numrica de Ecuaciones Diferenciales Ordinarias - Problema de Valor Inicial

Las soluciones numricas se ilustran en la figura por las "x". Note que las aproximaciones numricas
no coinciden con la solucin exacta y que el error aumenta segn aumenta la "t". Esto es lo usual y no
contradice el estimado del error (*) de arriba donde el error puede crecer hasta exponencial con
respecto al largo del intervalo. Para controlar el error lo primero que se hace es disminuir la h, i.e.,
aumentar la n. Para este ejemplo mostramos los resultados de disminuir h sucesivamente para la
aproximacin de y(4)= 57.2364 a las cifras mostradas. Obtuvimos lo siguiente:
n

yn

y(4)-yn

20

42.4723

14.7640

40

48.3445

8.89186

80

52.2842

4.95215

160

54.6108

2.62556

320

55.8827

1.35365

640

56.5488

0.687527

1280

56.8899

0.346503

2560

57.0624

0.173945

http://uprhmate01.upr.clu.edu/~pnm/notas4061/odes1/odes1.htm (4 de 9) [04/08/2002 0:47:40]

Solucin Numrica de Ecuaciones Diferenciales Ordinarias - Problema de Valor Inicial

Vemos aqui que definitivamente la aproximacin mejora segn aumenta la "n" pero la convergencia
es bastante lenta. De hecho la aproximacin numrica tiene apenas un error relativo de 3x10-3 para
n=2560, i.e., h=4x10-4. <>
El ejemplo anterior muestra que aunque el mtodo de Euler es convergente segn la "h" tiende a cero,
la convergencia del mtodo puede ser bien lenta requiriendo un "h" excesivamente pequeo para un
error satisfactorio en las aproximaciones. Al usar un "h" excesivamente pequeo en los calculos
podemos tener acumulacin de errores debido a la aritmtica finita similar al fenomeno que
observamos en la diferenciacin numrica. Esta situacin mejora o se puede evitar al considerar
mtodos con un orden de convergencia ms alto como los llamados mtodos Runge-Kutta que
discutimos ms adelante.
Otra nocin bien importante en adicin a la de convergencia de un mtodo numrico es la de
estabilidad absoluta. En este caso la "h" se mantiene fija y nos interesa determinar can sensitivo es el
mtodo numrico a variaciones en la condicin inicial y0.
Ejemplo 2: Considere el problema de valor inicial

cuya solucin exacta es y(t)=0. Resolvemos el mismo problema de valor inicial pero con la condicin
inicial cambiada a y(1)=10-4 y usamos h=0.05 en el mtodo de Euler. La solucin calculada fu como
sigue donde mostramos el valor absoluto de la misma:

http://uprhmate01.upr.clu.edu/~pnm/notas4061/odes1/odes1.htm (5 de 9) [04/08/2002 0:47:40]

Solucin Numrica de Ecuaciones Diferenciales Ordinarias - Problema de Valor Inicial

Podemos ver que un error inicial de 10-4 produjo un error de ms de 1025 en la aproximacin de y(10).
En este caso calcular con h=0.025 o n=360 aproximadamente, produce resultados satisfactorios. <>
El ejemplo anterior se generaliza a la ecuacin

, donde

. La solucin de este

problema es
para alguna constante C. Estas soluciones son acotadas para todo "t". La
regin de estabilidad absoluta S de un mtodo se define por el conjunto de las "h" tal que las
soluciones numricas sean acotadas al aplicarse al problema prueba
. En el
caso del mtodo de Euler tenemos que al aplicar este al problema prueba, el mtodo reduce a:

, i.e.,

Vemos aqui que las soluciones numricas estan acotadas para todo "j" si y solo si
.
Ejemplo 3: En el Ejemplo 2 donde =-50, el requisito de

implica que

http://uprhmate01.upr.clu.edu/~pnm/notas4061/odes1/odes1.htm (6 de 9) [04/08/2002 0:47:40]

Solucin Numrica de Ecuaciones Diferenciales Ordinarias - Problema de Valor Inicial

Claramente h=0.05 no cumple con esta condicin mientras que h=0.025 si la satisface. <>
El mtodo de Euler generaliza en forma directa a sistemas de ecuaciones diferenciales. La teoria de
convergencia global y de estabibilidad absoluta que discutimos en el caso de una ecuacin, aplica
palabra por palabra al caso de sistemas. En la subrutina feuler descrita antes solo hay que aadir una
instruccin para determinar el tamao del sistema. Hicimos un cambio tambin para que en lugar de
"n" la subrutina reciba "h". La subrutina queda ahora como:
function [tvals,yvals]=feuler(f,t0,b,y0,h)
n=floor((b-t0)/h)+1;
m=length(y0);
tvals=zeros(1,n+1);
yvals=zeros(m,n+1);
index=[0:1:n];
tvals=t0+h*index;
yvals(:,1)=y0;
for i=2:n+1
yvals(:,i)=yvals(:,i-1)+h*feval(f,tvals(i-1),yvals(:,i-1));
end
Esta subrutina puede ser usada exactamente como antes para el caso de una ecuacin. Veamos un
ejemplo numrico de un sistema de ecuaciones y como lo resolvemos con feuler.
Ejemplo 4: Considere el siguiente modlo simplificado del corazn donde x(t) representa el largo de
una cierta fibra musculo del corazn y s(t) representa un estimulo aplicado:

Aqui y p son parmetros del modlo. El lado derecho del sistema lo evaluamos mediante la
siguiente subrutina en MATLAB:
function f=heart(t,y);
%
% y(1) representa x(t) y y(2) representa s(t)
%
global mheart pheart
f=zeros(2,1);
f(1)=mheart*(-y(2)-y(1)^3/3+pheart*y(1));
f(2)=y(1)/mheart;
Note el uso de la instruccin global que declara las variables mheart y pheart como variables
globales las cuales son accesibles por cualquier rutina o programa con una instruccin global igual.
Usamos las condiciones iniciales x(0)=0, s(0)=-1 y los valores de =0.5 y p=1. Aproximamos la
http://uprhmate01.upr.clu.edu/~pnm/notas4061/odes1/odes1.htm (7 de 9) [04/08/2002 0:47:40]

Solucin Numrica de Ecuaciones Diferenciales Ordinarias - Problema de Valor Inicial

solucin con la siguiente secuencia de instrucciones en MATLAB:


global mheart pheart
mheart=0.5;
pheart=1;
[t,y]=feuler('heart',0,10,[0,-1]',0.1);
plot(t,y(1,:),t,y(2,:))
xlabel('t');ylabel('x(t),s(t)');
title('Modelo del corazon: x(t) en amarillo, s(t) en violeta.')
lo cual produce la siguiente grfica:

No comentamos sobre las interpretaciones fsicas de estas graficas pero si mencionamos que el
mtodo de Euler es efectivo en este problema ya que las soluciones no varian muy rapidamente en el
intervalo en cuestin. <>
Para resolver ecuaciones diferenciales de orden mayor de uno hacemos primero un cambio de
coordenadas para convertir la ecuacin dada a un sistema de primer orden. Luego usamos el mtodo
de Euler para sistemas segn descrito arriba.

http://uprhmate01.upr.clu.edu/~pnm/notas4061/odes1/odes1.htm (8 de 9) [04/08/2002 0:47:40]

Solucin Numrica de Ecuaciones Diferenciales Ordinarias - Problema de Valor Inicial

Ejemplo 5: Considere el problema de valor inicial para la siguiente ecuacin de orden dos:

Haciendo la sustitucin cambio de variables x1(t)=x(t), x2(t)=x'(t), entonces el problema de arriba es


equivalente al siguiente sistema de primer orden:

Este sistema puede resuelto de forma similar al que resolvimos en el Ejemplo 4. <>
Ejercicios:
1. La ecuacin diferencial que modela el proceso de desintegracin de un material radioactvo
esta dada por:

donde k es una constante caracteristica del istopo radioactvo. Para x0=50 y k=0.05 resuelva
este problema de valor inicial en el intervalo [0,10] con h=1,0.1,0.01. Compare sus resultados
con la solucin exacta que es x(t)=50 exp(-0.05t).

a un
2. Convierta la ecuacion diferencial de orden dos dada por
sistema de orden uno. Resuelva el sistema resultante en el intervalo [1,4] si las condiciones
iniciales son x(1)=1/2, x'(1)=-1/2. La solucin exacta en este problema es x(t)=1/(1+t2).

http://uprhmate01.upr.clu.edu/~pnm/notas4061/odes1/odes1.htm (9 de 9) [04/08/2002 0:47:40]

Mtodos Runge-Kutta

Mtodos Runge-Kutta
La convergencia lenta del mtodo de Euler y lo restringido de su regin de estabilidad absoluta nos
lleva a considerar mtodos de orden de convergencia mayor. En clase mencionamos que en cada paso el
mtodo de Euler se mueve a lo largo de la tangente de una cierta curva que esta "cerca" a la curva
desconocida o buscada. Los mtodos Runge-Kutta extienden esta idea geomtrica al utilizar varias
derivadas o tangentes intermedias, en lugar de solo una, para aproximar la funcin desconocida. Los
mtodos Runge-Kutta ms simples se obtienen usando dos de estas derivadas intermedias.
Mtodos Runge-Kutta de dos Evaluaciones: Aqui buscamos mtodos o frmulas numricas de la
forma:

Note que apesar de que en la frmula se perciven tres f's, el mtodo envuelve solo dos evaluaciones ya
que dos de estas f's tienen los mismos argumentos. La idea ahora es determinar los parmetros
de modo que el mtodo tenga orden de convergencia lo ms alto posible. Un anlisis del
error local de esta frmula basado en el Teorema de Taylor muestra que el orden ms alto que puede
tener esta frmula es dos y que esto puede ocurrir si y solo si:

cumplen con estas condiciones, entonces ej=y(tj)-yj=O(h2) para toda j. Algunos


Es decir si
casos especiales de estas frmulas son:
1. Mtodo de Heun: Aqui se toma

de modo que el mtodo reduce a:

Para propositos de hacer clculos es mejor escribir esta frmula como:

2. Mtodo del Punto Medio: Aqui se toma

de modo que el mtodo reduce a:

http://uprhmate01.upr.clu.edu/~pnm/notas4061/rungek/rungek.htm (1 de 7) [04/08/2002 0:48:44]

Mtodos Runge-Kutta

Veamos ahora una implementacin en MATLAB del mtodo de Heun. Note que en el ciclo "for"
tenemos exactamente dos evaluaciones de "f". Tenemos pues:
function [tvals,yvals]=heun(f,t0,b,y0,h)
n=floor((b-t0)/h)+1;
m=length(y0);
k1=zeros(1,m);
tvals=zeros(n+1,1);
yvals=zeros(n+1,m);
index=[0:1:n]';
tvals=t0+h*index;
yvals(1,:)=y0;
h2=h/2;
for i=2:n+1
k1=feval(f,tvals(i-1), yvals(i-1,:));
yvals(i,:)=yvals(i-1,:)+h*k1;
yvals(i,:)=yvals(i-1,:)+h2*(k1+feval(f,tvals(i),yvals(i,:));
end
Ejemplo 1: Consideremos aqui las ecuaciones diferenciales que se obtienen de las leyes de Newton
aplicadas al problema de dos cuerpos. Suponemos aqui que uno de los cuerpos es mucho ms masivo
que el otro de modo que su movimiento es descartable, e.g., la tierra y un satlite. Suponemos tambin
que el movimiento es en un plano. Como la fuerza gravitacional es inversamente proporcional a la
distancia entre los cuerpos, tenemos tomando todas las constantes envueltas como uno, que la posicin
(x(t),y(t)) del cuerpo pequeo esta dada por el sistema de ecuaciones diferenciales:

Tomamos como condiciones iniciales


este es un sistema de orden dos, tenemos que hacer la sustitucin:

lo cual tranforma el sistema de arriba al siguiente sistema de orden uno:

http://uprhmate01.upr.clu.edu/~pnm/notas4061/rungek/rungek.htm (2 de 7) [04/08/2002 0:48:44]

. Debido a que

Mtodos Runge-Kutta

Definimos ahora la siguiente subrutina en MATLAB que evalua el lado derecho de este sistema:
function f=satelite(t,u)
f=zeros(1,4);
denom=(u(1)^2+u(3)^2)^1.5;
f(1)=u(2);
f(2)=-u(1)/denom;
f(3)=u(4);
f(4)=-u(3)/denom;
Ahora calculamos y graficamos la solucin del problema de valor inicial con la siguiente secuencia de
instrucciones en MATLAB. Note que graficamos el conjunto de puntos (x(t),y(t)) para los t's generados
en lugar de (t,x(t)) y (t,y(t)). Tenemos pues:
[t,y]=heun('satelite',0,10,[0.4,0,0.1,2],0.01);
plot(y(:,1),y(:,3))
xlabel('X');ylabel('Y');
title('Solucion particular del problema de dos cuerpos')

http://uprhmate01.upr.clu.edu/~pnm/notas4061/rungek/rungek.htm (3 de 7) [04/08/2002 0:48:44]

Mtodos Runge-Kutta

Note que la curva es efectivamente una elipse aunque esto se acentua en la grfica por que los ejes
tienen unidades de largo distintas. <>
Mtodos Runge-Kutta de ms de dos Evaluaciones: Aunque el mtodo de Heun fu bastante efectivo
en el ejemplo anterior, nos interesa encontrar mtodos de orden an ms alto que no requieran h's muy
pequeas. Vimos aqui que un mtodo Runge-Kutta de dos evaluaciones intermedias genera un mtodo
de orden dos. Es razonable pensar que tres o cuatro evaluaciones intermedias producen mtodos RungeKutta de ordenes tres y cuatro respectivamente. Este el caso pero ya para cinco evaluaciones no
obtenemos necesariamente mtodos Runge-Kutta de orden cinco pero si con seis evaluaciones. Un
ejemplo de un mtodo Runge-Kutta de orden cuatro de cuatro evaluaciones es el llamado mtodo RungeKutta clsico definido por las frmulas:

http://uprhmate01.upr.clu.edu/~pnm/notas4061/rungek/rungek.htm (4 de 7) [04/08/2002 0:48:44]

Mtodos Runge-Kutta

MATLAB cuenta con dos subrutinas intrinsecas para la solucin de problemas de valor inicial: ode23
y ode45. ode23 utiliza una combinacin de un mtodo Runge-Kutta de orden dos con otro de orden
tres. La combinacin de estos mtodos permite el poder estimar el error en la aproximacin numrica en
cada paso y asi la subrutina puede ajustar el largo de paso "h" en forma dinmica para mantener el error
global menor de una tolerancia especificada por el usuario. Estos mtodos se dicen que son adaptativos
de largo de paso variable. La subrutina ode45 es similar a ode23 pero utiliza una combinacin de
mtodos de ordenes cuatro y cinco de cinco y seis evaluaciones respectivamente. La secuencia de
llamada de ambas rutinas es idntica y requiere del nombre de la funcin f, los tiempos inicial y final, la
condicin inicial, la tolerancia para los computos, y un indicador de si la rutina imprime o no los
resultados calculados en la ventana de MATLAB. Normalmente este indicador se toma como cero que
es su valor por omisin. Por ejemplo un computo similar al del Ejemplo 1 lo podemos realizar
remplazando la llamada a Heun por:
[t,y]=ode23('satelite',0,10,[0.4,0,0.1,2],0.0001);
donde la solucin se calcula con un error global de 0.0001. La misma instruccin con ode45 produce la
grfica:

Las esquinas en esta grfica se deben a que como ode45 usa un mtodo de orden mayor, esto le permite
dar pasos ms largos en "t" lo que al graficar produce las esquinas. Este trazado lo podemos mejorar
usando splines cbicos como sigue:
http://uprhmate01.upr.clu.edu/~pnm/notas4061/rungek/rungek.htm (5 de 7) [04/08/2002 0:48:44]

Mtodos Runge-Kutta

[t,y]=ode45('satelite',0,10,[0.4,0,0.1,2],0.0001);
tt=linspace(0,10,200);
xx=spline(t,y(:,1),tt);
yy=spline(t,y(:,3),tt);
plot(xx,yy)
xlabel('X');ylabel('Y');
title('Solucion particular del problema de dos cuerpos con ode45 (grafica con splines)')
lo cual resulta en la mejor grfica:

Ejercicios:
1. Resuelva el siguiente problema de valor inicial usando las subrutinas ode23 o ode45:

http://uprhmate01.upr.clu.edu/~pnm/notas4061/rungek/rungek.htm (6 de 7) [04/08/2002 0:48:44]

Mtodos Runge-Kutta

donde

Examine los efectos en los clculos de la tolerancia especificada por el usuario. Grafique las
soluciones calculadas como funciones de "t" y en el plano x-y.
2. Las ecuaciones de Lorenz estan dadas por el siguiente sistema de ecuaciones diferenciales:

donde s, r, b son parmetros del sistema. Usando ode45 con una tolerancia de 0.000005 resuelva
las ecuaciones de Lorenz para s=10, r=126.52, b=8/3 con las condiciones iniciales x(0)=-7.69,
y(0)=-15.61, z(0)=90.39. Grafique las soluciones calculadas como funciones de t. Grafique las
soluciones x(t), z(t) en el plano x-z. Para los valores de s, r, b dados el sistema de Lorenz posee
lo que se conoce como comportamiento "catico".

http://uprhmate01.upr.clu.edu/~pnm/notas4061/rungek/rungek.htm (7 de 7) [04/08/2002 0:48:44]

Un Vistaso a MATLAB

Un Vistaso a MATLAB
Definiendo Matrices
Si queremos definir la siguiente matriz en MATLAB:

entonces escribimos:
A=[1 2 3 4;5 6 7 8;9 10 11 12;13,14,15,16];
(El simbolo "" denota el prompt de MATLAB y no se escribe al entrar instrucciones). El ";" al final
de la instruccin omite el "eco" o salida a la pantalla. La instruccin
x=4:-1:1
general el vector fila x=[4,3,2,1]. La instruccin
C=A(3:4,1:3);
se refiere a la submatriz

de A. Tambin D=A([1,3],3:4) genera

Matrices Especiales
En MATLAB podemos generar matrices especiales con las siguientes instrucciones:

http://uprhmate01.upr.clu.edu/~pnm/notas4061/intro_matlab/index.htm (1 de 10) [04/08/2002 0:49:40]

Un Vistaso a MATLAB

rand(n,m) - matriz nm de entradas aleatorias entre 0 y uno.


eye(n) - matriz identidad nn.
zeros(n,m) - matriz cero de tamao nm.
ones(n,m) - matriz nm con todas las entradas uno.
Combinando estas instrucciones podemos generar matrices bastante complicadas. Por ejemplo, la
instruccin
E=[eye(2),ones(2,3);zeros(2),[1:3;3:-1:1]]
genera la matriz

La instruccin round(x) redondea "x" al entero ms cercano a "x". Podemos combinar funciones en
MATLAB. Por ejemplo, round(10*rand(4)) genera una matriz con entradas aleatorias entre 0 y 10.

Aritmtica de Matrices
Considere las siguientes matrices:

Entonces las operaciones A*B (producto matricial de A con B), A+B (suma de A mas B), 3*A
(multiplicacin escalar de 3 por A) tienen los siguientes resultados:
A*B
ans =
16 19 13
10 11 7
A+B
??? Error using ==> +
http://uprhmate01.upr.clu.edu/~pnm/notas4061/intro_matlab/index.htm (2 de 10) [04/08/2002 0:49:40]

Un Vistaso a MATLAB

Matrix dimensions must agree.


3*A
ans =
12 15
6 9
Note que MATLAB "anuncia" que A+B no se puede calcular. Las operaciones A' (transpuesto de A),
inv(A) (inversa de A), y A^3 (esto es A*A*A) tienen como resultados:
A'
ans =
42
53
inv(A)
ans =
1.5000 -2.5000
-1.0000 2.0000
A^3
ans =
174 235
94 127
Si precedemos las operaciones matriciales "*", "^" con el punto ".", entonces estas se hacen termino a
termino. Por ejemplo A.*C y A.^2 generan:
A.*C
ans =
-4 10
4 12
A.^2

http://uprhmate01.upr.clu.edu/~pnm/notas4061/intro_matlab/index.htm (3 de 10) [04/08/2002 0:49:40]

Un Vistaso a MATLAB

ans =
16 25
4 9

Solucin de Sistemas Lineales


Considere le sistema lineal

Definimos la matriz de coeficientes y el lado derecho por las instrucciones:


A=[1 -2 3;4 1 -2;2 -1 4];
b=[1 -1 2]';
Note el transpuesto en b para hacerlo un vector columna. Vamos a resolver este sistema por tres
mtodos:

eliminacin Gaussiana
forma echelon reducida o mtodo de Gauss-Jordan
mtodo de la inversa

En el mtodo de Gauss-Jordan, luego de obtener la forma echelon de la matriz de coeficientes


aumentada, eliminamos tambin la parte de arriba de la matriz hasta producir una matriz donde las
columnas con unos, solo tienen un uno. Esto se conoce como la forma echelon reducida (ver texto).
Para comparar los tres mtodos utilizamos la instruccin flops de MATLAB que estima el nmero de
operaciones de punto flotante entre dos llamadas sucesivas a flops. Una llamada de la forma flops(0)
inicializa el contador de operaciones a cero. La sucesin de instrucciones:
flops(0)
x=A\b
x=
-0.0417
0.4167
0.6250

http://uprhmate01.upr.clu.edu/~pnm/notas4061/intro_matlab/index.htm (4 de 10) [04/08/2002 0:49:40]

Un Vistaso a MATLAB

flops
lleva a cabo eliminacin Gaussiana en el sistema de arriba y produce como resultado:
ans =
73
esto es, se necesitaron aproximadamente 73 operaciones de punto flotante (sumas, restas,
multiplicaciones divisiones) para resolver el sistema con eliminacin Gaussiana. Para el mtodo de
Gauss-Jordan tenemos:
flops(0)
rref([A b])
ans =
1.0000 0 0 -0.0417
0 1.0000 0 0.4167
0 0 1.0000 0.6250
flops
ans =
483
el cual requiere 483 operaciones de punto flotante. Finalmente el mtodo de la inversa se realiza con
la siguiente sequencia de instrucciones:
flops(0)
x=inv(A)*b
x=
-0.0417
0.4167
0.6250
flops
ans =
108
http://uprhmate01.upr.clu.edu/~pnm/notas4061/intro_matlab/index.htm (5 de 10) [04/08/2002 0:49:40]

Un Vistaso a MATLAB

el cual toma 108 operaciones. Vemos pues que eliminacin Gaussiana es el mejor de los tres mtodos
lo cual es cierto en general.
Usando MATLAB podemos estudiar la relacin entre la solubilidad del sistema Ax=b y la
nosingularidad de la matriz de coeficientes A. En clase vimos que el sistema Ax=b tiene solucin
nica para cualquier lado derecho b si y solo si la matriz A es nosingular. Qu sucede si A es
singular? Entonces Ax=b no tiene solucin? Si A es singular el sistema Ax=b puede tener solucin
para algunos b's pero de seguro hay al menos un b* para el cual Ax=b* no tiene solucin. Vamos a
genera una matriz singular con MATLAB:
A=round(10*rand(6));
A(:,3)=A(:,1:2)*[4 3]'
A=
2 5 23 9 7 3
0 8 24 8 9 6
7 0 28 5 8 8
7 1 31 1 3 10
9 5 51 7 0 4
4 7 37 4 7 2
(Como usamos la instruccin rand, el resultado de esta y cualquier secuencia de instrucciones que use
esta funcin de MATLAB, no siempre ser el mismo). La primera instruccin genera una matriz
aleatoria con entradas enteras entre 0 y 10, y con la segunda instruccin remplazamos la tercera
columna de A con cuatro veces la primera columna mas tres veces la segunda columna. La matriz
resultante es singular! (Explique esto sin calcular el determinante). Generamos ahora un lado derecho
arbitrario mediante la instruccin:
b=round(20*(rand(6,1)-0.5))
b=
10
4
5
3
-9
3
Esto genera una matriz 61 aleatoria con entradas enteras entre -10 y 10. Resolvemos el sistema Ax=b
calculando la forma echelon reducida de la matriz de coeficientes aumentada [A b]:

http://uprhmate01.upr.clu.edu/~pnm/notas4061/intro_matlab/index.htm (6 de 10) [04/08/2002 0:49:40]

Un Vistaso a MATLAB

rref([A b])
ans =
1040000
0130000
0001000
0000100
0000010
0000001

el sistema es inconsistente, i.e., no tiene solucin.


Como la ltima fila es de la forma
Recuerde que A es singular! Esto no quiere decir que Ax=b nunca tenga solucin. Si definimos
c=A*b, con el b de arriba digamos, el sistema Ax=c tiene solucin x=b (por qu?). De hecho si
calculamos la forma echelon reducida de [A c] tenemos:
c=A*b;
rref([A c])
ans =
1 0 4 0 0 0 30
0 1 3 0 0 0 19
0001003
0 0 0 0 1 0 -9
0000013
0000000
el cual denota un sistema consistente dependiente con soluciones:

donde x3 es arbitrario.

Funciones de Matrices
MATLAB posee una gran cantidad de funciones matriciales. De las ms comunes tenenmos:

min(A), max(A) - dan el mnimo y mximo respectivamente por columnas de A


sum(A), prod(A) - producen la suma y producto respectivamente por columnas de A
norm(A,p) - norma p de la matriz A donde p=1,2, inf
eig(A) - vector cuyos componentes son los valores propios de A

http://uprhmate01.upr.clu.edu/~pnm/notas4061/intro_matlab/index.htm (7 de 10) [04/08/2002 0:49:40]

Un Vistaso a MATLAB

det(A) - el determinante de A
inv(A) - la matriz inversa de A

Grficas
MATLAB provee excelentes funciones para grficas en dos, tres y cuatro dimensiones. Veamos un
par de ejemplos sencillos. Suponga que queremos trazar la grfica de la funcin

Esto lo podemos lograr con las instrucciones:


x=-5:.1:5;
y=x.^2.*exp(-x.^2);
plot(x,y)

La primera instruccin divide el intervalo [-5,5] en subintervalos de largo 0.1, la segunda instruccin
evala la funcin en los puntos de la particin, y finalmente graficamos los resultados con plot. La
http://uprhmate01.upr.clu.edu/~pnm/notas4061/intro_matlab/index.htm (8 de 10) [04/08/2002 0:49:40]

Un Vistaso a MATLAB

instruccin plot tiene opciones para cambiar patrones del trazado, poner titulos, etc.
Supongamos ahora que queremos dibujar la superficie:

Esto lo hacemos con la secuencia de instrucciones:


x=-5:.4:5;
y=x;
[X,Y]=meshgrid(x,y);
Z=X.^2.*exp(-Y.^2);
surf(X,Y,Z)

Las primeras dos instrucciones dividen los ejes de "x" y "y" en subintervalos de largo 0.4; la tercera
instruccin genera una rejilla en el conjunto [-5,5][-5,5] con cuadraditos de lados 0.4 como se ilustra
en la siguiente figura:

http://uprhmate01.upr.clu.edu/~pnm/notas4061/intro_matlab/index.htm (9 de 10) [04/08/2002 0:49:40]

Un Vistaso a MATLAB

La cuarta instruccin evalua la funcin en los puntos de la rejilla, y finalmente trazamos la superficie
con surf.

Referencias
1. MATLAB User's Guide, The MathWorks, Inc., Massachusetts, 1995.
2. The MATLAB Handbook, E. Part-Enander, A. Sjoberg, B. Melin, and P. Isaksson, AddisonWesley, New York, 1996.

http://uprhmate01.upr.clu.edu/~pnm/notas4061/intro_matlab/index.htm (10 de 10) [04/08/2002 0:49:40]

También podría gustarte