Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Capítulo 1

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 6

1.

Algunas Ideas Generales sobre Métodos Numéricos

1.1 Introducción
En ciencia y tecnología son comunes los problemas para los que no es posible hallar una
solución analítica. Es frecuente entonces reducir el problema a un caso particular, o
simplificar el modelo de modo que pueda ser analizado. Hay, sin embargo, situaciones
en que un modelo simplificado no es apropiado para describir los aspectos que son
importantes. Se recurre entonces a soluciones numéricas. Desde la segunda mitad del
siglo XX, gracias a las computadoras digitales, las posibilidades para utilizar
eficientemente los métodos numéricos han aumentado enormemente; y los puntos de
vista con relación a ellos han ciertamente cambiado.

1.2 Iteraciones y recursiones


Un algoritmo es un conjunto ordenado y finito de operaciones que permite hallar la
solución (numérica) de un problema. En la mayor parte de estos procedimientos se
aplican ideas relativamente simples.

Una idea frecuente es la iteración, es decir, la repetición de un proceso en forma tal que
se obtienen cada vez mejores aproximaciones a una solución. Por ejemplo, al resolver
una ecuación no lineal expresada en la forma x  g (x) podría plantearse una
aproximación inicial x0 para luego obtener sucesivas aproximaciones:
x1  g x0 
x2  g x1 

Esta es una iteración de punto fijo (véase el capítulo 4). Si se satisfacen ciertas
condiciones (en este caso particular si g x   1 ) el proceso converge a la solución x :
x  lim xn
n

Para ilustrar esta idea considérese la solución de x  c  0 . En este caso x es la raíz


2

cuadrada de c . La ecuación puede reescribirse como:

1 c
x  x 
2 x
Y empezando con la aproximación inicial x  x 0  0 , se puede iterar con:

1 c 
xn1   xn  
2 xn 
Para el caso c  2 (es decir x  2 ) con la aproximación inicial x 0  1 se obtienen:
2

1 2  1 2
x1   x0    1    1.5
2 x0  2  1 

1 2  1 2 
x2   x1    1.5    1.416666667
2 x1  2  1.5 
y así sucesivamente:

H. Scaletti - Métodos Numéricos: Introducción 1-1


x3  1.414215686
x4  1.414213562
x5  1.414 213562
Este método es conocido como la regla de Herón de Alejandría, quien lo incluyó en su
obra Métrica en el siglo I D.C. Pero también se encuentra en una tablilla de Mesopotamia
(YBC7289) de hace más de 3600 años. Y es también un caso particular del método de
Newton para resolver ecuaciones no lineales.

El método de Newton y muchos otros procedimientos numéricos se basan en remplazar


una función por otra más simple. En el caso del método de Newton, al resolver la
ecuación f x   0 se aproxima la función por su tangente, de lo que resulta la iteración:

f xn 
x´n1  xn 
f  xn 
Por ejemplo, al resolver f x   x 3  2 x  5  0 se tiene f x   3x 2  2 y por lo tanto:
xn3  2 xn  5
x´n1  xn 
3xn2  2
Iniciando el proceso con x0  2 se obtienen:

x1  2.100 000
x2  2.094 568121
x3  2.094 551 482
x4  2.094 551 482
Si las raíces son simples, el método de Newton tiene convergencia cuadrática. Si xn
tiene t dígitos correctos, xn+1 tendrá por lo menos 2t –1 dígitos correctos.

En muchos casos se obtiene un conjunto de resultados en una sucesión de etapas, para


cada una de las cuales se consideran como datos los resultados de la etapa anterior.
Tales procesos se denominan de recursión.

Por ejemplo, al resolver una ecuación diferencial de primer orden y  f x, y  , la


solución numérica puede expresarse como una colección de valores y0 y1 y2 y3  que
son aproximaciones de y( x0 ) y( x1 ) y( x2 ) y( x3 )  que típicamente corresponden a
abscisas uniformemente espaciadas xn1  xn  x . Utilizando el método de Euler, a
partir de la condición inicial y0  y( x0 ) pueden obtenerse los sucesivos valores
haciendo una recursión:

y´n1  yn  x f xn , yn 
Así, para la ecuación diferencial y  cosx  y  con condición inicial y 0  1 se
obtienen con x  0.05:
y´1  y0  x cosx0  y0   1  0.05 cos0  1  1.027 015115
y´2  y1  x cosx1  y1   1.050713055
y´3  y 2  x cosx2  y 2   1.071104880

