Sunteți pe pagina 1din 17

AÑO DE LA LUCHA CONTRA LA CORRUPCIÓN E IMPUNIDAD

UNIVERSIDAD NACIONAL DEL CALLAO

FACULTAD DE CIENCIAS NATURALES Y MATEMÁTICAS

ESCUELA PROFESIONAL DE FÍSICA

SOLUCIÓN DE SISTEMAS DE ECUACIONES LINEALES POR EL


MÉTODO DE CHOLESKY Y EL MÉTODO DE JACOBI

Estudiantes: Salas Benavente, Fredy Jofre

Effio Espinoza, Sebastián

Gonzales Rojas, Juan Daniel

Profesor: Godier Amburgo, Jorge Luis

Curso: Métodos Numéricos de la Física

Bellavista, Callao-2019
INTRODUCCIÓN

En el día a día nos encontramos muchas veces frente a varios tipos de ecuaciones, desde
las más simples hasta las más complejas, es desde este punto que desde hace ya varios
siglos atrás los grandes pensadores y matemáticos nos vienen proporcionando varios tipos
de métodos de solución para estas.

Este es el caso de los sistemas de ecuaciones lineales, que vemos que están implícitos en
problemas matemáticos e incluso problemas físicos, desde este punto de vista nos damos
cuenta que resolverlos conlleva mucho razonamiento y lógica, sin embargo, gracias a los
diferentes métodos numéricos, que nos proporcionan una idea clara, iterativa o secuencial
para la solución, hacen que esta sea mucho más sencilla de hallar y eligiendo el método
adecuado según el tipo de sistema que se nos presente podremos resolverlo en el menor
tiempo posible.

En el presente trabajo solo nos enfocaremos en dos métodos de solución para sistemas de
ecuaciones lineales, un método es iterativo y el otro es mediante descomposición o
factorización, estamos hablando del método de Jacobi y el método de Cholesky
respectivamente, y ambos tienen una particularidad, es que responden solo a un sistema
de ecuaciones lineales cuadrados (n*n), es decir, sistemas donde el número de ecuaciones
es igual al número de incógnitas.
MÉTODO DE CHOLESKY

En matemáticas, la factorización, descomposición o método de Cholesky toma su nombre


del matemático André-Louis Cholesky, quien encontró que una matriz simétricamente
definida positiva puede ser descompuesta como el producto de una matriz triangular
inferior y la transpuesta de la matriz triangular inferior. La matriz triangular inferior es el
triángulo 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 del método de factorización LU con una pequeña
variación.

Cualquier matriz cuadrada 𝐴 con pivotes no nulos puede ser escrita como el producto de
una matriz triangular inferior con pivotes no nulos puede ser escrita como el producto de
una matriz triangular inferior 𝐿 y una matriz triangular superior 𝑈; esto recibe el nombre
de factorización LU. Sin embargo, si 𝐴 es simétrica y definida positiva, se pueden escoger
los factores tales que 𝑈 es la transpuesta de 𝐿, y a esto se le llama el método de Cholesky.

𝑈 = 𝐿𝑇

Para posteriormente obtener:

𝐴 = 𝐿. 𝐿𝑇

𝑎11 𝑎12 𝑎13 ⋯ 𝑎1𝑛 𝑙11 0 0 ⋯ 0 𝑙11 𝑙21 𝑙31 ⋯ 𝑙𝑛1


𝑎21 𝑎22 𝑎23 ⋯ 𝑎2𝑛 𝑙21 𝑙22 0 ⋯ 0 0 𝑙22 𝑙32 ⋯ 𝑙𝑛2
𝑎31 𝑎32 𝑎33 ⋯ 𝑎3𝑛 = 𝑙31 𝑙32 𝑙33 ⋯ 0 . 0 0 𝑙33 ⋯ 𝑙𝑛3 .
⋮ ⋮ ⋮ ⋱ ⋮ ⋮ ⋮ ⋮ ⋱ ⋮ ⋮ ⋮ ⋮ ⋱ ⋮
(𝑎 𝑛1 𝑎𝑛2 𝑎𝑛3 ⋯ 𝑎 𝑛𝑛 ) (𝑙𝑛1 𝑙𝑛2 𝑙𝑛3 ⋯ 𝑙𝑛𝑛 ) ( 0 0 0 ⋯ 𝑙𝑛𝑛 )

Tanto la descomposición LU como la descomposición de Cholesky son usadas para


resolver sistemas de ecuaciones lineales. Cuando es aplicable, la descomposición de
Cholesky es dos veces más eficiente que la descomposición LU.

La factorización puede ser calculada mediante las siguientes fórmulas:

𝑙𝑖𝑖 = √𝑎𝑖𝑖 − ∑𝑖−1 2


𝑘=1 𝑙𝑖𝑘 Para los elementos de la diagonal principal, y:

𝑗−1
𝑎𝑖𝑗 −∑𝑘=1 𝑙𝑖𝑘 𝑙𝑗𝑘
𝑙𝑖𝑗 = Para el resto de elementos de la matriz 𝐿.
𝑙𝑗𝑗
PASOS A SEGUIR PARA LA RESOLUCIÓN DEL MÉTODO

1. Ya declarado el sistema de ecuaciones lineales se procede a llevarlo a su forma


matricial 𝐴 definiéndola como simétrica y positiva. Y se efectúa el sistema
matricial:
𝐴𝑥 = 𝐵
2. Se procede a dar solución al sistema matricial con el método de Cholesky, dando
la siguiente forma:
𝐴 = 𝐿. 𝐿𝑇
3. Luego resolvemos el sistema 𝐿𝑦 = 𝐵 para hallar nuestra matriz 𝑦.
4. Posteriormente y como último paso se resuelve el sistema matricial 𝐿𝑇 𝑥 = 𝑦 para
así obtener los valores de 𝑥.

APLICACIONES

 Mínimos cuadrados lineales


Cuando nuestra matriz 𝐴 es definida simétrica y positiva se puede considerar
como las ecuaciones normales en problemas de mínimos cuadrados lineales en la
cual la matriz 𝐴 proviene de un funcional de energía el cual debe ser positivo bajo
consideraciones físicas.
 Simulación de Montecarlo
El método de Cholesky se usa comúnmente en el método Montecarlo para simular
sistemas con variables múltiples correlacionadas: la matriz de correlación entre
variables es descompuesta para obtener la matriz triangular inferior 𝐿. Aplicando
a esta un vector de ruidos simulados incorrelacionados 𝑈, se produce un vector
𝐿𝑈 con las propiedades de covarianza del sistema a ser modelado.
 Filtro de Kalman
El método de Cholesky se usa frecuentemente para escoger un conjunto de puntos
sigma. El filtro de Kalman sigue el estado promedio de un sistema como un vector
𝑥 de longitud n y covarianza dada por una matriz 𝑃 de tamaño n*n. La matriz 𝑃
es siempre semidefinida positiva y puede descomponerse como 𝐿. 𝐿𝑇 . Las
columnas de 𝐿 pueden ser adicionadas o restadas de la media 𝑥 para formar un
conjunto de 2N vectores llamados puntos sigma. Estos puntos sigma capturan la
media y la covarianza del estado del sistema.
 Problemas diversos de física
 Electrotecnia
 Ley de Hooke
 Conservación de la Energía

LIMITACIONES Y VENTAJAS

 Ventajas
 Es un método directo, sencillo y preciso de resolución para sistemas
“especiales”.
 Computacionalmente tiene la ventaja de ser un método con pocas
operaciones, lo que agiliza la obtención de resultados.
 Limitaciones
 Solo es aplicable a un número determinado de sistemas, teniendo que
cumplir ciertos requisitos:
 Ser un sistema simétrico.
 Ser definida positiva.

EJEMPLO

El siguiente sistema de ecuaciones lineales surge al aplicar un análisis de fuerzas para un


sistema compuesto de tres masas suspendidas verticalmente por una serie de resortes
antes de la extensión y compresión de estos.

3𝑘𝑥1 − 2𝑘𝑥2 = 𝑚1 𝑔

−2𝑘𝑥1 + 3𝑘𝑥2 − 𝑘𝑥3 = 𝑚2 𝑔

−𝑘𝑥2 + 𝑘𝑥3 = 𝑚3 𝑔

𝑘𝑔⁄
Calcular el desplazamiento x si 𝑚1 = 2kg, 𝑚2 = 3kg, 𝑚3 = 2.5kg y 𝑘 = 10 𝑠2,
tener en cuenta el valor de la gravedad como 9.81𝑚⁄𝑠 2 .
SOLUCIÓN:

Remplazamos nuestros datos del problema en nuestro sistema de ecuaciones lineales:

30𝑥1 − 20𝑥2 = 19.62

−20𝑥1 + 30𝑥2 − 10𝑥3 = 29.43

−10𝑥2 + 10𝑥3 = 24.525

Procedemos a llevarlo a un sistema matricial 𝐴𝑥 = 𝐵:

30 −20 0 𝑥1 19.62
(−20 30 −10 ) . ( 𝑥2 ) = ( 29.43 )
0 −10 10 𝑥3 24.525

Con lo cual comprobamos que nuestra matriz es simétrica y positiva, por lo tanto se
procede con el método de Cholesky 𝐴 = 𝐿. 𝐿𝑇 :

30 −20 0 30 0 0 30 −20 0
(−20 30 −10) = (−20 30 0 ) .( 0 30 −10)
0 −10 10 0 −10 10 0 0 10

Y procedemos a hacer las sustituciones:

𝑎11 = (𝑙11 )(𝑙11 ) = (𝑙11 )2 que se sustituye en 𝑙11 = √𝑎11 = √30 = 5.477

𝑎12 −20
𝑎12 = (𝑙11 )(𝑙21 ) + (0)(𝑙22 ) que se sustituye en 𝑙21 = = 50477 = −3.651
𝑙11

𝑎13 0
𝑎13 = (𝑙11 )(𝑙31 ) + (0)(𝑙32 ) + (0)(𝑙33 ) que se sustituye en 𝑙31 = = 5.477 = 0
𝑙11

Siguiendo con el producto de las matrices se obtiene:

𝑙21 = −3.651 𝑙31 = 0

𝑙22 = 4.082 𝑙32 = −2.449

𝑙23 = −2.449 𝑙33 = 2

Por lo tanto tenemos nuestra matriz 𝐿:

5.477 −3.651 0
𝐿 = (−3.651 4.082 −2.449)
0 −2.449 2

Y proseguimos a hacer el nuevo producto de matrices 𝐿𝑦 = 𝐵, siendo 𝐿 una matriz


triangular inferior:
5.477 0 0 𝑦1 19.62
(−3.651 4.082 0) . (𝑦2 ) = ( 29.43 )
0 −2.449 2 𝑦3 24.525

Haciendo las operaciones necesarias obtendremos los valores para nuestra matriz 𝑦.

𝑦1 = 3.582 𝑦2 = 10.412 𝑦3 = 25.013

Y por último efectuaremos nuestro sistema de matrices 𝐿𝑇 𝑥 = 𝑦:

5.477 −3.651 0 𝑥1 3.582


( 0 4.082 −2.449 ) . ( 𝑥2 ) = ( 10.412)
0 0 2 𝑥3 25.013

Calculamos el producto de las matrices y obtendremos los valores de nuestra matriz 𝑥.

𝑥1 = 7.3569 𝑥2 = 10.0545 𝑥3 = 12.5065

Estos valores de 𝑥 nos indican la elongación a la cual se somete cada resorte con cada
masa.
MÉTODO COMPUTACIONAL EN FORTRAN
PROGRAM METODO_DE_CHOLEVSKY

!DEFINICIÓN DE VARIABLES

REAL(4):: A(100,100),L(100,100),LT(100,100)

REAL(4):: B(100),Y(100),X(100)

REAL(4):: SUM2,SUM3

INTEGER::T,I,J,K,N,COLUMNA

!INGRESO DE DATOS

WRITE(*,*)" METODO DE CHOLEKVSKY PARA MATRICES SIMETRICAS POSITIVAS"

