Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
- Mtodo LU.
- Eliminacin de Gauss
- Eliminacin de Gauss-Jordan.
Sistemas lineales: Mtodos iterativos.
- Mtodo de Jacobi.
- Mtodo de Gauss-Seidel.
- Mtodo de sobrerrelajacin.
NOTACIN MATRICIAL:
An1
A12
A22
An 2
.... A1n
.... A2 n
Aij
.... Ann
x1
x
x 2 x i
xn
b1
b
b 2 bi
bn
3 x1 2 x 2 4 x 3 14
x1 2 x 2 7
x1 3 x 2 2 x 3 2
2 4 x1 14
3
1 2 0 x2 7
1 3 2 x3 2
En C++ :
Aij A[i ][ j ]
Recordemos que en C++ los elementos de un vector de dimensin n se numeran con los
ndices de 0 a n-1. Lo mismo sucede con las filas y columnas de una matriz de dimensin
nxn.
2
0 0 2 x3 10
Mtodo LU.
Dado el sistema lineal de ecuaciones Ax = b, queremos factorizar A = LU, donde L y U son
dos matrices triangulares (inferior y superior, respectivamente).
Una matriz cuadrada A, no singular, puede resolverse como el producto de una matriz
triangular inferior (L) y una matriz triangular superior (U) de infinitas formas. Las ms
utilizadas son:
Lz b
Ax b LUx b
Ux
z
A41
A12
A13
A22
A23
A32
A42
A33
A43
A14 1
A24 L21
A34 L31
A44 L41
L32
L42
1
L43
0 0
0 U 33
1 0
0
0
U14
U 24
U 34
U 44
Para obtener los elementos de L y U, multiplicamos las filas de L por las columnas de U e
identificamos trminos con los elementos de A.
fila L
col. U
U 11 A11
U 12 A12
U 13 A13
U 14 A14
obtenemos:
1 fila de U
1 fila de L
L21
1
A21
U 11
U 22 A22 L21U12
U 23 A23 L21U 13
U 24 A24 L21U 14
obtenemos:
2 fila de U
2 fila de L
U 2 j A2 j L21U 1 j
El clculo de determinados elementos de U requiere elementos de L, que deben de haber
sido previamente calculados, y viceversa.
fila L
3
* col. U
*
L31
1
A31
U 11
1
A32 L31U12
U 22
L32
obtenemos:
3 fila de U
3 fila de L
31
U 3 j A3 j L3kU kj
k 1
L41
1
A41
U 11
1
A42 L41U12
U 22
1
A43 L41U 13 L42U 23
U 33
L42
L43
obtenemos:
4 fila de U
4 fila de L
De este caso particular podemos inducir las frmulas para el caso ms general posible:
i 1
U ij Aij LikU kj i j;
Uij=0 i > j
k 1
j 1
1
Lij
Aij LikU kj i > j;
U jj
k 1
L ij=0 i < j;
L ii=1
1
1
1
A31 ; L41
A41
A21 ; L31
U 11
U 11
U 11
identificamos trminos:
U 21 0
A22 L21U 12 U 22 U 22 A22 L21U 12
A23 L21U 13 U 23 U 23 A23 L21U 13
A24 L21U 14 U 24 U 24 A24 L21U 14
Se obtiene la segunda fila de U.
(2b) Multiplicamos las filas de L (excepto primera y segunda) por la segunda columna de U:
L12 0 ; L22 1; L32
1
A32 L31U 12 ; L42 1 A42 L41U 12
U 22
U 22
Segunda columna de L.
(3a) Multiplicamos la tercera fila de L por las columnas de U (excepto la primera y
segunda), e identificamos trminos:
U 31 0
U 32 0
A33 U 33 L31U 13 L32U 23 U 33 A33 L31U 13 L32U 23
A34 U 34 L31U 14 L32U 24 U 34 A34 L31U 14 L32U 24
Tercera columna de L.
1
A43 L41U 13 L42U 23
U 33
Cuarta fila de U.
U 41 0 ; U 42 0 ; U 43 0 ; U 44 A44 L41U 14 L42U 24 L43U 34
Cuarta columna de L.
L14 0 ; L24 0 ; L34 0 ; L44 1
Observar que con este procedimiento se sigue un camino por el cual se alterna la
1
Lij
U jj
A j 1L U i > j;
ij ik kj
k 1
L ij =0 i < j;
L ii =1
Lz b
Ax b LUx b
Ux
z
(a)
1
L
Lz b 21
L31
L41
L32
L42
1
L43
0 z1 b1
0 z 2 b2
0 z3 b3
1 z 4 b4
incgnitas:
i 1
zi bi Lij z j i=1 ,, n
j 1
(b)
U 11 U 12 U 13
0 U
U 23
22
Ux z
0 U 33
0
0
0
0
U 14 x1 z1
U 24 x2 z 2
U 34 x3 z3
U 44 x4 z 4
1
z3 U 34 x4
U 33
U 22 x2 U 23 x3 U 24 x4 z 2 x2
1
z2 U 23 x3 U 24 x4
U 22
U 11 x1 U 12 x2 U 13 x3 U 14 x4 z1 x1
1
z1 U12 x2 U 13 x3 U14 x4
U 11
De donde se puede inducir una expresin para el caso general de n ecuaciones con n
incgnitas:
1
xi
U ii
zi
U
x
ij j i=n,,1
j i 1
Recordemos que en C++ los elementos de un vector de dimensin n se numeran con los
ndices de 0 a n-1. Lo mismo sucede con las filas y columnas de una matriz de dimensin
nxn.
Adaptacin de las frmulas generales numerando los ndices de 0 a n-1 (i, j =0, , n-1)
i 1
U ij Aij LikU kj i j;
Uij=0 i > j
k 0
j 1
1
Lij
Aij LikU kj i > j;
U jj
k 0
i 1
zi bi Lij z j
i=0,,n-1
j 0
1
xi
U ii
zi
U
x
ij j
j i 1
n 1
i =n-1,,0
Ejemplo:
3
Ax b ; A
2
3
4
3
2
2
3
4
3
1
1
2
1
; b
3
1
4
1
Paso 1: Factorizacin A LU
4
3
A
2
3 2 1 1
4 3 2 L21
L
3 4 3
31
2 3 4 L41
0
1
0
0
L32
L42
L43
0 U 11 U 12 U 13
0 0 U 22 U 23
0 0
0 U 33
1 0
0
0
U 14
U 24
U 34
U 44
0
3 4 1
L
12 67 1
1 / 4 5 7 5 6
0
2
1
4 3
0
0 7 4 3 2 5 4
;
U
0 0 12 7 10 7
0
1
0
53
0 0
Paso 2: Resolucin de Lz b .
0
0
1
0
3 4 1
1 2 6 7 1
1 / 4 5 7 5 6
0 z1 1 z1 1
0 z 2 1 z 2 1 4
0 z3 1 z3 12 7
1 z 4 1 z 4 0
Paso 3: Resolucin de Ux z .
2
1 x1 1 x1 0
4 3
x
4
0
7
4
3
2
5
4
1
x2 1
2
0 0 12 7 10 7 x 12 7 x 1
3
3
0
5 3 x4 0 x4 0
0 0
9 1 1
10
Ejemplo:
Ax b ; A 2 10 3 ; b 19
3 4 11
0
Paso 1: Factorizacin A LU
0 0 U 11 U 12 U 13
9 1 1 1
A 2 10 3 L21 1 0 0 U 22 U 23
0 U 33
3 4 11 L31 L32 1 0
Igualando trminos obtenemos:
0
0
1
1
1
9
L 2 9
1
0 ; U 0 88 9 25 9
0
9.625
1 99 264 1
0
Paso 2: Resolucin de Lz
0
1
1
2 9
1 99 264
b.
0 z1 10
10
0 z 2 9 z 151 9
1 z 3 0
9.625
Paso 3: Resolucin de Ux z .
1
1 x1 10
9
1
0 88 9 25 9 x2 151 9 x 2
0
1
0
9.625 x3 9.625
Ax f ;
0
b1 c1 0
a b c
0
2
2
2
0 a3 b3 c3
A
0 0 an1 bn1
an
0 0
0
0
;
0
cn1
bn
f1
f
2
f3
f
f n1
f
n
2
A LU 0
0 1
0 0
0 0
0 n 1 0
0
1
0
0
1
1 0
2 2
0 n 1
0
0
n 1
n
(1) Para obtener los elementos de L y U, multiplicamos las filas de L por las columnas de U
i = c i ; i = 1,, n-1
1 b1 i
ai
i 1
i bi i ci 1 ; i = 2, , n
(bucle recorrido de 2 a n)
Lz
(2) Posteriormente para resolver el sistema: Ax f LUx f
Ux
Se pueden
programar
a la vez
(bucle recorrido de 2 a n)
zn
; xi
zi ci xi 1
; i = n-1, , 1
Consejos de programacin: