Você está na página 1de 8

Introducción a los Métodos Numéricos -- Sage http://sage.math.canterbury.ac.nz/home/soledad.

moreno/94/print

Introducción a los Métodos Numéricos


Objetivos del análisis numérico
Para resolver situaciones de la vida real mediante las matemáticas, es necesario diseñar
modelos que reformulen el problema mediante variables, parámetros y relaciones entre
ellos.

Habitualmente es difícil o imposible encontrar la solución de estos problemas de forma


analítica, y es necesario recurrir al análisis numérico, cuyo objetivo es el diseño de métodos
que permitan resolver numéricamente y de forma efectiva problemas matemáticos,
modelados de procesos de la vida real.

Ejemplo: Es frecuente la necesidad de calcular la probabilidad de que una variable aleatoria


con distribución normal tome valores entre ciertos límites. Pongamos por ejemplo que la
media de dicha variable aleatoria es 0, la varianza 1 y los límites 0.5 y 0.8. Esta
probabilidad se calcula mediante la integral definida

El valor numérico de esta expresión, que puede calcularse mediante métodos de cuadratura
numérica (que se verán más adelante), es , sin embargo no es posible calcular este
valor mediante técnicas analíticas, ya que la primitiva de la función no puede
obtenerse mediante funciones elementales.

Ejemplo: El valor del determinante de una matriz de viene dado por la


fórmula de Leibniz

donde la suma se calcula sobre todas las permutaciones de los números . Esta
fórmula permite calcular el determinante de una matriz cuadrada, pero no es efectiva a
menos que sea muy pequeño. Por ejemplo, para , supondría el cálculo de
cuatrillones de permutaciones y ni siquiera los ordenadores más rápidos podrían hallar
todos los términos de esa suma en tiempo "razonable" (supondría más de años).

Errores
Al utilizar métodos numéricos no es posible obtener la solución exacta del problema, sino
una solución aproximada. Si denotamos a la solución aproximada y a la
solución exacta, podemos definir

error absoluto:

Un defecto de esta definición es que no considera el orden de magnitud del valor que se
está midiendo. Por ejemplo, un error de un centímetro es más significativo si se está
midiendo un remache que un puente. Una manera de medir las magnitudes de las
cantidades es normalizando el error absoluto respecto a la solución real, definiéndose así

1 de 8 14/10/2013 20:48
Introducción a los Métodos Numéricos -- Sage http://sage.math.canterbury.ac.nz/home/soledad.moreno/94/print

error relativo:

El error relativo es un error porcentual y es frecuente expresarlo como un porcentaje (sin


más que multiplicarlo por 100).

En la práctica es imposible calcular este error de forma exacta, ya que si lo conociéramos,


tendríamos la solución exacta y no tendría sentido calcular la solución aproximada. Es
necesario entonces estimar este error. Es frecuente que los métodos numéricos vengan
acompañados de una acotación del error, es decir, de un número positivo C tal que ,
aunque a menudo estas cotas del error son muy grandes y carecen de valor práctico.
Algunos métodos proporcionan también una estimación del error, que se espera se
aproxime a aunque a veces esto no sea cierto.

Representación de números reales en el


ordenador. Errores de redondeo.
La forma más sencilla de representar un número real es mediante su expresión decimal.
Ésta puede ser finita, como en o infinita, en cuyo caso se representa con
un truncamiento adecuado, como en o en .

Los ordenadores utilizan internamente la representación de punto flotante normalizada, que


consiste en la expresión de un número real mediante

donde es el signo, a se le denomina la mantisa y a el exponente. La mantisa es un


número decimal con expresión finita, el número de cifras que tiene depende de la precisión
de la máquina, su primera cifra es un número entre 1 y 9, seguido de la coma y las demás
cifras, resultando .

Para representar números reales de forma exacta, deberíamos tener mantisas infinitas, lo
cual es imposible. De esta forma, el ordenador sustituye intervalos continuos por conjuntos
discretos. Esto da lugar a una aritmética diferente a la "verdadera", lo que deriva en los
llamados errores de redondeo., errores derivados de la mantisa finita.

Ejemplo: En un ordenador con mantisa de 2 cifras, es , con error


aproximado del 1% y también es , con error
aproximado del 1%. Si en ese ordenador calculamos , obtenemos 0, cantidad
errónea al 100% como aproximación a .

Esto ocurre de manera general, al restar dos aproximaciones a números reales muy
próximos entre sí, se obtiene que aproxima mal a la verdadera diferencia .

Se dice que un valor aproxima a con cifras significativas o dígitos


significativos si , es el mayor natural tal que

Ejemplo: Veamos otro ejemplo de pérdida de precisión debida al error de redondeo. Sean
los números y , el valor exacto de la resta es
. En un ordenador con mantisa de 4 cifras, las aproximaciones de y

2 de 8 14/10/2013 20:48
Introducción a los Métodos Numéricos -- Sage http://sage.math.canterbury.ac.nz/home/soledad.moreno/94/print

son y . La resta es -q^{\ast}=0.0002. Veamos el


error relativo de esta aproximación:

Esto indica que en esta aproximación sólo hay una cifra significativa, con lo que se produce
una pérdida de precisión debida a errores de redondeo.

Operaciones en Sage
Operar con números en coma flotante en Sage es sencillo, utilizamos los operadores +,
para la suma, - para la resta, * para el producto y / para el cociente. Un número en coma
flotante en Sage se escribe de la manera , donde es la mantisa y el
exponente, que puede ser positivo o negativo.

