139
Notas MATE 4061 Notas de Análisis Numérico (MATE 4061) Por: Pablo V. Negrón Marrero Contenido: 1. Conceptos Básicos 2. Representación de Números 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 Interpolación y la Representación de Newton 2. Funciones Polinomiales por Pedazos - Splines 3. Interpolacion de Cuadrados Minimos 6. Diferenciación e Integración Numérica 1. Diferenciación Numérica - Métodos de Series de Taylor 2. Reglas del Trapezoide y Simpson 3. Análisis de Errores y Fórmulas Corregidas 4. Extrapolación de Richardson y Reglas de Cuadratura Gaussiana 7. Ecuaciones Diferenciales Numéricas - Problema de Valor Inicial 1. Método de Euler - Sistemas de Ecuaciones y Ecuaciones de Orden Mayor de Uno 2. Métodos 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, Addison- Wesley, 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 de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

  • Upload
    builiem

  • View
    220

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Notas MATE 4061

Notas de Análisis Numérico (MATE 4061)

Por: Pablo V. Negrón Marrero

Contenido:

1. Conceptos Básicos 2. Representación de Números 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 Interpolación y la Representación de Newton 2. Funciones Polinomiales por Pedazos - Splines 3. Interpolacion de Cuadrados Minimos

6. Diferenciación e Integración Numérica 1. Diferenciación Numérica - Métodos de Series de Taylor 2. Reglas del Trapezoide y Simpson 3. Análisis de Errores y Fórmulas Corregidas 4. Extrapolación de Richardson y Reglas de Cuadratura Gaussiana

7. Ecuaciones Diferenciales Numéricas - Problema de Valor Inicial 1. Método de Euler - Sistemas de Ecuaciones y Ecuaciones de Orden Mayor de Uno 2. Métodos 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, Addison-Wesley, 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]

pepegg
Page 2: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Notas MATE 4061

© Derechos Reservados por Pablo V. Negrón 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]

pepegg
Page 3: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Capitulo 1

Capitulo 1

Conceptos Básicos de Análisis Matemático

En este capitulo repasaremos algunos de los conceptos más importantes del cálculo que son esenciales en el estudio de métodos numéricos. Además discutiremos el resultado más fundamental para aproximar funciones ó para hacer estimados de errores: el Teorema de Taylor. Veremos también 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 Básicos

El primer resultado básico es el Teorema del Valor Medio para funciones. En palabras y en el contexto físico 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 algún instante de tiempo. Tenemos pues:

Teorema (1.1): (Teorema del Valor Medio para funciones) Sea continua y

diferenciable en (a,b) donde a,b son finitos. Entonces existe un número c en (a,b) tal que

(1.1)

Para intergrales tenemos también 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 función continua cambia de signo en un intervalo [a,b] entonces en algún 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 número estrictamente entre f(a) y f(b). Entonces existe un número 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]

Page 4: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Capitulo 1

El siguiente resultado nos provee de condiciones suficientes que garantizan que una ecuación nolineal como f(x,y)=0 se pueda resolver digamos para "x" en terminos de "y".

Teorema (1.4): (Teorema de la Función 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 número y una función continua y con derivada

continua tal que

(1.4)

El teorema dice que dadas las condiciones (1.3) podemos resolver la ecuación f(x,y)=0 para "x" en terminos de "y", i.e, , en un intervalo alrededor de y0. Si en (1.3) cambiamos a

, 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 cúal en este caso es obvio.

Teorema de Taylor

Un problema común es el de evaluar una función f(x) en un argumento x=a dado. Aunque esto parece un problema sencillo, la función f podria ser desconocida ó complicada para evaluar. Lo que buscamos pues es aproximar a f con una función g que sea más "fácil" de evaluar que f. Los polinomios de Taylor son una forma de hacer esto aunque veremos otras alternativas más 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]

Page 5: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

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

más n que cumple con las condiciones esta dado por

lo que se conoce como el polinomio de Taylor de grado a lo más 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 función 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]

pepegg
Page 6: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

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 gráfica que se muestra a continuación:

Note que el polinomio de grado dos aproxima mejor a f en el intervalo en cuestión pero la diferencia entre los polinomios y la función f (el error) aumenta según nos alejamos del centro a=0.

Queremos ahora de alguna forma cuantificar las observaciones del ejemplo anterior en cuanto al error de aproximación de los polinomios de Taylor. Tenemos pues:

Teorema (1.5) (de Taylor): Suponga que y sea . Sea Rn(x)=f(x)-pn(x) el

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

Page 7: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Capitulo 1

error en aproximar f con pn. Entonces

donde cx es un número entre a y x.

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

El error de aproximación esta dado por

donde cx esta entre cero y x. El caso especial x = ½ nos provee de una fórmula para aproximar el

número "e":

Note que

donde usamos que como c esta entre cero y ½, entonces ec < e < 3. Si queremos aproximar "e" con la fórmula 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>toln=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]

pepegg
Page 8: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Capitulo 1

endn

lo cual produce el siguiente resultado para t=6 de n = 10.

Ejemplo 3: Vamos a aproximar la función 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>toln=n+1;R=(pi/2)^n/gamma(n+1);endn

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

pepegg
Page 9: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

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 fórmula para la serie geométrica:

Esta fórmula se demuestra facilmente por inducción y en el caso tenemos que

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

Usando la fórmula 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]

pepegg
pepegg
Page 10: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Capitulo 1

donde usamos el Teorema del Valor Medio para integrales y cx es un número entre cero y x2. Esta

fórmula nos da un polinomio para aproximar log(1+x2) con la correspondiente fórmula del error.

Evaluación 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 cúal requiere de 5 multiplicaciones.

La tercera forma de evaluar el polinomio es lo que se conoce como el Método de Horner y corresponde exactamente al proceso de evaluación sintética que aprendimos en precálculo. En general para evaluar el polinomio p(x)=a0 + a1x + a2x2 + … + anxn tenemos

Método Número de Multiplicaciones

1 n(n+1)/2

2 2n-1

Horner n

Examinamos ahora en más detalles el método de Horner. Este se método se puede describir por las siguientes iteraciones: dado un número z

1. bn = an

2. Para i=n-1,…,0 3. bi=ai + z bi+1

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

pepegg
pepegg
Page 11: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Capitulo 1

Tenemos pues que p(z) = b0.

Demostración: Por inducción en "n" el grado del polinomio.

(Paso básico) Para n=1, p(x) = a0 + a1x, b1 = a1, b0 = a0 + z b1 = a0 + z a1 = p(z) lo cúal demuestra

que el resultado es cierto para n=1.

(Paso inductivo) Vamos a suponer que el resultado es cierto para cualquier polinomio de grado k≥1. Entonces para p(x)=a0 + a1x + a2x2 + … + ak+1xk+1 definimos

1. bk+1 = ak+1

2. Para i=k,…,0 3. 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 inducción que . Pero y el resultado es cierto para

polinomios de grado k+1 también.

El resultado queda pues establecido para cualquier n ≥1.

El método 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 más de un valor de

modo que la función 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:1pval=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]

pepegg
Page 12: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

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 gráfica:

Ejercicios

1. Considere la función en el intervalo [-1,1].

a. Calcule las formulas de ,i.e., los primeros cuatro polinomios de Taylor de

alrededor de .

b. Grafíque en el mismo sistema de coordenadas los cuatro polinomios.

c. Estíme gráficamente el error para .

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

pepegg
pepegg
Page 13: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

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]

pepegg
Page 14: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Capítulo 2

Capítulo 2

Representación de Números en la Computadora

En este capítulo estudiaremos como se representan los números en la computadora. Por limitaciones fisicas, los números solo se pueden representar con un número finito de cifras en la computadora. Al igual las operaciones aritméticas que se efectuan en la computadora no corresponden a las operaciones matemáticas exactas. Veremos pues como estas limitaciones en la representación de los números y las operaciones ariméticas afectan los computos y la propagación de errores.

Bases Numéricas y Cambios de Bases

Veamos primero las distintas formas de representar números en terminos de bases distintas. Por ejemplo el número 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 número 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 número. 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 representación binaria de la parte entera. Veamos

divisor dividendo cociente residuo

2 217 108 1

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

pepegg
pepegg
Page 15: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Capítulo 2

2 108 54 0

2 54 27 0

2 27 13 1

2 13 6 1

2 6 3 0

2 3 1 1

2 1 0 1

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 1

2(0.464)=0.928 0.928 0

2(0.928)=1.856 0.856 1

2(0.856)=1.712 0.712 1

2(0.712)=1.424 0.424 1

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

dos cálculos tenemos (217.732)10=(11011001.10111…)2.

En los números 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 métodos para cambiar de binario a hexadecimal y viceversa son extremadamente sencillos. Historicamente las bases binaria, hexadecimal, y octal han sido las más utilizadas para representar

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

pepegg
Page 16: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Capítulo 2

números en la computadora. Esto es básicamente por que el circuito electrico más básico 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 fácil de pasar de una base a otra hace que las bases binaria, hexadecimal, y octal sean utilizadas eficientemente para diseñar computadoras.

Números de Punto Flotante

Sea "x" un número 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 representación de punto flotante del número "x" se denota por fl(x) y consiste de (2.1) con alguna restricción en el número de cifras en y el tamaño de "e". Tenemos pues que

(2.2)

donde N,M son positivos y , . Los ai's se obtienen de alguna

forma a partir de . El número se conoce como la mantisa y "t" el número de cifras o

largo de mantisa. Si alguna operación aritmética 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 número más grande en el sistema es:

● el número más pequeño es:

● el número positivo "u" más pequeño tal que , llamado el epsilon de la máquina es

(¿por qué?)

La dos formas más 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]

pepegg
Page 17: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Capítulo 2

● Truncación: si entonces . Esto es truncamos a "t"

digitos ● Redondeo: en el caso , 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 truncación. También se puede verificar que como los errores en redondeo varian en signo, estadisticamente "en promedio" tienden a cancelarce. Esta cancelación no es tan probable con truncación. A pesar de estas ventajas la truncación es usada comunmente en el diseño de computadoras por lo fácil de su implementacion a nivel de "hardware".

Estandar de Aritmética de Punto Flotante de la IEEE

La gran mayoria de las computadoras construidas en los últimos quince años utilizan lo que se conoce como el estandar de aritmética de punto flotante de la IEEE. Esto uniformizó los procesos de representación de números en computadoras distintas facilitando asi las comparaciones y análisis de errores. En este estandar y el flotante de un número tiene la forma:

(2.3)

donde "f" es ahora la mantisa y satisface y se representa con t cifras binarias. Los valores usados para t y e son como sigue:

● en presición 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 presición 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]

pepegg
pepegg
Page 18: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Capítulo 2

La presición sencilla economiza memoria pero no es mucho más rapida que la presición doble en las computadoras modernas. La distribución de los números de punto flotante en la recta numérica es una nouniforme. De hecho para un exponente "e" dado, los números 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 números de punto flotante de este sistema los podemos enumerar en la siguiente tabla:

1+f \ e -2 -1 0 1 2 3

1.00 ¼ ½ 1 2 4 8

(1.01)2=1.25 5/16 5/8 5/4 5/2 5 10

(1.10)2=1.50 3/8 ¾ 3/2 3 6 12

(1.11)2=1.75 7/16 7/8 7/4 7/2 7 14

Si ordenamos estos números en forma ascendente obtenemos:

Podemos observar aqui que la densidad de los números de punto flotante disminuye con su tamaño. Podemos también observar esto gráficamente en la siguiente figura:

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

pepegg
Page 19: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Capítulo 2

El número positivo más grande en el estandar de la IEEE esta dado por:

Este número se denota en MATLAB por realmax. Cualquier resultado numérico que produsca un número 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 presición doble. El número Inf satisface las relaciones 1/Inf=0 y Inf+Inf=Inf.

El correspondiente número positivo más pequeño es:

y se denota en MATLAB por realmin. Cualquier resultado numérico que produsca un número 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]

pepegg
Page 20: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Capítulo 2

El epsilon de la máquina esta dado en este sistema por 2-t y se denota en MATLAB por eps. Este número corresponde al incremente de los números entre 1 y 2 en el sistema de punto flotante. eps corresponde al error relativo (ver definición más adelante) minimo posible en cualquier computo numérico en el sistema de punto flotante. Toda operación aritmética en la computadora o la representación de punto flotante de un número, 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 presición doble:

Número Signo Exponente Mantisa

realmax 0 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 0 000 0000 0001 (exponente mas pequeño antes de underflow)

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000

-realmin 1 000 0000 0001 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000

eps 0 011 1100 1011 (-52+1023) 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000

0 0 000 0000 0000 (exponente de underflow) 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000

1 0 011 1111 1111 (0+1023) 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000

realmin/2 0 000 0000 0000 (situación de underflow) 1000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000

Propagación 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]

pepegg
Page 21: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Capítulo 2

Como vimos antes, el uso de un número finito de cifras en la representación de punto flotante introduce errores de representación. Aún cuando los números en cuestión se puedan representar en forma exacta en la computadora, estos podrián contener error, por ejemplo si son datos experimentales. Queremos ver como estos errores en los datos se propagan al usar las operaciones aritméticas usuales o más general al evaluar funciones.

Denotamos por xt el valor real o exacto de una cierta cantidad y xa una aproximación de xt obtenida

experimentalmente ó al truncar xt para representarlo en la computadora. Definimos los errores absolutos

y relativos respectivamente en xa como aproximación 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 aproximación de xt.

Ejemplo 1: Si tomamos xt=exp(1) y xa=2.718, tenemos que Error(xa)=2.8183e-004 y Rel(xa)=1.0368e-

004.

Uno de los ejemplos más comunes de la propagación de errores es en el fenomeno conocido como perdida de cifras significativas. Este tipo de situación se da cuando algún cálculo numérico envuelve la resta de dos cantidades similares ó en el cálculo de un número 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 cálculo de la función 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. ¿Cúal 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 situación similar ocurre al usar la fórmula cuadrática. En particular

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

pepegg
Page 22: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Capítulo 2

considere la ecuación x2+bx+c/4=0 donde b>0 y c es mucho más pequeño que b. Entonces como el

discriminante , vamos a tener cancelación de cifras al calcular la raiz con el "+" en la

fórmula cuadrática. Aqui nuevamente una racionalización de la fórmula problemática resuelve el asunto. Si b<0, la raiz problemática 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 función 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 fórmula aproximada.

Ejemplo 4: Otro caso común de cancelación de cifras significativas ocurre en el cálculo de un número 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+35x3-21x2+7x-1. El siguiente código 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]

pepegg
Page 23: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Capítulo 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 gráfica suave de un polinomio aparece altamente oscilatoria y de caracter aparentemente aleatorio. Esto se debe a la cancelación severa de cifras significativas en el cálculo donde el resultado final es aproximadamente cero y se toman sumas y diferencias de números del tamaño de

. El polinomio de este ejemplo corresponde a la forma expandida de (x-1)7 donde graficamos cerca de x=1. Si cálculamos con la fórmula sin expandir no ocurre el problema de cancelación de cifras pero claro lo importante aqui es ilustrar el fenómeno.

Propagación de Errores - Evaluación de Funciones

En los ejemplos anteriores la perdida de cifras significativas se debe primordialmente al uso de un número finito de cifras en los cálculos numéricos. Queremos estudiar ahora el otro aspecto, esto es, suponiendo que se hace uso de un número infinito de cifras en los cálculos, ¿cómo la función ó fórmula 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]

pepegg
Page 24: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Capítulo 2

Suponga que queremos evaluar una cierta función f (x) en un argumento cuyo valor exacto es xt.

Suponga que xa es una aproximación de xt. ¿Cómo 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 aproximación de xt. Usando el Teorema del Valor Medio (cf. Xxx)

podemos escribir

para algún c entre xa y xt. Dividiendo por f(xt) en ambos lados podemos obtener la siguiente fórmula

para los errores relatívos:

Esta fómula nos indica que el número

actua como un factor de magnificación para el error relativo en xa. K se denomina como el número de

condición. Si suponemos que el error absoluto en xa como aproximación de xt es pequeño, podemos

aproximar c y xt por xa y tenemos que

(2.4)

Ejemplo 5: Suponga que y que xa=0.0025 con un error relatívo de 10-4. Entonces

es una aproximación del valor exacto f(xt) con un error relativo de

En este ejemplo hay que tener cuidado porque la aproximación (2.4) del factor de magnificación K, deteriora según nos acercamos a cero.

Si f es una función 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]

Page 25: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Capítulo 2

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

Ejemplo 6: Queremos cálcular la distancia focal f de un lente usando la fórmula

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

pues que

correcto a seis cifras. Este cálculo 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

Propagación de Errores en las Funciones Aritméticas

Vamos a considerar ahora los efectos en la propagación de errores en las funciones aritméticas de la computadora. Esto es consideramos ambas fuentes de error: el uso de un número finito de cifras en los cálculos y como la función en si propaga los errores en los datos.

Las funciones aritméticas 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 operación aritmética correspondiente según se cálcula en la computadora.

Vamos a suponer que corresponde a la operación exacta pero truncada a la presición de la máquina. Esto es

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

Page 26: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Capítulo 2

(2.5)

Queremos estimar el error

Pero podemos escribir

(2.6)

Los dos terminos de la derecha de esta ecuación corresponden a el error propagado por la operación exacta debido a los errores en xa y ya, mientras que el segundo termino corresponde a el error causado

por el uso de la operación aproximada . Por el Teorema (2.1) y la hipotesis (2.5) tenemos que

donde esta acotado por el epsilon de la máquina. De aqui que

De aqui que de modo que el termino del error en (2.6) por la operación aritmética

aproximada de la computadora es del orden del epsilon de la máquina. El termino del error propagado en (2.6) es pues el más significativo y su comportamiento depende de la operación aritmética en cuestión. 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 y los valores de xa, ya. Podemos más aún calcular el

error relativo en xaya como sigue:

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

Page 27: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Capítulo 2

de donde tenemos que si Rel(xa) y Rel(ya) son pequeños, entonces Rel(xaya) será pequeño y se puede

aproximar por

Decimos pues que la multiplicación es una operación estable. En forma similar se demuestra que

obteniendo asi que la división es también una operación estable. Para la suma y la resta la situación es distinta. Es fácil ver que

que es pequeño dado que lo son. Pero para el error relativo tenemos que

el cual puede ser bien grande aunque sean pequeños si . Este es el fenómeno de perdida

de cifras significativas que vimos anteriormente.

Sumatorias

En esta sección estudiamos el problema de sumar muchos números en la computadora. Como cada suma introduce un error, proporcional al epsilon de la máquina, queremos ver como estos errores se acumulan durante el proceso. El análisis que presentamos generaliza al problema del cálculo de productos interiores.

El problema es pues cálcular la sumatoria

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

Page 28: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Capítulo 2

usando aritmética 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):

Demostración: Procedemos por inducción en el número de terminos en la sumatoria.

1. Paso básico: Aqui lo cúal

concide con la fórmula del teorema. 2. Paso inductivo: Suponemos que el resultado es cierto para n = m, i.e.,

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

lo cual es el resultado para n = m+1. 3. Por el Principio de Inducción Matemática, el resultado del teorema es cierto para toda n≥2.

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

Page 29: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Capítulo 2

Como los εi's son pequeños, 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 núeros más pequeños primero y luego los grandes. Note pues que la suma no es una operación conmutativa en la computadora.

Un análisis similar pero más complicado matemáticamente se puede hacer para el producto interior

Note que en el análisis de arriba no se tomaron en consideración posibles errores en los datos ai's. Estos

efectos se pueden incluir también en el análisis. (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]

Page 30: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Capítulo 2

en el orden de la siguiente figura (para

Obtenga los estimados de los errores "forward" y "backward" para este cómputo.

2. El polinomio se evalúa en un sistema de punto flotante mediante la regla

de Horner. Muestre que el valor calculado satisface

donde es el epsilon de la máquina. (Los terminos se pueden descartar).

3. ¿Con cúanta precisión necesitamos conocer a π para poder calcular correcto a cuatro cifras?

4. Trace la gráfica de la función en el intervalo para

. Evalúe la función de dos formas:

❍ normal:

❍ anidada:

Observe cualquier diferencia o características particulares en las gráficas. Comente.

5. Considere la recurrencia donde .

Verfique que la solución exacta de esta recurrencia es:

Resuelva esta recurrencia en la computadora. Haga una gráfica de k vs . Explíque la

gráfica.

6. Sean donde . Defina

Suponiendo que 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]

Page 31: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Capítulo 2

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

Page 32: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Capítulo 3

Capítulo 3

Sistemas Lineales

Los sistemas de ecuaciones lineales son una de las herramientas matemáticas de modelaje más comunes en las aplicaciones. Una clasificación común de los sistemas lineales es por su tamaño. Los sistemas con O(100) variables se consideran pequeños y usualmente se utilizan los llamados métodos directos para su solución. Los sistemas de O(1000) ó más variables se consideran grandes o de gran escala y los métodos de solución más eficientes por lo general son los llamados métodos iterativos o indirectos. Otra clasificación 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 algorítmos mucho más eficientes que los convencionales.

La solución directa de sistemas de ecuaciones lineales conlleva esencialmente dos etapas: transformación del sistema original a otro sistema equivalente más "simple" y luego la solución del nuevo sistema equivalente. La transformación del sistema original a uno más simple toma muchas formas la más común de ellas siendo el proceso de Eliminación Gaussiana. En este método, en su forma básica, 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 Básico y Notación

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]

Page 33: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Capítulo 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.

¿Cúando tiene (3.1) solución 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. El sistema tiene solución que es única para todo lado derecho b. b. El sistema tiene por lo menos una solución para todo lado derecho b. c. El sistema homogeneo asociado tiene x=0 como única solución. d. det(A) ≠ 0 e. A es invertible

Eliminación Gaussiana

Vamos ahora a estudiar el método más básico y a la ves más importante para la solución directa de

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

Page 34: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Capítulo 3

sistemas lineales. Primero ilustramos el método con un ejemplo y despúes lo generalizamos.

Ejemplo 2: Considere el sistema de ecuaciones siguiente:

Podemos resolver esto mediante eliminación Gaussisana como sigue:

Con este último sistema equivalente podemos obtener la solución sustituyendo para atrás:

a.

b.

c.

Vamos a generalizar este ejemplo a un sistema 3×3 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]

Page 35: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Capítulo 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]

Page 36: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Capítulo 3

Paso 3: Hacemos ahora la sustitución para atrás para obtener la solución. Suponemos aqui que

:

Pasamos ahora al caso general del sistema:

Primero pasamos por la etapa de eliminación. 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]

Page 37: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Capítulo 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 solución del sistema haciendo sustitución para atrás:

(3.8)

Las fórmulas (3.5), (3.7), (3.8) definen el Método de Eliminación Gaussiana en su forma básica. Las formulas (3.5) definen la parte de eliminación del método mientras que (3.8) nos da la sustitución para atrás.

Antes de entrar en las variantes de el método básico vamos a hacer un estudio de la cantidad de operaciones envueltas en el método. Esto se conoce como un conteo operacional. Examinando las

fórmulas para los en (3.5) podemos construir la tabla siguiente:

Paso Sumas Multiplicaciones Divisiones

1 (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]

Page 38: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Capítulo 3

2 (n-2)2 (n-2)2 n-2

n-1 1 1 1

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

donde usamos las fórmulas

Es costumbre contar las operaciones de multiplicación y división juntas. De modo que la tabla de arriba la podemos resumir diciendo que en la parte de eliminación del método de eliminación Gaussiana el total de:

Sumas y Restas =

Multiplicaciones y Divisiones =

Las fórmulas para los en (3.5) se conocen como la modificación del lado derecho. Estas

conllevan:

Sumas y Restas = n-1 + (n-2) + … + 1 =

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

Las fórmulas (3.8) de la sustitución para atrás 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]

Page 39: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Capítulo 3

Multiplicaciones y Divisiones = 1 + 2 + … + n =

Combinando todos los totales parciales hasta ahora obtenemos que el proceso completo de eliminación 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 más tiempo computacional. Observe también que la parte de eliminación es la que contribuye el termino proporcional a n3. La modificación del lado derecho y la sustitución para atrás 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 eliminación debe hacerse una sola ves.

Al derivar las fórmulas (3.5), (3.7), (3.8) asumimos que los pivotes . Si por el contrario algún

, entonces podemos argumentar matemáticamente que algún 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 pequeño, aunque distinto de cero, puede causar que los efectos de redondeo debido a la aritmética finita de la computadora se propagen rápidamente.

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]

Page 40: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Capítulo 3

De donde obtenemos que z = 1, y = 0, x = 0.6667. ¡La solución exacta del sistema es x=½, y=¾, z=1!

Para evitar el problema de pivotes distintos de cero pero pequeños usamos lo que se denomina como pivoteo parcial. Esto es, definimos el indice i0 por:

(3.9)

Si i0≠k, entonces intercambiaamos las filas i0 y k. Note que estamos haciendo el pivote máximo

en valor absoluto. De esta forma los multiplicadores mik satisfacen

lo cúal es lo que ayuda con la propagación 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 i0≠k ó j0≠k respectivamente. Esto se conoce

como pivoteo total y se puede demostrar que es más 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]

Page 41: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Capítulo 3

propagación de errores. Pero el cálculo del máximo en (3.10) es mucho más costoso que en (3.9) por lo que en la practica se prefiere el pivoteo parcial. Además se ha observado en pruebas usando matrices generadas aleatoriamente, que la diferencia entre ambos métodos no es significativa en terminos de la propagación del error.

Cálculo 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 eliminación de A la hacemos una ves lo cual requiere (1/3)n3 operaciones aproximadamente. La modificación del lado derecho y la sustitución para atrás 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 fórmulas que envuelven inversos de matrices se pueden rescribir en terminos de sistemas lineales intermedios. Por el conteo operacional de arriba, las fórmulas con los sistemas lineales son preferibles ya que la solución 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 aplicación de esta regla. Supongamos que desamos calcular la expresión

donde c, b son vectores en y A es n×n. Si calculamos A-1, luego multiplicamos por b y

finalmente el producto interior con c tenemos aproximadamente

Cálculo A-1 (4/3)n3

Multiplicación A-1 por b n2

Producto interior con c n

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]

Page 42: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Capítulo 3

Si en lugar de esto calculamos α mediante:

● Halle la solución x del sistema Ax=b

● Calcule

un análisis similar al de arriba nos da aproximadamente (1/3)n3+n2+n lo cual es mucho mejor que la fórmula directa.

Factorización LU de una Matriz

Para discutir la factorización 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 añade en ambos casos si en adición 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 n×n nosingular. Defina las matrices L y U como arriba. Entonces si no se hace pivoteo en el proceso de eliminación Gaussiana, tenemos que A=LU.

Demostración: 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]

Page 43: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Capítulo 3

Si i ≤ j, tenemos que

Usando las fórmulas (3.5) y la definición de U podemos escribir esto como

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

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

Ejemplo 5: Para la matriz

tenemos que mediante eliminición Gaussiana

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

Page 44: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Capítulo 3

Si definimos ahora

tenemos que A=LU.

Dado que A=LU, el sistema Ax=b se puede escribir como LUx=b. La solución del sistema Ax=b se puede ver entonces en tres etapas:

1. (Eliminación) Calcular la factorización A=LU. 2. (Modificación del lado derecho) Resolver el sistema triangular inferior Lg=b para el vector g. 3. (Sustitución 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 solución 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]

Page 45: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Capítulo 3

Ahora Ux=g nos da la solución del sistema original:

Variantes del Método de Eliminación Gaussiana

Vamos ahora a discutir dos métodos alternos para calcular la factorización LU de una matriz pero que aprovechan alguna estructura particluar de la matriz. El primero de ellos es la Factorización de Cholesky que se usa para matrices simétricasy positivas definidas. El otro método aprovecha la estructura escasa de la matriz en el caso que esta sea tridiagonal.

Factorización de Cholesky

Una matriz A es simétrica si At=A. Decimos que A es positiva definida si xtAx>0 para todo x≠0. Se puede demostrar que una matriz simétrica es positiva definida si y solo si todos sus valores propios son positivos. También se puede demostrar que existe una matriz triangular inferior L tal que

A = L Lt

lo cual se conoce como la factorización de Cholesky de A. De hecho las entradas de L=(lij) de pueden

calcular mediante las fórmulas:

1. Para i=1,2,…,n

a.

b. Para j=1,2,…,i-1 (3.12)

a.

Estas fórmulas 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]

Page 46: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Capítulo 3

entradas correspondientes de A. Un conteo operacional de estas fórmulas muestra que el total de operaciones es aproximadamente (1/6)n3, i.e., la mitad que en eliminación Gaussiana básico. (Note sin embargo que hay que calcular n racies cuadradas). La ganacia aqui se debe a que se utilizó la simetría de la matriz A. Note también que como A es simétrica 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 tamaño n lo que da un total de 3n lugares de memoria en comparación con n2 para una matriz densa. Vamos ahora a resolver el sistema Ax=b aprovechando la estructura de ceros de A. Primero buscamos la factorización 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 fórmulas:

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

pepegg
Page 47: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Capítulo 3

1.

2. Para j=2,3,…n

a. (3.15)

b.

El total de multiplicaciones y divisiones en estas fórmulas es 2n-2 (compare con (1/3)n3 para eliminación Gaussiana básico). Para resolver Lg=b es fácil ver que las fórmulas son:

1.

2. Para j=2,3,…,n (3.16) a.

El total de multiplicaciones y divisiones en este cálculo es de n-1. Finalmente la solución de Ux=g se obtinene mediante las fórmulas:

1.

2. Para j=n-1,n-2,…,1 (3.17) a.

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]

pepegg
Page 48: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Capítulo 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]

Page 49: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Estabilidad de Sistemas Lineales

Estabilidad de Sistemas Lineales

En esta sección estudiaremos cúan sensitiva es la solución 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 solución calculada x. Primero estudiamos variaciones en b unicamente. Sea una aproximación de b y la solución 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. (desigualdad triangular)

2.

3.

4.

Tenemos ahora el siguiente teorema:

Teorema (3.3): Sea A una matriz nosingular. Sean x, las soluciones de los sistemas Ax=b y . Entonces

(3.20)

Demostración: De Ax=b y obtenemos que . Como A es nosingular,

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

. Dividiendo por en ambos lados obtenemos

Pero . 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]

Page 50: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Estabilidad de Sistemas Lineales

Si definimos , y el número de condición 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 es "grande". De lo

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

i.e., para toda matriz A. En MATLAB podemos calcular el número de condición de A con la instrucción cond(A). Este no es el número de condición en la norma (3.19) pero si en lo que se conoce como la norma dos de A. La instrucción rcond(A) nos da una aproximación del inverso de cond(A). rcond es mucho más rápida que cond para matrices de tamaño 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]

Page 51: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Estabilidad de Sistemas Lineales

(3.25)

Note que Hn es simétrica para toda n ≥ 1. Usando la instrucción de MATLAB, hilb(n) podemos

generar la matriz de Hilbert de orden n. La instrucción 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 más 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]

pepegg
pepegg
pepegg
pepegg
Page 52: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Estabilidad de Sistemas Lineales

produce el inverso exacto de H5. Podemos calcular el número de condición de H5 según 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 número compara con

cond(hilb(5))

ans =

4.7661e+005

y con

1/rcond(hilb(5))

ans =

6.9409e+005

Usando la instrucción flops de MATLAB podemos estimar que el computo con cond requiere de 937 operaciones de punto flotante mientras que el cálculo con rcond toma 296 operaciones.

Refinamiento Iteratívo - Método de Residuos

El Método de Eliminación Gaussiana produce la solución exacta de un sistema lineal en aproximadamente (1/3)n3 operaciones aritméticas donde n es el orden de la matriz de coeficientes A. En general, debido a que los cómputos se hacen con precisión finita, la solución obtenida por Eliminación Gaussiana no es la solución exacta del sistema (aunque esta cerca de serlo si el sistema es bien acondicionado). Veamos ahora un proceso iteratívo que toma la solución calculada por el Método de Eliminación Gaussiana y trata de mejorarla.

Sea x(0) la solución calculada por Eliminación Gaussiana y x la solución exacta del sistema, i.e.,

Ax=b. Para cualquier defina (error exacto) y

(los residuos). Entonces es fácil ver que , de modo que utilizando la factorización LU de

A ya calculada para obtener x(0), podemos resolver . Este sistema tampoco se puede

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

pepegg
pepegg
Page 53: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Estabilidad de Sistemas Lineales

resolver en forma exacta obteniendo asi una aproximación e(k) de . Definimos ahora

la cual debe ser una mejor aproximación 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 algorítmica tenemos:

1. Sea L y U los factores (aproximados) de A. 2. Sea x(0) la solución aproximada de Ax=b obtenida mediante Eliminación Gaussiana. 3. Para k=0, 1, 2, …

a. Calcule .

b. Resuelva .

c. Ponga .

Note que en el cálculo del residuo r(k) en el paso (3a) tenemos cancelación de cifras significativas ya que Ax(k)≈b. Para evitar esto el cálculo debe hacerse en presición extendida y el resto de los cálculos en presición normal. El ciclo en (3) se puede detener con un criterio como

(3.26)

lo que garantiza t cifras correctas en la solución calculada en caso de convergencia. Normalmente sin embargo el ciclo no debe ejecutarse más de dos veces.

Note que el cálculo de r(k) en (3a) requiere de n2 multiplicaciones con aproximadamente la misma cantidad de sumas y restas. Para la solución del sistema en (3b) se usa la factorización 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 solución exacta a tres cifras significativas es x1=15.2, x2=-18.7. Si resolvemos el sistema mediante

eliminación Gaussiana sin pivoteo y usando aritmética de tres cifras tenemos:

de donde obtenemos . El residual de esta solución calculada esta dado por:

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

Page 54: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Estabilidad de Sistemas Lineales

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

de donde obtenemos que . La solución mejorada es:

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

Propagación de Errores en la Solución de Sistemas Lineales

Cuando usamos Eliminación Gaussiana para resolver el sistema Ax=b en una computadora normal, ocurren errores de redondeo en cada paso del proceso debido a la aritmética finita de la máquina. Queremos estudiar como estos errores se propagan o acumulan durante todo el proceso y estimar el error en la solución calculada. En realidad al final del proceso de eliminación Gaussiana obtenemos un vector tal que . En el análisis de errores hacia atras nos interesa saber si es la solución exacta de otro problema que este cerca del problema original en cierto sentido.

Primero repasamos algunas de las fórmulas del Capítulo 2. En particular recordamos que las operaciones aritméticas de la computadora se asumen que corresponden a la operación exacta pero truncada al número de cifras de la máquina. Esto es si denota la operación aritmética 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 fórmulas repetidamente en (3.5), (3.8), similar al análisis que hicimos de la sumatoria de n numéros, obtenemos el siguiente resultado.

Teorema (3.5): Sea la solución calculada del sistema Ax=b mediante eliminación Gaussiana usando aritmética de punto flotante base β con una mantisa de t cifras. Sea u el epsilon de la máquina. Entonces es la solución 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]

Page 55: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Estabilidad de Sistemas Lineales

(3.28)

donde n es el tamaño de A y

(3.29)

El factor del teorema mide la razón de crecimiento de las entradas de la matriz de coeficientes según el método numérico 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 solución exacta de un problema que esta cerca del original. En este sentido es que decimos que Eliminación Gaussiana es un método estable. Esto no implica que esté cerca de la solución 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 número C (conjunto de los números complejos) es un valor propio de A si existe un vector tal que . Usando propiedades de determinantes, es fácil 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. También tenemos, por un teorema famoso de Galois, que el cálculo de los valores propios de una matriz no se puede hacer utilizando unicamente formulas algebraicas. Por tal razón el cálculo de los valores propios de matrices es un problema computacionalmente complejo y el poder estimar los mismos es de vitál importancia. El estimado más 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]

Page 56: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

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 localización de los valores propios de A. El Teorema de Gerschgorin va más 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 Di’s

y que si k de los discos de Gerschgorin se intersecan entre si y estan aislados de los otros discos, entonces su unión 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 calcúle la factorización LU de la matríz permutada.

2. Calcule la factorización LU de la matríz

usando aritmética finita con dos cifras decimales. El sistema donde

tiene la solución aproximada . Calcúle una

mejor aproximación 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]

Page 57: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Estabilidad de Sistemas Lineales

, b =

calcule una solución aproximada de Ax=b primero redondeando las entradas de b al entero más cercano y luego resolviendo el resultante. Verifique que la solución calculada es = (12, 4, 2, 1)t. Sea el vector residual.

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

solución aproximada.

c. Calcule la solución 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 solución al sistema lineal Ax = b es claramente s. Resuelva el sistema utilizando la operación \ 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 solución z con la solución del sistema original calculando z - 1. ¿Cómo se compara el tamaño de la perturbación en la solución a el tamaño de las perturbaciones en A y b? Repita el análisis de perturbación con t =1.0e-04 y t =1.0e-02. ¿Es ó no el sistema Ax = b bien acondicionado? Explique. Utilice MATLAB para calcular el número de condición de A.

5. Defina A = round(10 * rand(5)). Calcule el radio de los discos de Gerschgorin de A y guárdelos en un vector r. Para graficar los discos usamos el parámetro 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]

Page 58: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

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 : 5X (: , 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 método descrito en el problema (5) para calcular y graficar los discos Gerschgorin de B.

b. Como B es simétrica, 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 transformación 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]

Page 59: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Capítulo 4

Capítulo 4

Solución de Ecuaciones Nolineales

Suponga que f es una función continua digamos . Deseamos calcular soluciones de la ecuación escalar nolineal

f(x) = 0 (4.1)

Más general aún, podemos considerear el caso en que donde n≥1. Entonces (4.1)

representa un sistema de ecuaciones nolineales. Problemas del tipo (4.1) aparecen en la optimización de funciones y en la solución numérica de problemas de frontera nolineales. En este capítulo enfocaremos más en el problema escalar y discutiemos los apectos básicos del caso de sistemas de ecuaciones.

Método de la Bisección

Este método tiene como base ó motivavión el Teorema (1.3), Teorema del Valor Intermedio. En particular, si f es una función 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 algorítmo llamado el Método de la Bisección:

Suponga que es una función continua y que a, b son dados tales que f(a)f(b)≤0 y ε>0 es también dado (criterio de paro).

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

2. Defina cn=(an+bn)/2.

3. Si bn-cn≤ε, entonces aceptamos cn como una raiz aproximada y paramos el proceso.

4. Si signo(f(bn))⋅signo(f(cn))≤0, entonces ponemos an+1=cn. De lo contrario ponemos bn+1=cn.

5. Ponga n=n+1, y vuelva a (2).

Ejemplo 1: Considere la función f(x)=x2+x-1. Note que como f(0)=-1 y f(1)=1, tenemos que existe una raiz de la ecuación f(x)=0 en el intervalo (0,1). Vamos a aproximar esta raiz con el método de la bisección. Los resultados son como sigue:

n an bn cn f(an) f(bn) f(cn)

1 0 1 0.5 -1 1 0.25

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

Page 60: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Capítulo 4

2 0 0.5 0.25 -1 0.25 -0.69

3 0.25 0.5 0.375 -0.69 0.25 -0.48

4 0.375 0.5 0.4375 -0.48 0.25 -0.37

5 0.4375 0.5 0.46875 -0.37 0.25 -0.31

La solución correcta a seis cifras calculada con la función fzero de MATLAB es 0.618034. Podemos ver que el método de la bisección aunque progresa hacia la solución, lo hace un tanto lento. Veamos ahora por que esto es asi analizando la convergencia del método.

Análisis de Error: Como f(a)f(b)≤0, sabemos que existe un número tal que f(α)=0. Mediante inducción matemática es fácil ver que

(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 algorítmo. Nuevamente usando inducción matemática 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 según . La convergencia en (4.5) es lo que se conoce como

convergencia lineal con taza razón de convergencia ½. De la desigualdad (4.5) podemos estimar el

número 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]

Page 61: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Capítulo 4

(4.6)

Basados en este análisis de convergencia podemos hacer las siguientes observaciones:

● ¡El método tiene convergencia segura! Esto es dada la condición inicial f(a)f(b)≤0, el método converge a una raiz α en [a,b]. Esta propiedad conocida como convergencia global es una de las características fuertes del método de la bisección y la mayoria de los métodos no la poseen.

● El error en las aproximaciones generadas por el método se reduce a la mitad en cada paso. ● La convergencia lineal caracterizada por la ecuación (4.5) es lenta comparada con otros

métodos. Esto es asi ya que el método solo usa evaluaciones de la función y comparaciones. Veremos que usando derivadas ó mas infoormación de la función f, podemos asi obtener métodos más rápidos.

El método de la bisección no generaliza al caso de sistemas nolineales debido a que no es posible una generalización del Teorema (1.3) a funciones vectoriales de variable vectorial.

Método de Newton

Suponemos ahora que la función f es diferenciable e incorporamos información de la derivada en el método. Sea pues f ∈C1. La recta tangente a f en el punto (x0,f(x0)) esta dada por la ecuación

. 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 recursión

(4.8)

Esta recursión define el Método de Newton y es un ejemplo de una iteración de punto fijo.

Aplicación 1

Vamos a suponer que queremos calcular el cociente a/b usando solo las operaciones . En la

mayoria de las computadoras las operaciones se implementan a nivel de "hardware" mientras

que la división se hace mediante programado (software) utilizando . Note que como

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

Page 62: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Capítulo 4

, entonces es suficiente discutir el computo de reciprocos. Si definimos la función f(x) por

(4.9)

entonces es la raiz de f(x)=0. Usando que , el método de Newton para la

ecuación f(x)=0 toma la forma:

(4.10)

la cúal envuelve unicamente . Note que

de donde obtenemos la fórmula

(4.11)

i.e,

(4.12)

Esta fórmula, exacta en este caso, aplica en general al método de Newton pero asintoticamente según se converge a la raiz (demostración más adelante). De la ecuación (4.12) obtenemos que

según si y solo si , i.e.,

(4.13)

¿Cómo seleccionamos x0 para que cumpla con (4.13)? Bueno la parte de x0>0 es simple de verificar.

¿Cómo saber si x0<(2/b) cuando no conocemos 2/b? Note que si x0>0, entonces

Asi que si , entonces sabemos que . En esta caso reducimos x0, digamos a x0/2, y

empezamos las iteraciones de nuevo. Note que despúes de esta etapa inicial, la convergencia es bién

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

Page 63: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Capítulo 4

rápida, de hecho cuadrática de acuerdo a la ecuación (4.12). Esto es, en cada iteración el número de cifras significativas se duplica.

Vamos ahora a precisar la noción de rápidez o orden de convergencia de una sucesión.

Definición (4.1): Suponga que la sucesión converge al número α. Decimos que

converge a α con orden p≥1 si existen M,N≥0 tales que

(4.14)

El número p, que no tiene que ser un entero, se llama el orden de convergencia. Si p=2 la convergencia se llama cuadrática. Si p=1 y M<1 la convergencia se llama lineal con taza o razón de convergencia M.

Nota: Mientras más grande sea p, más rápido converge la sucesión a α. Si p=1, mientras más

pequeño sea M, más rápido converge la sucesión.

Aplicación 2

Vamos a discutir ahora el problema de calcular raices cuadradas. Defina para a>0 la función

la cual tiene como una de sus raices . Dado que tenemos que el

método de Newton aplicado a la ecuación f(x)=0 toma la forma:

(4.15)

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

Teorema (4.1): La sucesión (xn) definida por la iteración (4.15) converge a para cualquier x0>0

con orden de convergencia de dos.

Demostración: Si x0>0 y a>0 entonces sigue de (4.15) que xn>0 para toda n≥0. Además

(4.16)

De aqui y como xn>0, obtenemos que para toda n≥1. 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]

Page 64: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Capítulo 4

(4.17)

Esto combinado con para toda n≥1 implica que para toda n≥1. Tenemos pues

que (xn) esta acota inferiormente por y es decreciente de modo que es convergente. Falta ver que

converge a . Sea α el limite de (xn). Entonces dejando en la ecuación (4.17) obtenemos

que , i.e, . Pero como xn>0 para toda n≥0, tenemos que , i.e., . La

convergencia cuadrática de la sucesión sigue ahora de la expresión (4.16).

Nuevamente vemos convergencia cuadrática del método de Newton. Veamos ahora el resultado general.

Teorema (4.2) (Convergencia Local del Método de Newton): Suponga que es una función

C2 en una vecindad del número α para el cual . Entonces si x0 se selecciona

suficientemente cerce de α, las iteraciones del Método de Newton convergen a α. Además

(4.18)

es decir, (xn) converge a α con orden de convergencia p=2.

Demostración: Usando el Teorema de Taylor podemos escribir

(4.19)

donde esta entre α y xn. Como y es continua, existe un intervalo I alrededor de x=α

