Anda di halaman 1dari 20

ndice de trminos.

i.i. Lower: inferior.


i.ii. Upper: superior.
ndice de figuras.


Figura i.i. Matriz cuadrada, es decir una matriz con el nmero de columnas igual al
nmero de renglones.
Figura i.ii. Las matrices [L] y [U] son resultado del proceso del mtodo de LU.
Figura i.iii. La multiplicacin de las matrices [L] y [U] dan como resultado la matriz
[A].
Figura i.iv. Diagrama de flujo del mtodo de LU.
Figura i.v. Diagrama de flujo del mtodo de Cholesky.
Figura i.vi. Programa en cdigo C, mostrando la descomposicin de una matriz,
utilizando el ejemplo nmero cinco del mtodo de LU.
Figura i.vii. Programa en cdigo C, mostrando la resolucin de un sistema de
ecuaciones, utilizando el ejemplo nmero cinco del mtodo de Cholesky.
Resumen
El empleo de mtodos numricos es indispensable para encontrar la respuesta a
un problema, pero no todo se basa en el tiempo, hay factores que ocasionan
problemas, como lo son la interaccin de ciertos materiales, fuerzas.
Objetivo general.
Introduccin.
Una matriz simtrica definida positiva puede ser descompuesta como el producto
de una matriz triangular inferior y la traspuesta de la matriz triangular inferior. La
matriz triangular inferior es el tringulo de Cholesky de la matriz original positiva
definida. El resultado de Cholesky ha sido extendido a matrices con entradas
complejas. Es una manera de resolver sistemas de ecuaciones matriciales y se
deriva de la factorizacin LU con una pequea variacin.

Cualquier matriz cuadrada A con pivotes no nulos puede ser escrita como el
producto de una matriz triangular inferior L y una matriz triangular superior U; esto
recibe el nombre de factorizacin LU. Sin embargo, si A es simtrica y definida
positiva, se pueden escoger los factores tales que U es la transpuesta de L, y esto
se llama la descomposicin o factorizacin de Cholesky. Tanto la descomposicin
LU como la descomposicin de Cholesky son usadas para resolver sistemas de
ecuaciones lineales. Cuando es aplicable, la descomposicin de Cholesky es dos
veces ms eficiente que la descomposicin LU.
Marco teorico.
Mtodo de LU y Cholesky.
Son mtodos similares para encontrar respuestas a variables que sirven para
describir que pasa en cierto punto o rea, como una fuerza, presin o temperatura
o para establecer un sistema en equilibrio.


Mtodo de Lu.

Su nombre se deriva de las palabras inglesas Lower" y Upper.
Estudiando el proceso que se sigue en la descomposicin LU es posible
comprender el porqu de este nombre, analizando cmo una matri z ori ginal se
descompone en dos matrices triangulares, una superior y otra inferior. La
descomposicin LU involucra solo operaciones sobre los coeficientes de
la matri z [A], proporcionando un medio eficiente para calcul ar
la matri z inversa o resol ver sistemas de lgebra lineal. Primeramente se debe
obtener la matriz [L] y la matriz [U]. [L] es una matri z diagonal inferior con
nmeros 1 sobre la diagonal. [U] es una matriz diagonal superior en la que
sobre la diagonal no necesariamente tiene que haber nmeros 1.El primer paso es
descomponer o transformar [A] en [L] y [U], es decir obtener la matriz triangular
inferior [L] y la matriz triangular superior [U].

Figura 1.1.
Pasos para encontrar la matriz triangular superior (matriz [U])
1. Hacer cero todos los valores abajo del pivote sin convertir este en 1.
2. Para lograr lo anterior se requiere obtener un factor el cual es necesario
para convertir a cero los valores abajo del pivote.
3. Dicho factor es igual al nmero que se desea convertir en cero entre el
nmero pivote. Este factor multiplicado por -1 se multiplica luego por el
pivote y a ese resultado se le suma el valor que se encuentra en la posicin
a cambiar (el valor en la posicin que se convertir en cero).

Pasos para encontrar la matriz triangular inferior (matriz [L])
Para encontrar la matriz triangular inferior se busca hacer ceros los valores de
arriba de cada pivote, as como tambin convertir en 1 cada pivote. Se utiliza el
mismo concepto de factor explicado anteriormente y se ubican todos los
factores debajo dela diagonal segn corresponda en cada uno.
Esquemticamente se busca lo de siguiente:

Figura 1.2.
Debido a que [A] = [L] [U], al encontrar [L] y [U] a partir de [A] no se altera en nada
la ecuacin y se tiene lo siguiente:

Figura 1.3.

Por lo tanto, si , entonces , de manera que .

Pasos para resolver un sistema de ecuaciones por el mtodo de .

1. Obtener la matriz triangular inferior L y la matriz triangular superior U.
2. Resolver (para encontrar y).
3. El resultado del paso anterior se guarda en una matriz nueva de nombre y.
4. Realizar (para encontrar x).
5. El resultado del paso anterior se almacena en una matriz nueva llamada x, la
cual brinda los valores correspondientes a las incgnitas de la ecuacin.


Mtodo de Cholesky

Cuando se tiene una matriz a coeficientes reales, simtrica y definida positiva,
entonces se dispone de una factorizacin de tipo LU especial, donde U = L
T
. El
mtodo de Cholesky es el que aprovecha la ventaja de la simetra de A para
encontrar una matriz L tal que A = L L
T
. Esta descomposicin es nica.
Si A = L L
T
, el sistema original A x = b se puede escribir como:

Este mtodo tiene un planteo recursivo, en el que se descomponen
sucesivamente los menores principales de la matriz A. Se llamar A
[m]
a los
menores principales de orden m. Se empieza por el menor principal de orden 1,
luego el de orden 2 y as sucesivamente hasta el de orden n, es decir la matriz
original. La incgnita es una nica matriz triangular inferior L, y su transpuesta
hace de matriz triangular superior.

Suponiendo ahora descompuesto el menor de orden k, es decir A
[k]
= L
[k]
U
[k]
,
interesa estudiar cmo se descompone el siguiente menor principal A
[k+1]
. As,
A
[k+1]
= L
[k+1]
U
[k+1]


Donde f
[k+1]
= (a
k+1 1
, a
k+1 2
, a
k+1 3, . . .,
a
k+1 k
)
T
, y l
[k+1]
= (l
k+1 1
, l
k+1 2
, l
k+1 3, . . .,
l
k+1 k
)
T

Tras proceder a multiplicar L
[k+1]
y U
[k+1]
, se obtienen las ecuaciones necesarias
para la descomposicin del menor principal A
[k+1]
:
L
[k]
l
[k+1]
= f
[k+1]


El algoritmo que permite obtener la matriz L, a partir de A se escribe a partir de las
siguientes expresiones:



