Escolar Documentos
Profissional Documentos
Cultura Documentos
moreno/94/print
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.
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:
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.
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 .
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
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.
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.
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 .
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)...
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
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
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
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