tal que para . Defina ahora el número 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]

Page 65: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Capítulo 4

Definimos ahora el intervalo por

(4.22)

Veamos ahora que si , entonces para toda n≥0. De hecho de (4.21) tenemos que si

, entonces . Multiplicando por M ambos lados obtenemos que

(4.23)

Ahora como , tenemos que . También de (4.23) obtenemos que

, i.e, . Combinando esto con obtenemos que .

De aqui que si entonces las iteraciones del Método de Newton estan bien definidas,

permanecen en , y (4.23) implica que

(4.24)

Si de modo que , entonces (4.24) implica que y la convergencia es de

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

(4.25)

Dejando y usando que , y por consiguiente , y la continuidad de ,

obtenemos la expresión (4.18).

La selección del punto inicial x0 que garantice la convergencia del Método de Newton es un asunto

notrivial. Cualquier estimado o conocimiento previo de la localización de la raiz debe utilizarce para asegurar la convergencia del método. Por ejemplo una gráfica de la función f podria arrojar una idea sobre la raiz. Luego de esto se puede utilizar un método como la bisección para corregir la aproximación y pasarla entonces al método de Newton. Esto asemeja a los métodos predictor-corrector comunes en la solución numérica de ecuaciones diferenciales ordinarias.

Una ves tenemos un método iterativo como el de Newton que no tiene en general una expresión como (4.6) para predecir el número de iteraciones necesarias para lograr un error pre-determinadado, ¿cómo detenemos las iteraciones? Veamos ahora un criterio heurístico para detener el método. 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]

Page 66: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Capítulo 4

(4.26)

Asi que si tenemos aproximadamente t cifras significativas en xn como

aproximación de α.

Método de la Secante

La motivación del método de la secante viene de que en ocaciones es complicado ó quizas imposible calcular la derivada de la función f en el método de Newton. Por ejemplo la función f podría estar especificada por un número discreto de puntos ó dada por un programa de computadora. En tales situaciones el método de Newton se hace impractico y buscamos un método intermedio entre el de la bisección y el de Newton. Para esto suponemos que tenemos dos aproximaciones x0, x1 de la raiz α.

Podemos ahora construir la secante a la función f en los punto (x0,f(x0)), (x1,f(x1)), la cual esta dada

por:

(4.27)

Definimos la nueva aproximación 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 recurción que

define el Método de la Secante:

(4.29)

El método de la secante es un ejemplo de un método iterativo de dos puntos ya que predice en el paso n+1 basado en la información obtenida en los pasos n, n-1. Note también que

(4.30)

de modo que el método de la secante se puede ver como una discretización del método de Newton.

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

Page 67: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Capítulo 4

El análisis de convergencia del método de la secante es un tanto más complicado que el del método de Newton y requiere del concepto de diferencias divididas las cuales se discuten en el Cápitulo 5. Usando propiedades de las diferencias dividas se puede demostrar que las iteraciones del método de la secante satisfacen:

(4.31)

donde esta entre xn-1, xn y y pertenece al intervalo minimo que contiene a xn-1, xn, α.Usando

esta fórmula se puede demostrar el siguiente teorema.

Teorema (4.3) (Convergencia Local del Método de la Secante): Suponga que es una

función C2 en una vecindad del número α para el cual . Entonces si x0, x1 se

seleccionan suficientemente cerce de α, las iteraciones del Método de la Secante convergen a α. Además

(4.32)

donde .

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

(4.33)

Multiplicando esta aproximación por M en ambos lados, definiendo , y

convirtiendo la aproximación en una igualdad, obtenemos la relación:

(4.34)

donde por conveniencia hemos tomado F0=F1=1. La iteración (4.34) define los números 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]

Page 68: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Capítulo 4

Asi que

(4.36)

donde usamos la notación . Ahora podemos escribir

(4.37)

lo cual nos da en forma asintótica la fórmula (4.32).

En la siguiente tabla resumimos las propiedades de los métodos de Newton y de la Secante:

Método Taza de convergencia Evaluaciones (función y/o derivada)

Newton Dos 1 para f; 1 para

Secante 1.62… 1 para f

Si es dificil o imposible de evaluar, entonces el método de la secante podría ser más 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 método de Newton es preferible por su convergencia rápida. Note que en ambos métodos aproximamos la función original por una función lineal a la cual es fácil de calcular sus raices.

Raices Multiples

En ambos de los Teoremas (4.2) y (4.3) tenemos la condición que garantiza que

la función f(x) corta el eje de "x" en en forma transversal. Cuando esta condición de transversalidad no se cumple en la raiz , entonces el método numérico puede diverger o si converge lo hace más lento que en el caso transversal. Vamos a estudiar esta situación en mas detalles en particular para el método de Newton.

Sea f una función, α un número real tal que , y m un entero positivo. Decimos que α es una

raiz de f de multiplicidad m si existe una función 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]

Page 69: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Capítulo 4

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

Teorema (4.4): Sea y . Entonces α es raiz de f de multiplidad m si y solo si

(4.39)

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

Como , esta entre α y x, y , tenemos que para x suficientemente

cerca de α la función . Asi que con , la ecuación (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 y , 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]

Page 70: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Capítulo 4

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

tenemos que α =0 es raiz simple de f.

Cuando los métodos de Newton ó la Secante se utilizan en problemas con raices multiples, la convergencia si alguna se hace más lenta. Por ejemplo si consideramos el problema de buscar las raices de la ecuación x3=0 usando el método de Newton, entonces las iteraciones de Newton estan dadas por la recursión:

Como α =0 es la única solución en este caso, vemos que el método tiene convergencia lineal en este problema. En general se puede demostrar que si x=α es una raiz de multiplicidad m de la ecuación f(x)=0, entonces las iteraciones del método de Newton convergen localmente a la raiz x=α y satisfacen

(4.41)

i.e., la convergencia es lineal si m>1 con taza o razón de convergencia λ . Note que si m>2, entonces λ >1/2 y el método de la bisección es en general más rápido que el de Newton.

Otro problema con el cálculo de raices multiples es provocado por la aritmética finita de la computadora y el hecho de que la función f no cruza el eje de x transversalmente en x=α . Esto hace que el intervalo de incertidumbre para el cálculo de la raiz sea mucho mayor de lo que sería para una raiz simple.

¿Cómo podemos entonces calcular raices multiples en forma efectiva? Si la multiplicidad m de la raiz es conocida, entonces podemos mejorar la convergencia del método de Newton de dos formas:

1. Calculamos la sucesión (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]

Page 71: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Capítulo 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 método de Newton a la función F(x)= f(m-

1)(x). Note que ahora α es raiz simple de F, tenemos convergencia cuadrática y no hay el problema de un intervalo de incertidumbre grande. Este método es efectivo si las derivadas de f son fáciles de calcular.

Para estimar m si este no es conocido, usamos el método de Newton aplicado a la función original f y vamos calculando los cocientes

(4.43)

los cuales de acuerdo a la fórmula (4.41) aproximan a . Usando esto podemos

aproximar "m" y luego procedemos con uno de los métodos (1) ó (2) descritos arriba.

Sistemas Nolineales

Consideramos ahora el problema de resolver un sistema de ecuaciones nolineales de n ecuaciones en n

desconocidas. Sean funciones (nolineales) suficientemente diferenciables.

Un sistema nolineal n× n consiste de:

(4.44)

Si definimos por , entonces podemos escribir (4.44) en forma

vectorial como:

(4.45)

Sea tal que , i.e., una solución 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]

Page 72: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Capítulo 4

Suponga que es una aproximación de . Entonces usando el Teorema de Taylor para funciones de

varias variables, podemos escribir

Definimos ahora la siguiente aproximación como la solución de

i.e.,

De esta forma continuamos obteniendo asi la versión para sistemas del Método 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 solución del sistema:

Tenemos que

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

Page 73: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Capítulo 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 recursión (4.48):

x0=[1,0]';normx=1;normz=1;while normz > 1.0e-6*normxf0=f(x0);fp0=fp(x0);z=-fp0\f0;normz=norm(z,2);normx=norm(x0,2);x0=x0+z;endx0

con el cual obtenemos (1.1674,-0.8812) como una raiz aproximada del sistema.

Ejercicios

1. Calcúle la raiz más grande de la ecuación

Despúes de haber calculado la raiz mayor, use división sintética y calcúle las raices restantes. 2. La siguiente ecuación 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]

Page 74: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Capítulo 4

Use el Método de Newton para calcular la raiz lo más 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 método según aumenta el valor de B. Utilice la gráfica de

para sustentar sus argumentos.

3. Implemente el Método de Newton para buscar todas las raices de un polinomio p(x). Debe utilizar el Método de Horner para evaluar p(x) y su derivada . Si α es una raiz, como

resultado del Método 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 algorítmo (en MATLAB) basado en el método de la bisección, que aproxime a 12 cifras significativas el valor de tal que la solución 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 solución z de Cz=d.

Ayuda: La solución x de se puede ver como una función la cual al

sustituirse en la ecuación produce la ecuación (nolineal) en :

.

5. La ecuación define a y implicitamente como función de x. La función

tiene un máximo para . Demuestre que las coordenadas del máximo

satisfacen las ecuaciones:

Calcule una solución aproximada de este sistema usando el Método de Newton. 6. Considere el problema de resolver la ecuación integral

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

Page 75: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Capítulo 4

para la función desconocida z(s). Usando una regla de cuadratura apropiada para discretizar el integral en esta ecuación, obtenga un sistema de ecuaciones nolineales cuya solución es una aproximación de z(s). Resuelva el sistema resultante usando el Método de Newton.

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

Page 76: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Interpolación de Polinomios

Capítulo 5

Interpolación y Aproximación de Funciones

Problema básico de Interpolación: Dados los datos (xi,yi) , 1<=i<=n, queremos hallar una función

g(x) tal que

g(xi)=yi , 1<=i<=n.

Problema de Interpolación Polinomial: Dados los datos (xi,yi) , 1<=i<=n, queremos hallar un

polinomio pn-1(x) de grado a lo más 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 también podemos interpolar con una función de la forma g(x)= a ebx. De hecho b= -(1/3)ln(5/3) y a=3(5/3)1/3.

Existencia y construcción 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]

Page 77: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Interpolación 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 condición se asumirá de aqui en adelante). De modo que el polinomio de interpolación pn-1(x) existe por construcción. 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]

Page 78: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Interpolación 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:nV(:,j)=x.*V(:,j-1);enda=V\y;

El polinomio pn-1(x) se puede evaluar ahora usando el método 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 coeficientespval=a(n);for i=n-1:-1:1pval=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:1pval=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 interpolación 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 interpolaciónplot(x0,y0)

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

Page 79: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Interpolación de Polinomios

Representación de Newton de pn-1(x)

El polinomio de interpolación pn-1(x) es único. De modo que podemos buscar formas más eficientes

de calcularlo sin peligro de obtener otro polinomio. La representación 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]

Page 80: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Interpolación de Polinomios

3 = p3(2) = c1 +4 c2+ 12 c3 + 12 c4

Esto es un sistema triangular inferior cuya solución 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 interpolación 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]

Page 81: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Interpolación 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 fácil ver también que

p3(x)=c1+(x-x1)q(x).

Note que el lado derecho de este sistema se puede calcular mediante el siguiente código 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 representación de Newton del polinomio de interpolación:

