Factorización de matrices en Sage

Como se indica en esta entrada, un sistema linear Ax=b se resuelve con el operador \:

sage: A = matrix(RDF, 2,2, [1..4])
sage: b = vector(RDF,[1,1])
sage: x = A\b
(-1.0, 1.0)

La matriz del sistema puede factorizarse como paso previo a la resolución (véase la ayuda de Sage):

sage: A = matrix(RDF, [[1, -1,  0,  2,  4,  7, -1],
...                    [2, -1,  0,  6,  4,  8, -2],
...                    [2,  0,  1,  4,  2,  6,  0],
...                    [1,  0, -1,  8, -1, -1, -3],
...                    [1,  1,  2, -2, -1,  1,  3]])
sage: P, L, U = A.LU()
sage: P  # decimales innnecesarios eliminados...
[0 0 0 0 1]
[1 0 0 0 0]
[0 0 0 1 0]
[0 0 1 0 0]
[0 1 0 0 0]
sage: L
[ 1.   0.   0.   0.  0.]
[ 0.5  1.   0.   0.  0.]
[ 0.5  0.3  1.   0.  0.]
[ 1.   0.6  0.2  1.  0.]
[ 0.5 -0.3 -0.4  0.  1.]
sage: U
[ 2. -1.   0.   6.   4.   8.  -2.]
[ 0.  1.5  2.  -5.  -3.  -3.   4.]
[ 0.  0.  -1.5  6.  -2.  -4.  -3.]
[ 0.  0.   0.   0.   0.4  0.8  0.]
[ 0.  0.   0.   0.   0.2  0.4  0.]
sage: nor(P*A - L*U)
4.965068306494546e-16

Los comandos QR y cholesky permiten realizar factorizaciones QR y Cholesky, respectivamente.
Los comandos is_symmetric e is_positive_definite permiten saber si una matriz es simétrica y definida positiva.

Advertisements
Esta entrada foi publicada en Sage. Ligazón permanente.

Deixar unha resposta

introduce os teu datos ou preme nunha das iconas:

Logotipo de WordPress.com

Estás a comentar desde a túa conta de WordPress.com. Sair / Cambiar )

Twitter picture

Estás a comentar desde a túa conta de Twitter. Sair / Cambiar )

Facebook photo

Estás a comentar desde a túa conta de Facebook. Sair / Cambiar )

Google+ photo

Estás a comentar desde a túa conta de Google+. Sair / Cambiar )

Conectando a %s