H. Scaletti - Métodos Numéricos: Introducción 1-2


1.3 Fuentes de Error
Los resultados numéricos están afectados por errores provenientes de diversas fuentes.

En primer lugar deben citarse errores en los datos, puesto que ellos son en general
resultado de mediciones o estimaciones imperfectas. Es de esperar que los errores
relativos en los resultados sean del mismo orden de magnitud (o menores) que aquellos
de los datos. Sin embargo, éste no siempre es el caso: se dice entonces que el
problema es “mal condicionado”, es decir, la solución es muy sensible a pequeños
errores en los datos. Dificultades de este tipo pueden también no ser debidas a la
formulación del problema, sino a un mal condicionamiento del método numérico utilizado.

Un segundo grupo de errores es debido a simplificaciones en el modelo matemático del


problema y a la truncación de expresiones, cuyo objetivo es evitar que la formulación se
complique más allá de lo que razonablemente puede manejarse.

Más importantes desde el punto de vista de los métodos numéricos son los errores de
truncación o redondeo. Éstos son función del procedimiento empleado y de las
características de operación de la computadora. La mayor parte de las computadoras
trabajan internamente con sistemas de numeración binarios, octales o hexadecimales y
tienen dos “tipos” de aritmética: de punto fijo (o “enteros”) y de punto flotante (o “reales”).
La aritmética de punto fijo es exacta, pero está limitada a números enteros y a un rango
pequeño. En consecuencia, la mayor parte de las operaciones se efectúan con la
aritmética de punto flotante. En la aritmética de punto flotante la representación interna
de un número es de la forma: a  m  10 , donde m es la mantisa y q el exponente.
q

Sólo se almacenan t cifras (en base b ) de la mantisa, y por lo tanto cualquier número
puede ser representado con un error relativo que no excede 1
2 b t 1 (habitualmente entre
-6 -15
10 y 10 ). Para q se usa un número finito de posiciones de memoria y en
consecuencia existe un “rango” aceptable (en general muy grande) para los números con
punto flotante.

Las operaciones aritméticas en punto flotante tienen propiedades algo diferentes de


aquellas correspondientes en la aritmética “exacta”. Así por ejemplo, la suma (o resta)
no es estrictamente asociativa.

a  0.1234567 10 0
b  0.1234567104
c  b
El esquema siguiente indica como se efectúa la suma en “punto flotante”:
b  0.1234567  10 4
a  0.0000123 10 4 (las cuatro cifras finales se recortan)
a  b  0.1234690 10 4

c  0.1234567 10 4
a  b  c  0.0000123 10 4  0.1230000

mientras que (b  c)  a  0.1234567 10 . El orden de las operaciones sí afecta los


0

resultados. ¡Debe evitarse operar con cantidades de muy distinto orden de magnitud!

H. Scaletti - Métodos Numéricos: Introducción 1-3


Como resultado del número limitado de cifras en la mantisa, pueden también producirse
errores relativos importantes al restar dos cantidades del mismo orden de magnitud,
como muestra el siguiente ejemplo, tomado de Forsythe (1969). Supóngase que se
requieren las raíces de x 2  2bx  c  0 . Estas podrían obtenerse de:
x  b  b  c . Sin embargo el proceso alternativo (y teóricamente equivalente):
2

x1  b  ( signo b) b 2  c
c
x2 
x1
tiene mucho menos acumulación de error, especialmente cuando c es pequeño, porque
evita la resta de dos números del mismo orden de magnitud. Considérese, la ecuación:
x 2  64 x  1  0 . Trabajando con 5 cifras significativas:

x1  32  1023  32  31.984  63.984  12  10 3


x2  32  1023  32  31.984  0.016  12  103

El error relativo en x 2 es muy grande. La resta se ha hecho en forma exacta; la causa


del error está más bien en el redondeo previo de la raíz cuadrada. Si en cambio se toma
x 2  1 x1 se obtiene:
1
x2   0.015629  0.0000005
1
63.984   10 3
2
con un error relativo del mismo orden que el de x1 .

El ejemplo siguiente, similar al presentado por Dahquist y Björck (1974), ilustra el


fenómeno conocido como inestabilidad numérica. Supóngase que se requiere
calcular, para n = 0, 1, 2, ...