5.03e-2+3.e-1
0.350300000000000
5.03e-2-3.e-1
-0.249700000000000
5.03e-2*3.e-1
0.0150900000000000
5.03e-2/3.e-1
0.167666666666667
A veces es conveniente mostrar un número determinado de dígitos o cambiar la precisión
con la que trabajamos. Para ello podemos utilizar la función implementada n, con los
argumentos opcionales prec (para cambiar el número de bits de precisión) y digits (para
cambiar el número de dígitos de precisión):
pi.n(digits=16)
3.141592653589793
pi.n(prec=200)
3.1415926535897932384626433832795028841971693993751058209749

Métodos iterativos
Los métodos iterativos consisten en el cálculo de aproximaciones sucesivas a la solución de
un problema matemático, partiendo de una estimación inicial. Es frecuente utilizar bucles
para mostrar cada una de las iteraciones. El resultado es una sucesión de números que
puede converger o no a la solución del problema. Como es lógico, es imposible hacer
infinitas iteraciones, con lo cual se deja de iterar al alcanzar un número determinado de
iteraciones o al alcanzar una tolerancia prefijada anteriormente. Se llaman criterios de
parada y en cada método se utilizará el más conveniente en cada caso.

Ejemplo: Consideramos el método iterativo generado por la sucesión ,


. Veamos 4 iteraciones y comparemos con la aproximación de :

x=1.5
iterac=4
for n in range(iterac+1):

3 de 8 14/10/2013 20:48
Introducción a los Métodos Numéricos -- Sage http://sage.math.canterbury.ac.nz/home/soledad.moreno/94/print

x=1/x+x/2
print n+1, x, abs(x-sqrt(2).n())/sqrt(2).n()
1 1.41666666666667 0.00173460668094215
2 1.41421568627451 1.50182509277817e-6
3 1.41421356237469 1.12764040382669e-12
4 1.41421356237309 1.57009245868377e-16
5 1.41421356237309 1.57009245868377e-16
Vemos que el error relativo se hace cada vez más pequeño, lo cual indica que la sucesión
"converge" a . En este método paramos al cabo de 4 iteraciones.

Ejemplo:Consideramos el método iterativo generado por la sucesión ,


para aproximar el inverso de 9, . Iterar hasta conseguir que el error
relativo sea menor que .

x=0.15
iterac=0
while (abs(x-1./9)/(1./9))>=1e-3:
iterac=iterac+1
x=2.*x-9.*x^2
print iterac, x, abs(x-1./9)/(1./9)
1 0.0975000000000000 0.122500000000000
2 0.109443750000000 0.0150062499999999
3 0.111086090273437 0.000225187539062505
En este caso, el método se para cuando el error es menor que .

En un método iterativo existe también la noción de velocidad de convergencia. Se dice


que un método iterativo converge a con velocidad de convergencia si

Si se habla de convergencia lineal, si de convergencia cuadrática...

En la práctica, la velocidad de convergencia se aproxima mirando el número de cifras


significativas que se obtienen al iterar el método. Así, aproximadamente, en convergencia
lineal se obtiene una cifra significativa en cada iteración, en convergencia cuadrática se
doblan las cifras significativas en cada iteración...

Funciones en Sage
Sage tiene implementadas funciones elementales como sqrt(x) (raíz cuadrada), sin(x),
cos(x), exp(x) (exponencial), log(x) (logaritmo neperiano), log(x,base=a) (logaritmo en
base a)...

Para dibujarlas, utilizamos la función plot:

g1=plot(sin,(-2*pi,2*pi))
g1;

4 de 8 14/10/2013 20:48
Introducción a los Métodos Numéricos -- Sage http://sage.math.canterbury.ac.nz/home/soledad.moreno/94/print

Para dibujar dos funciones juntas, utilizamos el símbolo +:


g2=plot(log,(0,10),color='purple')
g1+g2;

5 de 8 14/10/2013 20:48
Introducción a los Métodos Numéricos -- Sage http://sage.math.canterbury.ac.nz/home/soledad.moreno/94/print

Las diferentes opciones de la función plot pueden verse introduciendo en Sage:


sage.plot.plot?

También es posible definir funciones en Sage y evaluarlas:

f(x)=x^2-2
plot(f(x),(-2,2))

6 de 8 14/10/2013 20:48
Introducción a los Métodos Numéricos -- Sage http://sage.math.canterbury.ac.nz/home/soledad.moreno/94/print

f(-2)
2
En Sage hay que definir siempre las variables si queremos trabajar de forma simbólica.
Para ello escribimos var('nombre de variable'). La variable está por defecto.
var('a')
a

Integración y derivación exacta en Sage


Es posible derivar e integrar de forma exacta en Sage.

Para hacer la derivada enésima de una función utilizamos diff(f(x),x,n):

f(x)=x^2-2
f2(x)=diff(f(x),x,2)
f2(x)
2

7 de 8 14/10/2013 20:48
Introducción a los Métodos Numéricos -- Sage http://sage.math.canterbury.ac.nz/home/soledad.moreno/94/print

f4(x)=diff(sin(x),x,4)
f4(x),f4(pi)
(sin(x), 0)
Para calcular la primitiva de una función en Sage, utilizamos integral(f(x),x). Para la
integral definida en el intervalo [a,b], utilizamos integral(f(x),x,a,b)
f(x)=x^2-2
integral(f(x),x)
1/3*x^3 - 2*x
integral(f(x),x,0,1)
-5/3

8 de 8 14/10/2013 20:48

Você também pode gostar