WRITE(*,*)" ================================"

WRITE(*,*)""

WRITE(*,*)" INGRESO DE DATOS"

WRITE(*,*)" ============================================="

WRITE(*,*)""

WRITE(*,*)" INGRESE LA CANTIDAD DE VARIABLES DEL SISTEMA"

READ(*,*) T

WRITE(*,*)" INGRESE LA MATRIZ DE COEFICIENTE"

DO I=1,T

READ(*,*)(A(I,J),J=1,T)

END DO

WRITE (*,*)' INGRESE VECTOR DE TERMINOS INDEPENDIENTES'

DO I=1,T

READ(*,*)B(I)

END DO

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

!PROCESO PARA EL CALCULO DE LA MATRIZ "L"

L(1,1)=SQRT(A(1,1))! CALCULO DE DE L(1,1)

!PRIMERA COLUMNA

DO I = 1,T

L(I,1) = A(I,1)/L(1,1)

END DO
!DEMAS COLUMNAS

DO WHILE (COLUMNA <= T)

DO I=COLUMNA, T

E=0

DO J=1, COLUMNA-1

E=E+L(I,J)*L(COLUMNA,J)

IF(I == COLUMNA)THEN

L(I,I)=SQRT(A(I,I)-E)

END IF

L(I,COLUMNA) = (A(I,COLUMNA) - E)/L(COLUMNA,COLUMNA)

END DO

END DO

COLUMNA = COLUMNA + 1

END DO

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

LT=TRANSPOSE(L) ! HALLAR LA MATRIZ "L" TRANSPUESTA

!PROCESO PARA HALLAR EL VETOR "Y"

Y(1)=B(1)/L(1,1)

NK=2

26 SUM2=0

DO J=1,NK-1

SUM2=SUM2+L(NK,J)*Y(J)

END DO

Y(NK)=(B(NK)-SUM2)/L(NK,NK)

NK=NK+1

IF (NK.GT.T) THEN

NK=T

GOTO 27

ELSE

GOTO 26
END IF

!CALCULO DEL VECTOR X

27 X(T)=Y(T)/LT(T,T)

JK=NK-1

29 SUM3=0

DO I=JK+1,T

SUM3=SUM3+LT(JK,I)*X(I)

END DO

X(JK)=(Y(JK)-SUM3)/LT(JK,JK)

JK=JK-1

IF (JK.LE.0) THEN

GOTO 28

ELSE

GOTO 29

END IF

!SALIDA DE DATOS

28 WRITE(*,*)" MATRIZ L"

WRITE(*,*)" ========"

DO I=1,T

WRITE(*,*)(L(I,J),J=1,T)

END DO

WRITE(*,*)" MATRIZ LT"

WRITE(*,*)" ========"

DO K=1,T

WRITE(*,*)(LT(K,J),J=1,T)

END DO

WRITE(*,*)" MATRIZ Y"

WRITE(*,*)" ========"

DO N=1,T

WRITE(*,*)Y(N)

END DO
WRITE(*,*)" ======================================"

WRITE(*,*)" LOS VALORES DE X PARA EL SISTEMA SON:"

WRITE(*,*)" ======================================"

DO N=1,T

WRITE(*,*)N,X(N)

END DO

END PROGRAM
MÉTODO DE JACOBI

En análisis numérico el método de Jacobi es un método iterativo, usado para resolver


sistemas de ecuaciones lineales del tipo 𝐴𝑥 = 𝐵. El algoritmo toma su nombre del
matemático alemán Carl Gustav Jakob Jacobi. Este método consiste en utilizar fórmulas
de iteración de punto fijo.

𝐴𝑥1 + 𝐵𝑥2 + 𝐶𝑥3 + 𝐷𝑥4 + … 𝑍𝑥𝑁 = 𝐶1