function c = interpNR(x,y)n=length(x);c=zeros(n,1);c(1)=y(1);if n>1c(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 algorítmo anterior, podemos resolver dicha recursión para obtener asi la forma secuencial del algorítmo para la representación de Newton del polinomio de interpolación:

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]

Page 82: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Interpolación de Polinomios

for k=1:n-1y(k+1:n)=(y(k+1:n)-y(k)) ./ (x(k+1:n)-x(k));endc=y;

La representación de Newton del polinomio de interpolación se puede evaluar con una variación de método 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 versión del método de Horner:

function pval = hornerN(c,x,z)n = length(c);pval = c(n)*ones(size(z));for k = n-1:-1:1pval=c(k) + (z-x(k)) .* pval;end

Eficiencia

En general interpNR y interpN requieren menos operaciones de punto flotante que interpV, O(n2) en comparación con O(n3), ya que la matriz de Vandermonde es densa mientras que en la representación de Newton resolvemos un sistema triangular. Hay métodos alternos que resuelven el sistema de Vandermonde en O(n2) operaciones al aprovechar su estructura particular.

Si comparamos interpNR y interpN, el segundo método es más 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 Interpolación

Teorema: Suponga que pn-1(x) interpola a la función 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]

Page 83: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Interpolación de Polinomios

Si f(x) es una función 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 interpolación tiende a cero según h se va a cero, i.e., hay convergencia. Este es el caso, por ejemplo para las funciones trigonométricas 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 clásico de este mal comportamiento en las derivadas es la función de Runge dada por:

El siguiente programa en MATLAB calcula los polinomios de interpolación 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:13k=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]

Page 84: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Interpolación de Polinomios

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

Ejercicios

1. Calcule la función 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 cuadrático que interpola a los datos (-2,-15), (-1,-8), (0,-3) por los dos métodos discutidos en clase.

3. Use inducción matemática 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]

Page 85: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Interpolación 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 inducción matemática que los coeficientes c1,…,cn de la representación 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 función en MATLAB, nbest(L,R,a,delta), que devuelva el entero menor n tal que si pn-1(x) es el polinomio de interpolación 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]

Page 86: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Interpolación Polinomial por Pedazos

Interpolación Polinomial por Pedazos

El uso de polinomios de interpolación de alto grado puede producir errores grandes debido al alto grado de oscilación de este tipo de polinomios. Para evitar este problema se aproxima la función desconocida en intervalos pequeños usando polinomios de grado bajo. El caso más común de la interpolación por pedazos es usar polinomios cúbicos.

Polinomios Cúbicos de Lagrange: Suponemos que n es divisible por tres y buscamos un polinomio

cúbico que interpole a la función en los puntos . Este polinomio esta dado en su

representación de Lagrange por:

para y se asume constante para toda i.

Interpolación de Hermite: Aqui buscamos un polinomio por pedazos Hn(x) que sea cúbico en cada

subintervalo , y que interpole a f(x) y f'(x) en los puntos . La función

Hn(x) queda determinada en forma única por estas condiciones y su cálculo requiere de la solución de n

sistemas lineales de tamaño 4x4 cada uno. La desventaja de la interpolación de Hermite es que requiere de la disponibilidad de los lo cual no es el caso en muchas aplicaciones.

Interpolación 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 interpolación. Se ha observado que en aplicaciones gráficas, el ojo humano es capaz de detectar discontinuidades en la segundas derivadas de una función, haciendo que los gráficos 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 cúbico en .

2. existen y son continuas en .

3. s(x) interpola a la función 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]

Page 87: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Interpolación Polinomial por Pedazos

Defina . Como s(x) es cúbico en , entonces s"(x) es lineal en

y esta dado por:

.

Integrando esta ecuación 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 construcción y además tenemos que la condición de interpolación se cumple. Falta la condición de que s'(x) sea continua, i.e.,

En , tenemos que

Usando una expresión equivalente en , se obtiene que la condición de continuidad expresada por

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]

Page 88: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Interpolación Polinomial por Pedazos

donde

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

Condición 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 simétrica 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 según 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 función 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 función atan

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

Page 89: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Interpolación Polinomial por Pedazos

(tangente inversa) en los puntos de la partición. 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 función atan en los puntos de la partición%y=atan(x);%% Calcula la representación 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 función 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]

Page 90: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Interpolación Polinomial por Pedazos

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

Page 91: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Problemas de Cuadrados Minimos Polinomiales

Problemas de Cuadrados Minimos Polinomiales

Consideramos ahora el problema de aproximar o "ajustar" una función en un número 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 función que en cierto sentido suavice las fluctuaciones en los datos y a la ves resalte las caracteristicas esenciales de estos. En el método de cuadrados minimos, se trata de minimizar la suma de los cuadrados de las diferencias entre los datos y la función que se usa para aproximar estos.

Suponga que los datos estan dados por donde k=1,2,…m. La función que usamos para

aproximar estos datos tiene la forma general:

donde las funciones son funciones dadas y los son

desconocidas. Un caso común es tomar y en este caso decimos que

buscamos aproximar los datos con un polinomio de grado a lo más n-1. Las diferencias entre los datos y la función g(x) estan dados por:

.

Buscamos pues minimizar la suma de los cuadrados de estas diferencias dada por:

Bajo ciertas condiciones en los datos , los valores de que

minimizan a "S" son solución 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]

Page 92: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Problemas de Cuadrados Minimos Polinomiales

La solucion "a" de las ecuaciones normales se conoce como la solución 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 interpolación de polinomios). Siguiendo nuestra discusión 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:na(:,j)=x.*a(:,j-1);end

El siguiente programa en MATLAB llama la función de arriba para luego ensamblar las ecuaciones normales y resuelve estas para obtener asi la solución 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 función representa los coeficientes del polinomio de grado a lo más n-1 que mejor aproxima a los datos en el sentido de los cuadrados minimos. Podemos ahora utilizar la función 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 función y=ex en el intervalo [0,4] utilizando un polinomio cuadrático y otro cúbico:

%% 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]

Page 93: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Problemas de Cuadrados Minimos Polinomiales

y=exp(x);%% Calcula los coeficientes de los polinomios cuadrático y cúbico% 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 función original%xx=[0:.02:4]';%% Evalua los polinomios y la función original%pval2=hornerV(a2,xx);pval3=hornerV(a3,xx);yy=exp(xx);%% Traza las gráficas%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]

Page 94: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Problemas de Cuadrados Minimos Polinomiales

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

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]

Page 95: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

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 número de datos no tiene que ser muy grande. De hecho en el ejemplo anterior, los numeros de condición de son 983.3594 y 5.7299e+004 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 factorización QR de la matriz A.

Teorema: (Factorización QR) Sea A una matriz mxn de rango n. Entonces existe una matriz Q de

tamaño mxn con , y una matriz R de tamaño nxn triangular superior y nosingular tal que

A=QR.

La demostración 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 factorización QR de una matriz pues utilizaremos las funciones de MATLAB para esto. Lo que si nos interesa en este punto es que utilizando la factorización QR de la matriz A que aparece en las ecuaciones normales, podemos calcular la solución 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 factorización QR de A dada por el teorema

anterior. Entonces la solución "a" de las ecuaciones normales se puede obtener

resolviendo el sistema triangular .

Demostración: Dado que A=QR tenemos que:

De igual forma: . Como R es nosingular Rt también lo es y tenemos

pues que es equivalente al sistema . <>

Vale la pena recalcar que los sistemas triangulares se resuelven eficientemente mediante sustitución para atras y son por lo general bien acondicionados. La función qr de MATLAB se utiliza para calcular las factorizaciones QR. Modificamos la función 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]

Page 96: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Problemas de Cuadrados Minimos Polinomiales

El mismo ejemplo anterior pero usando esta subrutina en lugar de leastsqu produce resultados similares (al número de cifras mostradas) pero ahora los números de condición 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 según 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?

2. La función se puede aproximar con un polinomio de grado cinco de la forma

. Use la función gamma de MATLAB para generar

valores de para x=0:0.1:1. Usando los programas desarrollados en esta lección,

construya el polinomio de grado cinco que mejor aproxima estos datos en el sentido de los cuadrados minimos. Trace los datos, la función 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]

Page 97: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Integración Numérica

Integración Numérica - Métodos del Trapezoide y Simpson

En esta lección comenzamos el estudio de métodos numéricos para el cálculo numérico de integrales de la forma

Un método común para aproximar I(f) es reemplazando f(x) con un polinomio de interpolación. Este procedimiento se conoce como las reglas de Cuadratura de Newton. Examinamos los primeros dos casos de este método donde se usan polinomios de interpolación lineales y cuadráticos.

Método del trapezoide: Sea p1(x) el polinomio lineal que interpola a f(x) en x=a y x=b, i.e.,

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

Asi que podemos escribir la aproximación:

(*)

Más adelante análizamos en detalles el error en esta aproximación. Por el momento basta observar que la aproximación es buena siempre que f sea aproximadamente lineal. En el caso general, dividimos el intervalo [a,b] en subintervalos más pequeños y aplicamos la fórmula anterior en cada subintervalo. Si los subintervalos son suficientemente pequeños, entonces f es aproximadamente lineal en cada subintervalo y la aproximación 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]

Page 98: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Integración Numérica

Podemos escribir ahora que:

Usando la aproximación (*) podemos escribir

Usando esto en la fórmula 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 número 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]

Page 99: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Integración Numérica

Estos calculos los podemos realizar también utilizando la función 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:10x=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

2 0.708333 -0.0151862 -----

4 0.697024 -0.00387663 3.91736

8 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 método 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]

Page 100: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Integración Numérica

característico de convergencia O(h2) lo cual confirmaremos teoricamente más adelante.

Regla de Simpson: Utilizamos ahora un polinomio de interpolación cuadrático. Sea p2(x) el

polinomio de grado (a lo más) 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 método 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]

Page 101: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Integración Numérica

Usando la fórmula (**) podemos aproximar

Ahora

Esta fórmula 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 número 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 aproximación satisfaga una tolerancia especificada por el usuario. También MATLAB tiene la

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

Page 102: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Integración Numérica

subrutina quad8 que al igual que quad usa un método adaptativo pero con una fórmula de aproximación de grado mayor. En lugar de usar estas rutinas que hacen las comparaciones un tanto complicadas, implementamos nuestra versión 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;endh=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 método de Simpson que ejecuta eficientemente en MATLAB. Note que se requiere que n sea par. Recuerde también 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

2 0.694444 -0.00129726 -----

4 0.693254 -0.000106788 12.1481

8 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 más adelante.

Ejercicios:

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

Page 103: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Integración Numérica

1. Usando las reglas del trapezoide y de Simpson y los programas descritos en esta lección, 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 aproximación de I(f):

Usando esta fórmula diseñe una fórmula compuesta llamada la regla (compuesta) del punto medio. Use esta fórmula en el ejercicio anterior y estime el orden de convergencia de la misma.

3. Utilizando un polinomio cúbico de Hermite para interpolar a f(x) en [a,b], desarrolle una fórmula para aproximar a I(f). Obtenga la fórmula compuesta correspondiente.

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

Page 104: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Integración Numérica - Análisis de Errores

Integración Numérica - Análisis de Errores

Pasamos ahora a estudiar formalmente el error de aproximación en las fórmulas:

Regla del Trapezoide: Usando el teorema sobre el error de interpolación 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 fórmula del método del trapezoide esta dado por

(*)

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

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