Ejemplo 1 del mtodo de Cholesky
Resolver el siguiente sistema de ecuaciones lineales usando el mtodo de Cholesky
A =
(
(
(

979 225 55
225 55 15
55 15 6
y C=
(
(
(

100
150
100

En el mtodo de Cholesky el primer paso es encontrar la matriz L usando las frmulas
ii
i
j
kj ij ki
ki
l
l l a
l

=
1
1
Y

=
=
1
1
2
k
j
kj kk kk
l a l

La primera ecuacin se usa para elementos fuera de la diagonal y la segunda para elementos en la
diagonal principal.
Entonces.
6
11 11
= = a l = 2.4495
4495 . 2
15
11
21
21
= =
l
a
l = 6.1237
4495 . 2
55
11
31
21
= =
l
a
l = 22.454 Ya sabemos que l
12
= 0
2 2
21 22 22
1237 . 6 55 = = l a l = 4.1833
1833 . 4
) 454 . 22 )( 1237 . 6 ( 55
22
31 21 32
32

=

=
l
l l a
l = 20.916
De igual forma l
13
= l
23
= 0 y
) 916 . 20 454 . 22 ( 979 ) (
2 2 2
32
2
31 33 33
+ = + = l l a l = 6.1106
La matriz L es igual a
(
(
(

=
1106 . 6 916 . 20 454 . 22
0 1833 . 4 1237 . 6
0 0 4495 . 2
L
En el mtodo de Cholesky U = L
T

(
(
(

=
1106 . 6 0 0
916 . 20 1833 . 4 0
454 . 22 1237 . 6 4495 . 2
U
El siguiente paso es encontrar el vector D de la misma manera que en el mtodo de
descomposicin de LU
ii
i
j
j ij i
i
l
d l c
d

=
1
1

4495 . 2
100
11
1
1
= =
l
c
d =40.8246
1833 . 4
) 8246 . 40 )( 1237 . 6 ( 150
22
1 21 2
2

=

=
l
d l c
d =-23.9045
1106 . 6
) 9045 . 23 )( 916 . 20 ( ) 8246 . 40 )( 454 . 22 (( 100 ) (
33
2 32 1 31 3
3
+
=
+
=
l
d l d l c
d =-51.826
Finalmente se calcula el vector de incgnitas comenzando por la ltima x.
ii
n
i j
j ij i
i
u
x u d
x

+ =

=
1

33
3
3
u
d
x = =-8.481
22
3 23 2
2
u
x u d
x

= =

= 36.69897
11
3 13 2 12 1
1
) (
u
x u x u d
x
+
= =


= 2.685

Ejemplo 2 del mtodo de Cholesky
(



)(

) (



(



)(

) (



(



)(

) (



Ejemplo 3 del mtodo de Cholesky
(



)(

) (

)

(



)(

) (




)(

) (



Ejemplo 4 del mtodo de Cholesky
(



)(

) (

)

(



)

(



)

(



)(

) (



(



)(

) (



Ejemplo 5 del mtodo de Cholesky

(



)(

) (

)

(



)

(



)

(



)(

) (



(



)(

) (




Ejemplo 1 del mtodo de LU

Problema: Encontrar los valores de

para el siguiente sistema de


ecuaciones:



Solucion

(



) (

)

Iteracion 1.
Se escuentra el valor de .
(



)

(



)




(



) (



)

Despejamos a de

(



)(

) (



El paso siguiente es econtrar a

.

Realizamos .

(



)(

) (




Ejemplo 2 del mtodo de LU

Problema: Encontrar los valores de

para el siguiente sistema de


ecuaciones:



(



) (

)

(



)

(



)


(



) (



)

(



)(

) (


(



)(

) (



Ejemplo 3 del mtodo de LU

Problema: Encontrar los valores de

para el siguiente sistema de


ecuaciones:

) (

)

(

)
(

) (

)

(

)(

) (

)(

) (



Ejemplo 4 del mtodo de LU

Problema: Encontrar los valores de

para el siguiente sistema de


ecuaciones:




(



) (

)

(



)

(



)


(



) (



)

(



)(

) (


(



)(

) (



Ejemplo 5 del mtodo de LU

Problema: Encontrar los valores de

para el siguiente sistema de


ecuaciones:




(



) (

)

(



)

(



)


(



) (



)

(



)(

) (


(



)(

) (



Algoritmo de programa.














Mtodo de
Lu. Inicio.
Ingresar el nmero de
ecuaciones n, las
constantes de la matriz A
igualadas a b. A,n,b.
A





















Figura 1.4.





K=1, n-1
K=1, n-1
Factor=

=Factor
J=k+1, n

=Factor
i=2, n
Sum=bi
j=1, i-1
Sum=Sum-

*bi
bi=sum


I= 1, n J=i+1, n
I=n-1, 1, -1


Sum=0
Sum=Sum+


Fin.
























Figura 1.5.


J = 1
I = J+1
J = J+1
INICIO
Ingresa:
MAT [S]nxn
MUD
J<=
MUD+1 ?
N S
Q = J-MUD Q = 1
I = I+1
J >
MUD+1 ?
N
o
S
i
R = J-MUD R = 1

I >N
?
J>N
?
FIN
N
N
S
S
Prueba de escritorio.

Figura 1.6.

Figura 1.7.
Programa del mtodo.




//Mtodo de LU.
#include<stdlib.h>
#include<math.h>
#include<string.h>
#include <iostream>
#include <conio.h>
using namespace std;

int main()
{
int n,m,i,j,k;
float a[35][36],b[35][36],apoyo;
do
{
system("cls");
cout<<"\nMETODO DE LU"<<endl;
cout<<"\nIngrese el numero de Ecuaciones = ";
cin>>n;
cout<<"\nIngrese coeficientes\n";
/* Datos para iniciar mtodo */
for(i=1;i<=n;i++)
{
cout<<"\nFila"<<i<<endl;
for(j=1;j<=n+1;j++)
{
cout<<"Ingrese a("<<i<<","<<j<<") = ";
cin>>a[i][j];
}
}
/* Fin Del Ciclo De Solicitud De Datos */
/* Proceso Principal */
m=n+1;
do
{
if(a[1][1]==0)
{
k=m-1;
for(i=2;i<=k;i++)
{
if(a[i][1]!=0)
{
for(j=1;j<=m;j++)
{
apoyo=a[i][j];
a[i][j]=a[1][j];
a[1][j]=apoyo;
}
}
}
}
else
{
for(j=2;j<=m;j++)
{
for(i=2;i<=n;i++)
{
b[i-1][j-1]=a[i][j]-a[1][j]*a[i][1]/a[1][1];
}
}
for(j=2;j<=m;j++)
{
b[n][j-1]=a[1][j]/a[1][1];
}
m=m-1;
for(j=1;j<=m;j++)
{
for(i=1;i<=n;i++)
{
a[i][j]=b[i][j];
}
}
}
}
while(m>1);
cout<<"\n\nSOLUCION DEL SISTEMA"<<endl;
for(i=1;i<=n;i++)
{
cout<<"\nX("<<i<<") = "<<a[i][1];
}
getch();
}
while(1);
}

//Mtodo de Cholesky
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#include <cmath>
#include <math.h>
#include <iostream>
#include <fstream>
#include <string.h>
#include <conio.h>
#include <string>
#include <utility>
#include <iomanip>
#include <windows.h>
#include <windows.h>
#include<stdlib.h>
//#include<iostream.h>
#include<math.h>
//#include<iomanip.h>
#include<string.h>
using namespace std;
double *cholesky(double *A, int n) {
double *L = (double*)calloc(n * n, sizeof(double));
if (L == NULL)
exit(EXIT_FAILURE);

for (int i = 0; i < n; i++)
for (int j = 0; j < (i+1); j++) {
double s = 0;
for (int k = 0; k < j; k++)
s += L[i * n + k] * L[j * n + k];
L[i * n + j] = (i == j) ?
sqrt(A[i * n + i] - s) :
(1.0 / L[j * n + j] * (A[i * n + j] - s));
}

return L;
}

void show_matrix(double *A, int n) {
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++)
printf("%2.5f ", A[i * n + j]);
printf("\n");
}
}

int main() {
int n;
cout<<"Numero de incosnitas"<<endl;
cin>>n;
double m1[n*n];

for(int i=0;i<n*n;i++)
{
cin>>m1[i];
}
system("cls");
cout<<"La matriz es:"<<endl<<endl;
for(int i=0,c=0;i<n*n;i++)
{
cout<<m1[i]<<" ";
c++;
if(c==3)
{cout<<endl;
c=0;}

}
cout<<"[L]="<<endl;
double *c1 = cholesky(m1, n);

show_matrix(c1, n);
printf("\n");
free(c1);
system("pause");

return 0;
}


Conclusiones
Juan Pablo Lpez Franco
No solo se usa un mtodo para resolver todos los problemas o conflictos de una sola rea o todas,
existen ciertos mtodos para cada una, pero un mtodo no podr resolver todos los problemas de
cierta rea, as que se tendrn dos o ms mtodos los cuales parecern semejantes.
Bibliografa

Chapra, Stven; Canale, Raymond. Mtodos numricos para ingenieros. 3ra Edicin. McGraw Hill.

Anda mungkin juga menyukai