𝐴1 𝑥1 + 𝐵1 𝑥2 + 𝐶 1 𝑥3 + 𝐷1 𝑥4 + … 𝑧1 𝑥𝑁 = 𝐶2
𝐴2 𝑥1 + 𝐵 2 𝑥2 + 𝐶 2 𝑥3 + 𝐷2 𝑥4 + … 𝑍 2 𝑥𝑁 = 𝐶3
……………………………………………
……………………………………………
𝐴𝑁−1 𝑥1 + 𝐵 𝑁−1 𝑥2 + 𝐶 𝑁−1 𝑥3 + 𝐷𝑁−1 𝑥4 + … ≪ 𝑍 𝑁−1 𝑥𝑁 = 𝐶𝑁

Donde A, B, C… son constantes que acompañan a las incógnitas X con subíndices 1,


2,3…N, teniendo así un sistema de ecuaciones lineales con el mismo número de
incógnitas, pudiendo originar así un arreglo matricial cuadrado de N incógnitas , de la
siguiente forma:

𝑥10
𝑎11 𝑥1 + 𝑎12 𝑥2 + … + 𝑎1𝑛 𝑥𝑛 = 𝑏1
𝑥20
𝑎 𝑥 + 𝑎22 𝑥2 + … + 𝑎2𝑛 𝑥𝑛 = 𝑏2
[ 21 1 ] 𝑥 0 = 𝑥30
⋮ ⋮ ⋮ ⋮ ⋮
𝑎𝑛1 𝑥1 + 𝑎𝑛2 𝑥3 + ⋯ + 𝑎𝑛𝑛 𝑥𝑛 = 𝑏𝑛 ⋮
[𝑥𝑛0 ]

Siguiendo con el método de Jacobi, se pasa a despejar cada incógnita en las ecuaciones
correspondientes a su número de subíndice, de esta forma tendremos despejada a x1 en
la ecuación 1 y así sucesivamente hasta despejar todas las variables:

1
𝑥11 = (𝑏 − 𝑎12 𝑥20 − ⋯ − 𝑎1𝑛 𝑥𝑛0 )
𝑎11 1

1
𝑥21 = (𝑏 − 𝑎21 𝑥10 − 𝑎22 𝑥30 − ⋯ − 𝑎2𝑛 𝑥𝑛0 )
𝑎22 2
1
𝑥𝑛1 = (𝑏 − 𝑎𝑛1 𝑥10 − 𝑎𝑛2 𝑥30 − ⋯ − 𝑎𝑛𝑛−1 𝑥𝑛−1
0
)
𝑎𝑛𝑛 𝑛

Quedando así de forma general cada variable despejada en su respectiva fila


correspondiente a su subíndice:

𝑖−1 𝑛
1
𝑥𝑖𝑘+1 = (𝑏 − ∑ 𝑎𝑖𝑗 𝑥𝑗𝑘 − ∑ 𝑎𝑖𝑗 𝑥𝑗𝑘 )
𝑎𝑛 𝑖
𝑗=𝑖 𝑗=𝑖+1

Luego de haber despejado cada incógnita, se pasa a comenzar con el ciclo de iteraciones
armando una tabla de valores para las variables y sus próximas iteraciones

variables 0 1 2 3 … … M
𝑥1
𝑥2
𝑥3

𝑥𝑛

Esta tabla se llena de la siguiente forma:

a) En la columna “0” se llenan con valores 0 (cero).


b) Para llenar los valores de la columna “1” se deberán sustituir en las ecuaciones
los valores asignados en la fila columna anterior correspondiente a cada variable.
c) Teniendo nuevos valores en la columna “1”, se pasa a iterar apara la columna “2”
con los nuevos valores obtenidos en la columna”1”.
d) Se continúa con este procedimiento hasta llegar a una iteración para la cual los
valores de la columna anterior coincidan con los nuevos valores obtenidos,
obteniendo así los valores para cada variable con el Método de Jacobi.