xn
yn  
1
dx
0 x  10
Puede observarse que los yn deben ser positivos y que decrecen con n . Además:
n 1
xn 1 10 x 1
y n  10 y n1  
1
dx   dx   x n1dx 
1

0 x  10 0 x  10 0 n
Y por lo tanto podría hacerse la recursión: yn  1/ n  10 yn1 determinando los
sucesivos yn a partir de un valor inicial, como y 0 . Sabiendo que:
xn
dx   loge x  10 0  loge 11/ 10  0.095 310 180
1
y0  
1
0 x  10
Se obtienen:
y1  1  10 y0  0.046 898 202
y 2  12  10 y1  0.031 017 980

y13  131  10 y12  0.005 784 969
y14  141  10 y13  0.013 578 879 ¡Sorprendente que se obtenga y14  y13 !
y15  151  10 y14  0.069 122 123 ¡Absurdo!

H. Scaletti - Métodos Numéricos: Introducción 1-4


y16  161  10 y15  0.753 721 231
y17  171  10 y16  7.478 388 781

Los malos resultados se deben a que las aproximaciones y el uso de un número finito de
dígitos introducen errores, que se “propagan” a etapas posteriores del cálculo. La forma
en que estos errores se propagan (o disipan) es decisiva en la utilidad de un método
numérico dado.
En el proceso utilizado, un pequeño error  en y0 se multiplica por 10 en el cálculo
de y1 . Sin tener en consideración los errores introducidos en los redondeos de este
paso, se produce un error de 100 en y 2 . El resultado del paso k está afectado por el
error inicial multiplicado por  10 . A esto deben agregarse los efectos de los errores
k

adicionales introducidos por la aritmética imperfecta en todos los pasos intermedios. Si


se hubieran utilizado más cifras decimales en los cálculos, los resultados absurdos
habrían también aparecido, aunque un tanto más adelante en el proceso. La
inestabilidad numérica puede evitarse seleccionando un algoritmo más adecuado. Así,
en este caso utilizando la fórmula “en sentido contrario”:

1 1 
y n -1    yn 
10  n 
el error queda dividido por  10 en cada paso. Sabiendo que n
yn decrece cuando
crece, pueden iniciarse los cálculos con una aproximación tan pobre como y10  0 ,
obteniéndose:

y9  101 101  0  0.01


y8  101  19  y9   0.010 111111
y7  101 18  y8   0.011 488 889
y6  101  17  y7   0.013136 825
y así sucesivamente:
y5  0.015 352 984
y4  0.018 464 702
y3  0.023153 530
y2  0.031 017 980
y1  0.046 898 202
y0  0.095 310180 ¡Correcto! (a pesar de la errada información inicial)

Sin embargo, no debe creerse que el utilizar fórmulas “al revés” es el remedio para todos
los problemas numéricos. Cualquier proceso que se plantee no será siempre aplicable,
ni en todos los casos el más efectivo.

Referencias

 Dahlquist, G. y A. Björck (1974), Numerical Methods. Prentice Hall, Englewood Cliffs, N.J.

H. Scaletti - Métodos Numéricos: Introducción 1-5


 Forsythe, G.E. (1969). “What is a satisfactory quadratic equation solver?” en Constructive
Aspects of the Fundamental Theorem of Algebra editado por Dejon, B. y Henrici, P. Wiley-
Interscience, Londres.

 Wikipedia (2021). YBC 7289. Wikipedia, The Free Encyclopedia. Recuperado el 13/03/2022 de
https://en.wikipedia.org/w/index.php?title=YBC_7289&oldid=1060107214

Ejercicios

1. La ecuación x 3  6 x 2  11x  6  0 tiene tres raíces (1, 2 y 3). Utilice el método de Newton y
observe la raíz que se obtiene con distintas aproximaciones iniciales x 0 . ¿A qué se deben las
dificultades para hallar la raíz x  2 ?

2. Considere la ecuación diferencial y  cosx  y  con condición inicial y 0  1 . Compare los
resultados obtenidos para y 2 al utilizar el método de Euler con x  0.025, 0.05 , 0.1 o
0.2
1 xn
3. Derive una fórmula de recursión para calcular las integrales: y n   dx
0 5x  1

Con esa fórmula y usando una hoja de cálculo, a partir de y 0  15 log e 6  obtenga
y1 y2  y20 . Luego, a partir de y 20 obtenga y19 y18  y0 . Explique los resultados.

H. Scaletti - Métodos Numéricos: Introducción 1-6

También podría gustarte