pepegg
pepegg
Page 105: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Integración Numérica - Análisis de Errores

Usando este resultado en la fórmula del error de arriba obtenemos que

Esta fórmula se conoce como la fórmula exacta del error y establece que la fórmula del trapezoide Tn(f) tiene un orden de convergencia de O(h2) lo que confirma nuestros resultados numéricos de la

sección anterior. Esta fórmula aparte de su valía teorica, no nos proporciona un estimador práctico del error ya que f '' puede no ser accesible y el punto ξ de la fórmula es desconocido. Para obtener un estimador práctico del error utilizamos la llamada fórmula asintótica que se obtiene de la siguiente manera. Si f '' es continua, entonces

Asi que usando esto y la fórmula (*) obtenemos que

La fórmula se conoce como el estimador asintótico del error. Note que si f ' es accesible, esta fórmula envuelve cantidades conocidas y es posible calcularla como parte del proceso de aproximación. Más aun podemos utilizar el estimador para corregir la fórmula del trapezoide obteniendo asi la fómula del trapezoide corregida:

la cúal en general debe ser una mejor aproximación 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 asintótico del error esta dado por la fórmula

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

pepegg
pepegg
Page 106: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Integración Numérica - Análisis de Errores

Como en este problema el valor exacto del error se conoce, podemos compararlo con la fórmula asintótica. Veamos los resultados:

n

2 0.708333 0.692708 -0.0151862 -0.015625

4 0.697024 0.693118 -0.00387663 -0.00390625

8 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 fórmula asintótica del error predice bastante bien el error real en este ejemplo. También podemos observar que la fórmula corregida del trapezoide produce seis cifras correctas en la aproximación con apenas n=16 mientras que la fórmula sin corregir requiere hasta n=512. <>

De la fórmula asintótica tenemos que

lo cual fué lo que observamos en nuestros computos numéricos. Note también que si casualmente f '(a)=f '(b) , entonces la convergencia del método será más rápida.

Método de Simpson: En este caso el análisis de los errores es similar al del método del trapezoide

pero más extenso. Simplemente pues resumimos los resultados en este caso. Si entonces la fórmula 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]

pepegg
pepegg
Page 107: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Integración Numérica - Análisis de Errores

y la fórmula asintótica por

La fórmula corregida de Simpson es pues

De la fórmula del error exacto se obtiene que el método tiene un orden de convergencia O(h4) y

empleando la fórmula asintótica podemos ver que los cocientes son aproximadamente 16.

Ejercicios:

1. Repita los cálculos del Ejemplo 1 pero para el método de Simpson. 2. Para la formulas básica y compuesta de la regla del punto medio (problema 2, sección anterior)

haga un análisis de errores y derive las fórmulas exactas y asintóticas del error y la fórmula corregida del método.

3. Si la regla del trapezoide se utiliza para aproximar

con h=0.01, halle una cota para el error en dicha aproximación y un estimado asintótico del mismo.

4. Si los puntos no estan uniformemente distribuidos en [a,b], es posible generalizar la fórmula del trapezoide en este caso como sigue: sean

. Entonces definimos

Verifique la siguiente fórmula para el error exacto de este método

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

pepegg
pepegg
Page 108: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Integración Numérica - Análisis de Errores

donde .

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

pepegg
pepegg
Page 109: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Integración Numérica - Extrapolación de Richardson

Integración Numérica - Extrapolación de Richardsony Reglas de Cuadrátura Gaussiana

Aqui examinamos dos procedimientos para obtener fórmulas de integración numérica de orden arbitrario. Una de estas técnicas es la extrapolación de Richardson que es un proceso comúnmente utilizado en análisis numérico para acelerar la convergencia de sucesiones convergentes. La otra técnica son las reglas de cuadrátura Gaussiana que producen fórmulas de alto grado utilizando puntos distribuidos en el intervalo de integración en forma no uniforme.

Extrapolacion de Richardson: Denotamos aqui por In cualquier fórmula numérica para aproximar

I(f), e.g., la fórmula del Trapezoide ó la regla de Simpson. La correspondiente fórmula asintotica del método nos garantiza que para alguna constante C

donde p es el orden de convergencia del método, e.g., p=2 para el método 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 fórmula de extrapolación de Richardson y se puede demostrar que

i.e., el orden de la fórmula 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 método de extrapolación 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]

pepegg
pepegg
Page 110: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Integración Numérica - Extrapolación de Richardson

n=2;x=linspace(1,2,3);y=1./x;iaproxn=trapz(x,y);for i=2:5n=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

4 0.697024 0.693254

8 0.694122 0.693155

16 0.693391 0.693148

32 0.693208 0.693147

Aqui podemos ver que ya para n=32 la fórmula de Richardon tiene ya seis cifras correctas. Para el método del trapezoide la fórmula de Richardson es de orden O(h4) y no requiere derivadas de la función f(x) en comparación con la fórmula corregida. <>

La fórmula de extrapolación de Richardson se puede ahora utilizar en forma recursiva generando formulas de orden cada vez más alto (se duplica en cada etapa). La fórmula resultante por este procedimiento se conoce como la fórmula de integración numérica de Romberg.

Reglas de Cuadrátura 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]

pepegg
pepegg
Page 111: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Integración Numérica - Extrapolación 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

números llamados pesos ("weights"). Los puntos xj's y los pesos wj's se determinan de modo que la

fórmula de integración numérica

sea exacta para polinomios de grado a lo más 2n-1, i.e., In(p)=I(p) para todo polinomio p de grado a lo

más 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. Además I(x)=0 y I1(x)=2x1, de donde obtenemos que x1=0. Tenemos pues la fómula

numérica I1(f)=2f(0) lo cúal se conoce como la fórmula 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 ecuación (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]

pepegg
pepegg
Page 112: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Integración Numérica - Extrapolación de Richardson

Sustituyendo estas expresiones en la primera y segunda ecuación y resolviendo para x1, x2 obtenemos

que

Asi que nuestra fórmula numérica 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 numéricamente usando el método 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 recursión

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. También

de donde podemos obtener los x's para las fórmulas 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]

pepegg
pepegg
Page 113: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Integración Numérica - Extrapolación de Richardson

usando la regla de cuadrátura 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 sección lo que resulta en:

Tenemos ahora que

Ejercicios:

1. Trabaje el problema del Ejemplo 1 pero con la fórmula de extrapolación de Richardson que usa la regla de Simpson. ¿Cuál es el orden de convergencia de la fórmula 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 fórmulas de cuadrátura 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 lección 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 función con nombre fname en el intervalo [a,b] aplicando una regla de cuadrátura 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]

Page 114: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Solución Numérica de Ecuaciones Diferenciales Ordinarias - Problema de Valor Inicial

Capitulo 7

Ecuaciones Diferenciales Numéricas

Problema de Valor Inicial y Método de Euler

Las ecuaciones diferenciales aparecen naturalmente al modelar situaciones físicas en las ciencias naturales, ingeniería, y otras disciplinas, donde hay envueltas razones de cambio de una ó varias funciones desconocidas con respecto a una ó varias variables independientes. Estos modelos varían entre los más sencillos que envuelven una sola ecuación diferencial para una función desconocida, hasta otros más complejos que envuelven sistemas de ecuaciones diferenciales acopladas para varias funciones desconocidas. Por ejemplo, la ley de enfriamiento de Newton y las leyes mecánicas que rigen el movimiento de los cuerpos, al ponerse en terminos matemáticos dan lugar a ecuaciones diferenciales. Usualmente estas ecuaciones estan acompañadas de una condición adicional que especifica el estado del sistema en un tiempo o posición inicial. Esto se conoce como la condición inicial y junto con la ecuación diferencial forman lo que se conoce como el problema de valor inicial. Por lo general, la solucón exacta de un problema de valor inicial es imposible ó dificil de obtener en forma analítica. Por tal razón los métodos numéricos se utilizan para aproximar dichas soluciones. Comenzaremos discutiendo los métodos para ecuaciones escalares y luego generalizamos los mismos a sistemas de ecuaciones.

El Método de Euler: Considere el problema de valor inicial para la función (desconocida) y(t) descrito por:

Defina para n≥0 los siguientes cantidades:

Para cualquier j≥0, tenemos por el Teorema de Taylor que podemos escribir:

Eliminando los terminos O(h2) obtenemos la aproximación:

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

Page 115: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Solución Numérica de Ecuaciones Diferenciales Ordinarias - Problema de Valor Inicial

Denotamos ahora por yj una aproximación de y(tj). Entonces motivado por la aproximación de arriba

definimos las aproximaciones {yj} por la recursión:

lo que se conoce como el método de Euler. La cantidad

la cual descartamos en la serie de Taylor para obtener las aproximaciones, se llama el error de truncación o local del método de Euler y esta intimamente relacionada con la convergencia del método. De hecho si definimos los errores absolutos por ej=y(tj)-yj, entonces restando la expansión de

Taylor y la formula del método se obtiene que

Suponiendo ahora que f cumple una Condición de Lipschitz uniforme en t, i.e.,

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

(*)

lo que prueba que el método tiene un orden de convergencia global O(h).

La implementación en MATLAB del método 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 función 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]

Page 116: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Solución Numérica de Ecuaciones Diferenciales Ordinarias - Problema de Valor Inicial

index=[0:1:n];tvals=t0+h*index;yvals(1)=y0;for i=2:n+1yvals(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 solución exacta es y(t)=(t+1)5e-t. Definimos la siguiente función en MATLAB que evalúa el lado derecho de la ecuación diferencial:

function f=etest(t,y);f=5*y/(t+1)-y;

Ahora resolvemos este problema para n=20 y gráficamos la solución numérica 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]

Page 117: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Solución Numérica de Ecuaciones Diferenciales Ordinarias - Problema de Valor Inicial

Las soluciones numéricas se ilustran en la figura por las "x". Note que las aproximaciones numéricas no coinciden con la solución exacta y que el error aumenta según 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 aproximación 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]

Page 118: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Solución Numérica de Ecuaciones Diferenciales Ordinarias - Problema de Valor Inicial

Vemos aqui que definitivamente la aproximación mejora según aumenta la "n" pero la convergencia es bastante lenta. De hecho la aproximación numérica tiene apenas un error relativo de 3x10-3 para n=2560, i.e., h=4x10-4. <>

El ejemplo anterior muestra que aunque el método de Euler es convergente según la "h" tiende a cero, la convergencia del método puede ser bien lenta requiriendo un "h" excesivamente pequeño para un error satisfactorio en las aproximaciones. Al usar un "h" excesivamente pequeño en los calculos podemos tener acumulación de errores debido a la aritmética finita similar al fenomeno que observamos en la diferenciación numérica. Esta situación mejora o se puede evitar al considerar métodos con un orden de convergencia más alto como los llamados métodos Runge-Kutta que discutimos más adelante.

Otra noción bien importante en adición a la de convergencia de un método numérico es la de estabilidad absoluta. En este caso la "h" se mantiene fija y nos interesa determinar cúan sensitivo es el método numérico a variaciones en la condición inicial y0.

Ejemplo 2: Considere el problema de valor inicial

cuya solución exacta es y(t)=0. Resolvemos el mismo problema de valor inicial pero con la condición inicial cambiada a y(1)=10-4 y usamos h=0.05 en el método de Euler. La solución 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]

Page 119: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Solución Numérica de Ecuaciones Diferenciales Ordinarias - Problema de Valor Inicial