variables 0 1 2 3 … … … M
𝑥1 0 a 𝑎𝑖𝑖 𝑎𝑖𝑖 𝑎𝑖𝑛 𝑎𝑖𝑛
𝑥2 0 b 𝑏 𝑖𝑖 𝑏 𝑖𝑖 𝑏 𝑖𝑛 𝑏 𝑖𝑛
𝑥3 0 c 𝑐 𝑖𝑖 𝑐 𝑖𝑖 𝑐 𝑖𝑛 𝑐 𝑖𝑛
⋮ 0 ⋱ ⋱ ⋮
⋮ 0 ⋱ ⋱ ⋮
⋮ 0 ⋱ ⋱ ⋮
⋮ 0 ⋱ ⋮
𝑖 𝑖𝑖
𝑥𝑛 0 z 𝑧 𝑧 𝑧 𝑛𝑖 𝑧 𝑖𝑛
Asignando así los valores de la columna “M” (correspondiente al número de
iteraciones) para cada variable.

EJEMPLO
Calcular el valor de las Intensidades, por el método de Jacobi:

Malla 1:

25 − 10 = (7 + 2 + 9 + 10)𝐼1 + (7 + 2)𝐼3 − 9𝐼2

15 = 28𝐼1 − 9𝐼2 + 9𝐼3 (1)

Malla 2:

10 = (9 + 3 + 6)𝐼2 − 9𝐼1 + 3𝐼3

10 = −9𝐼1 + 18𝐼2 + 3𝐼3 (2)


Malla 3:

15 = (8 + 7 + 2 + 3)𝐼3 + (7 + 2)𝐼1 + 3𝐼2

15 = 9𝐼1 + 3𝐼2 + 20𝐼3 (3)


FORMA MATRICIAL DE LAS ECUACIONES LINEALES:

28 −9 9 𝑥 15
(−9 18 3 ) . (𝑦) = (10)
9 3 20 𝑧 15

Resolviendo el producto de matrices, se obtiene:

15 − 9𝑧 + 9𝑦
𝐼1 = 𝑥 =
28

10 − 3𝑧 + 9𝑥
𝐼2 = 𝑦 =
18

15 − 9𝑥 − 3𝑦
𝐼3 = 𝑧 =
20

ITERACIONES POR EL MÉTODO DE JACOBI:

𝑥𝑖 0 1 2 3
x 0 0.5357143 0.4732143 0.3240859
y 0 0.5555556 0.6984127 0.7212302
z 0 0.75 0.4255952 0.4322917

𝑥𝑖 4 5 6 7
x 0.6285873 0.5837914 0.6697125 0.6695951
y 0.6455499 0.7871864 0.7857341 0.8287858
z 0.4959768 0.3703032 0.3692159 0.3307693

𝑥𝑖 8 9 10 11
x 0.6958199 0.6999238 0.6999238 0.7098348
y 0.8352249 0.8352249 0.851459 0.8538924
z 0.3243508 0.3243508 0.3097506 0.3073154
𝑥𝑖 12 13 14 15

x 0.7113998 0.7146739 0.7156688 0.718258


y 0.8592537 0.8608404 0.8627288 0.8635115
z 0.3024905 0.300982 0.2992707 0.2985397

𝑥𝑖 16 17 18 19 20
x 0.7173124 0.7177425 0.7180283 0.718135 0.7182398
y 0.8642118 0.8647765 0.8648305 0.8650198 0.8651483
z 0.2979017 0.2975777 0.2972994 0.2971627 0.2978096

Quedando los valores de nuestras incógnitas así:

𝐼1 = 0.71823𝐴 𝐼2 = 0.8651483𝐴 𝐼3 = 0.2978096𝐴


MÉTODO COMPUTACIONAL EN FORTRAN

CONCLUSIONES

 Nos damos cuenta claramente que el método de Cholesky es mucho más corto y
práctico, además que es mucho más exacto debido a que el método de Jacobi es
iterativo va a haber cierto porcentaje de error.
 Ambos métodos a pesar de tener diferente tipo de resolución son solo ejecutables
si nuestra matriz 𝐴 es simétrica y positiva.
 Computacionalmente el método de Cholesky también es mucho más fácil y rápido
para hacer los cálculos.

BIBLIOGRAFÍA

- Chapra, S. y Canale, R. (2015). Métodos numéricos para ingenieros. (Séptima


edición). México: McGraw-Hill
- Conte, S. y Boor, C.(1980). Elementary numerical analysis. (Tercera edición).
Estados Unidos de América: McGraw-Hill

S-ar putea să vă placă și