Podemos ver que un error inicial de 10-4 produjo un error de más de 1025 en la aproximación 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 ecuación , donde . La solución de este

problema es para alguna constante C. Estas soluciones son acotadas para todo "t". La región de estabilidad absoluta S de un método se define por el conjunto de las "hλ" tal que las

soluciones numéricas sean acotadas al aplicarse al problema prueba . En el caso del método de Euler tenemos que al aplicar este al problema prueba, el método reduce a:

Vemos aqui que las soluciones numéricas estan acotadas para todo "j" si y solo si , i.e.,

.

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]

Page 120: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Solución Numérica de Ecuaciones Diferenciales Ordinarias - Problema de Valor Inicial

Claramente h=0.05 no cumple con esta condición mientras que h=0.025 si la satisface. <>

El método 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 ecuación, aplica palabra por palabra al caso de sistemas. En la subrutina feuler descrita antes solo hay que añadir una instrucción para determinar el tamaño del sistema. Hicimos un cambio también 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+1yvals(:,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 ecuación. Veamos un ejemplo numérico de un sistema de ecuaciones y como lo resolvemos con feuler.

Ejemplo 4: Considere el siguiente modélo simplificado del corazón donde x(t) representa el largo de una cierta fibra ó musculo del corazón y s(t) representa un estimulo aplicado:

Aqui µ y p son parámetros del modélo. 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 pheartf=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 instrucción global que declara las variables mheart y pheart como variables globales las cuales son accesibles por cualquier rutina o programa con una instrucción 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]

Page 121: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Solución Numérica de Ecuaciones Diferenciales Ordinarias - Problema de Valor Inicial

solución con la siguiente secuencia de instrucciones en MATLAB:

global mheart pheartmheart=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 gráfica:

No comentamos sobre las interpretaciones físicas de estas graficas pero si mencionamos que el método de Euler es efectivo en este problema ya que las soluciones no varian muy rapidamente en el intervalo en cuestión. <>

Para resolver ecuaciones diferenciales de orden mayor de uno hacemos primero un cambio de coordenadas para convertir la ecuación dada a un sistema de primer orden. Luego usamos el método de Euler para sistemas según descrito arriba.

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

Page 122: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Solución Numérica de Ecuaciones Diferenciales Ordinarias - Problema de Valor Inicial

Ejemplo 5: Considere el problema de valor inicial para la siguiente ecuación de orden dos:

Haciendo la sustitución ó 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 ecuación diferencial que modela el proceso de desintegración de un material radioactívo esta dada por:

donde k es una constante caracteristica del isótopo radioactívo. 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 solución exacta que es x(t)=50 exp(-0.05t).

2. Convierta la ecuacion diferencial de orden dos dada por a un 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 solución 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]

Page 123: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Métodos Runge-Kutta

Métodos Runge-Kutta

La convergencia lenta del método de Euler y lo restringido de su región de estabilidad absoluta nos lleva a considerar métodos de orden de convergencia mayor. En clase mencionamos que en cada paso el método de Euler se mueve a lo largo de la tangente de una cierta curva que esta "cerca" a la curva desconocida o buscada. Los métodos Runge-Kutta extienden esta idea geométrica al utilizar varias derivadas o tangentes intermedias, en lugar de solo una, para aproximar la función desconocida. Los métodos Runge-Kutta más simples se obtienen usando dos de estas derivadas intermedias.

Métodos Runge-Kutta de dos Evaluaciones: Aqui buscamos métodos o fórmulas numéricas de la forma:

Note que apesar de que en la fórmula se perciven tres f's, el método envuelve solo dos evaluaciones ya que dos de estas f's tienen los mismos argumentos. La idea ahora es determinar los parámetros

de modo que el método tenga orden de convergencia lo más alto posible. Un análisis del error local de esta fórmula basado en el Teorema de Taylor muestra que el orden más alto que puede tener esta fórmula es dos y que esto puede ocurrir si y solo si:

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

casos especiales de estas fórmulas son:

1. Método de Heun: Aqui se toma de modo que el método reduce a:

Para propositos de hacer cálculos es mejor escribir esta fórmula como:

2. Método del Punto Medio: Aqui se toma de modo que el método reduce a:

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

Page 124: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Métodos Runge-Kutta

Veamos ahora una implementación en MATLAB del método 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+1k1=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 más masivo que el otro de modo que su movimiento es descartable, e.g., la tierra y un satélite. Suponemos también 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 posición (x(t),y(t)) del cuerpo pequeño esta dada por el sistema de ecuaciones diferenciales:

Tomamos como condiciones iniciales . Debido a que este es un sistema de orden dos, tenemos que hacer la sustitución:

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]

Page 125: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Métodos 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 solución 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]

Page 126: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Métodos Runge-Kutta

Note que la curva es efectivamente una elipse aunque esto se acentua en la gráfica por que los ejes tienen unidades de largo distintas. <>

Métodos Runge-Kutta de más de dos Evaluaciones: Aunque el método de Heun fué bastante efectivo en el ejemplo anterior, nos interesa encontrar métodos de orden aún más alto que no requieran h's muy pequeñas. Vimos aqui que un método Runge-Kutta de dos evaluaciones intermedias genera un método de orden dos. Es razonable pensar que tres o cuatro evaluaciones intermedias producen métodos Runge-Kutta de ordenes tres y cuatro respectivamente. Este el caso pero ya para cinco evaluaciones no obtenemos necesariamente métodos Runge-Kutta de orden cinco pero si con seis evaluaciones. Un ejemplo de un método Runge-Kutta de orden cuatro de cuatro evaluaciones es el llamado método Runge-Kutta clásico definido por las fórmulas:

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

Page 127: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Métodos Runge-Kutta

MATLAB cuenta con dos subrutinas intrinsecas para la solución de problemas de valor inicial: ode23 y ode45. ode23 utiliza una combinación de un método Runge-Kutta de orden dos con otro de orden tres. La combinación de estos métodos permite el poder estimar el error en la aproximación numérica en cada paso y asi la subrutina puede ajustar el largo de paso "h" en forma dinámica para mantener el error global menor de una tolerancia especificada por el usuario. Estos métodos se dicen que son adaptativos ó de largo de paso variable. La subrutina ode45 es similar a ode23 pero utiliza una combinación de métodos de ordenes cuatro y cinco de cinco y seis evaluaciones respectivamente. La secuencia de llamada de ambas rutinas es idéntica y requiere del nombre de la función f, los tiempos inicial y final, la condición 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 omisión. 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 solución se calcula con un error global de 0.0001. La misma instrucción con ode45 produce la gráfica:

Las esquinas en esta gráfica se deben a que como ode45 usa un método de orden mayor, esto le permite dar pasos más largos en "t" lo que al graficar produce las esquinas. Este trazado lo podemos mejorar usando splines cúbicos como sigue:

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

Page 128: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Métodos 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 gráfica:

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]

Page 129: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Métodos Runge-Kutta

donde y

Examine los efectos en los cálculos 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 parámetros 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 "caótico".

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

Page 130: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

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 instrucción omite el "eco" o salida a la pantalla. La instrucción

»x=4:-1:1

general el vector fila x=[4,3,2,1]. La instrucción

»C=A(3:4,1:3);

se refiere a la submatriz

de A. También 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]

pepegg
Page 131: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Un Vistaso a MATLAB

rand(n,m) - matriz n×m de entradas aleatorias entre 0 y uno. eye(n) - matriz identidad n×n. zeros(n,m) - matriz cero de tamaño n×m. ones(n,m) - matriz n×m con todas las entradas uno.

Combinando estas instrucciones podemos generar matrices bastante complicadas. Por ejemplo, la instrucción

»E=[eye(2),ones(2,3);zeros(2),[1:3;3:-1:1]]

genera la matriz

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

Aritmética 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 (multiplicación 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]

pepegg
pepegg
Page 132: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

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 =

4 25 3

»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]

pepegg
Page 133: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Un Vistaso a MATLAB

ans =

16 25 4 9

Solución 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 métodos:

● eliminación Gaussiana ● forma echelon reducida o método de Gauss-Jordan ● método de la inversa

En el método de Gauss-Jordan, luego de obtener la forma echelon de la matriz de coeficientes aumentada, eliminamos también 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 métodos utilizamos la instrucción flops de MATLAB que estima el número 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 sucesión 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]

pepegg
pepegg
Page 134: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Un Vistaso a MATLAB

» flops

lleva a cabo eliminación 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 eliminación Gaussiana. Para el método de Gauss-Jordan tenemos:

» flops(0)» rref([A b])

ans =

1.0000 0 0 -0.04170 1.0000 0 0.41670 0 1.0000 0.6250

» flops

ans =

483

el cual requiere 483 operaciones de punto flotante. Finalmente el método 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]

pepegg
Page 135: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Un Vistaso a MATLAB

el cual toma 108 operaciones. Vemos pues que eliminación Gaussiana es el mejor de los tres métodos lo cual es cierto en general.

Usando MATLAB podemos estudiar la relación 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 solución ú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 solución? Si A es singular el sistema Ax=b puede tener solución para algunos b's pero de seguro hay al menos un b* para el cual Ax=b* no tiene solución. 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 30 8 24 8 9 67 0 28 5 8 87 1 31 1 3 109 5 51 7 0 44 7 37 4 7 2

(Como usamos la instrucción rand, el resultado de esta y cualquier secuencia de instrucciones que use esta función de MATLAB, no siempre será el mismo). La primera instrucción genera una matriz aleatoria con entradas enteras entre 0 y 10, y con la segunda instrucción 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 instrucción:

» b=round(20*(rand(6,1)-0.5))

b =

10453-93

Esto genera una matriz 6×1 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]

pepegg
pepegg
Page 136: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Un Vistaso a MATLAB

» rref([A b])

ans =

1 0 4 0 0 0 00 1 3 0 0 0 00 0 0 1 0 0 00 0 0 0 1 0 00 0 0 0 0 1 00 0 0 0 0 0 1

Como la última fila es de la forma el sistema es inconsistente, i.e., no tiene solución. ¡Recuerde que A es singular! Esto no quiere decir que Ax=b nunca tenga solución. Si definimos c=A*b, con el b de arriba digamos, el sistema Ax=c tiene solución 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 300 1 3 0 0 0 190 0 0 1 0 0 30 0 0 0 1 0 -90 0 0 0 0 1 30 0 0 0 0 0 0

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 más comunes tenenmos:

● min(A), max(A) - dan el mínimo y máximo 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]

pepegg
pepegg
Page 137: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Un Vistaso a MATLAB

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

Gráficas

MATLAB provee excelentes funciones para gráficas en dos, tres y cuatro dimensiones. Veamos un par de ejemplos sencillos. Suponga que queremos trazar la gráfica de la función

Esto lo podemos lograr con las instrucciones:

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

La primera instrucción divide el intervalo [-5,5] en subintervalos de largo 0.1, la segunda instrucción evalúa la función en los puntos de la partición, 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]

pepegg
pepegg
Page 138: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Un Vistaso a MATLAB

instrucción 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 instrucción 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]

pepegg
pepegg
Page 139: Notas de Análisis Numérico (MATE 4061) Por: Pablo V ... · Capitulo 1 Capitulo 1 Conceptos Básicos de Análisis Matemático En este capitulo repasaremos algunos de los conceptos

Un Vistaso a MATLAB

La cuarta instrucción evalua la función 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, Addison-

Wesley, New York, 1996.

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