Está en la página 1de 31

Sistemas Lineales

Kerin Cardona1
1 UniversidadNacional Autónoma de Honduras.
Facultad de Ciencias.
Escuela de Matemática

24 de noviembre de 2021

Kerin Cardona (UNAH) MM412-Análisis Numérico 24 de noviembre de 2021 1 / 31


Contenido

Introducción

Complejidad de los sistemas lineales

Métodos directos

Sistemas Tridiagonales

Kerin Cardona (UNAH) MM412-Análisis Numérico 24 de noviembre de 2021 2 / 31


Introducción

I En ciencias aplicadas muchas veces se tiene que enfrentar el sistema


lineal de la forma
Ax = b
I donde A es una matriz de n × n cuyos elementos aij pueden ser reales
o complejos.
I x y b son vectores columna de dimensión n. x representa la solución
buscada mientras b es un vector dado.

Kerin Cardona (UNAH) MM412-Análisis Numérico 24 de noviembre de 2021 3 / 31


Ejemplos

I Considere una red hidraulica de 10 tuberı́as que se alimentan por un


reservorio de agua a presión constante p0 = 10 bar.
I Para la j-ésima tuberı́a se cumple

1
Qj = ∆pj
Rj Lj

Kerin Cardona (UNAH) MM412-Análisis Numérico 24 de noviembre de 2021 4 / 31


I donde Rj es la resistencia hidraulica por unidad de longitud
(bar’s/m4 ) y Lj es la longitud en m de la j-ésima tuberı́a.
I El problema consiste en determinar la presión en cada nodo interno.
Se denota p = (p1 , p2 , p3 , p4 )T y se forma el sistema Ap = b.
I La siguiente tabla resume las caracterı́sticas importantes de la red

I El sistema lineal toma la forma

Kerin Cardona (UNAH) MM412-Análisis Numérico 24 de noviembre de 2021 5 / 31


Contenido

Introducción

Complejidad de los sistemas lineales

Métodos directos

Sistemas Tridiagonales

Kerin Cardona (UNAH) MM412-Análisis Numérico 24 de noviembre de 2021 6 / 31


Complejidad de los sistemas lineales
I La solución de Ax = b existe si y sólo si A es no singular.
I En principio podemos utilizar la Regla de Cramer
det(Ai )
xi = , i = 1, ..., n
det(A)
donde Ai es construida reemplazando la i-ésima columna de A por b.
I Si n + 1 determinantes son calculados, entonces un total de 3(n + 1)!
operaciones son necesarias.
I Por ejemplo una computadora capaz de realizar 109 flops, requiere
cerca de 17 horas para resolver un sistema de n = 15.

Kerin Cardona (UNAH) MM412-Análisis Numérico 24 de noviembre de 2021 7 / 31


I El costo computacional puede reducirse significativamente al orden de
n3,8 con técnicas eficientes para calcular los determinantes.
I Dos enfoques alternativos: métodos directos ( solución en un núemro
finito de pasos) y métodos iterativos (si requiere un número infinito
de pasos).
I Es importante recalcar que un sistema lineal no se puede resolver en
menos de n2 operaciones.

Kerin Cardona (UNAH) MM412-Análisis Numérico 24 de noviembre de 2021 8 / 31


Contenido

Introducción

Complejidad de los sistemas lineales

Métodos directos

Sistemas Tridiagonales

Kerin Cardona (UNAH) MM412-Análisis Numérico 24 de noviembre de 2021 9 / 31


Factorización LU

I Sea A ∈ Rn×n . Asuma que existen matrices L, U triangular inferior y


triangular superior respectivamente tal que

A = LU

I Lo anterior lo llamaremos factorización LU.


I Ai A es no singular, entonces los son L y U y por tanto sus elementos
diagonales son no nulos.
I En tal caso, resolver Ax = b es equivalente a resolver

Ly = b, Ux = y

Kerin Cardona (UNAH) MM412-Análisis Numérico 24 de noviembre de 2021 10 / 31


I Ly = b se puede resolver por el algoritmo de sustitución hacia
adelante

I Ux = y se puede resolver por el algoritmo de sustitución hacia atrás

Kerin Cardona (UNAH) MM412-Análisis Numérico 24 de noviembre de 2021 11 / 31


Cálculo del determinante

Por medio de la factorización LU podemos calcular el determinante con un


costo computacional de O(n3 ) operaciones.
n
Y
det(A) = det(L) det(U) = ukk
k=1

Este procedimiento está implementado en Octave por medio del comando


det.

Kerin Cardona (UNAH) MM412-Análisis Numérico 24 de noviembre de 2021 12 / 31


Existencia y unicidad
La factorización LU no siempre existe para toda matriz no singular.
Proposición
Dada A ∈ Rn×n , su factorización LU existe y es única ssi las submatrices
principales Ai de orden i = 1, ..., n − 1 (se obtienen restringiendo A a sus
primeras i columnas y filas) son no singulares.
Algunos casos especiales donde se cumplen las condiciones anteriores
I A es diagonal dominante por filas o culumnas, |aii | ≥ nj6=i |aij |
P

I A es simétrica y definida positiva. Esto es

∀x 6= 0 ∈ Rn , x T Ax > 0

en este caso es posible construir una factorización especial

A = RT R

donde R es una matriz triangular superior. (factorización de Cholesky)


Kerin Cardona (UNAH) MM412-Análisis Numérico 24 de noviembre de 2021 13 / 31
Implementación LU en Octave

function [L,U]=LU(A)
n=size(A,1);
L=eye(n);
U=A(1,:);
for k=1:n,
U(k,k)=A(k,k)-L(k,1:(k-1))*U(1:(k-1),k);
for j=(k+1):n,
U(k,j)=(A(k,j)-L(k,1:(k-1))*U(1:(k-1),j));
end
for i=(k+1):n
L(i,k)=(A(i,k)-L(i,1:(k-1))*U(1:(k-1),k))/U(k,k);
end
end

Kerin Cardona (UNAH) MM412-Análisis Numérico 24 de noviembre de 2021 14 / 31


Resolver sistemas triangulares

function x=LT_Solver(A,b)
n=size(A,1);
x=zeros(n,1);
x(1,1)=b(1)/A(1,1);
for i=2:n
x(i,1)=(b(i)-A(i,1:(i-1))*x(1:(i-1),1))/A(i,i);
end

function x=UT_Solver(A,b)
n=size(A,1);
x(n,1)=b(n)/A(n,n);
for i=(n-1):-1:1
x(i,1)=(b(i)-A(i,(i+1):n)*x((i+1):n,1))/A(i,i);
end

Kerin Cardona (UNAH) MM412-Análisis Numérico 24 de noviembre de 2021 15 / 31


Resolver Ax = b

function [L,U,x]=Solver(A,b)
[L,U]=LU(A);
x=LT_Solver(L,b);
x=UT_Solver(U,x);

Kerin Cardona (UNAH) MM412-Análisis Numérico 24 de noviembre de 2021 16 / 31


Ejemplo

>> A=[-0.370 0.050 0.050 0.070 ; 0.050 -0.116 0 0.050; 0.050 0


-0.116 0.050 ; 0.070 0.050 0.050 -0.202];
>> b=[-2;0;0;0];

>> [L,U]=LU(A)
L =

1.0000 0 0 0
-0.1351 1.0000 0 0
-0.1351 -0.0619 1.0000 0
-0.1892 -0.5443 -0.5802 1.0000

U =

-0.3700 0.0500 0.0500 0.0700


0 -0.1092 0.0068 0.0595
0 0 -0.1088 0.0631
0 0 0 -0.1198

Kerin Cardona (UNAH) MM412-Análisis Numérico 24 de noviembre de 2021 17 / 31


>> [L,U,x]=Solver(A,b);
>> x
x =

8.1172
5.9893
5.9893
5.7779

>> det(A)
ans = 5.2681e-04
>> prod(diag(U))
ans = 5.2681e-04

Kerin Cardona (UNAH) MM412-Análisis Numérico 24 de noviembre de 2021 18 / 31


El comando lu de Octave
Podemos encontrar la factorización LU con el comando propio de Octave
>> [L1,U1]=lu(A)
L1 =

1.0000 0 0 0
-0.1351 1.0000 0 0
-0.1351 -0.0619 1.0000 0
-0.1892 -0.5443 -0.5802 1.0000

U1 =

-0.3700 0.0500 0.0500 0.0700


0 -0.1092 0.0068 0.0595
0 0 -0.1088 0.0631
0 0 0 -0.1198

Kerin Cardona (UNAH) MM412-Análisis Numérico 24 de noviembre de 2021 19 / 31


La técnica del pivoteo

I Es posible lograr la factorización LU para toda matriz no singular aún


sin cumplir las condiciones de la Proposición.
I En este sentido se transforma (permuta) la matriz original

PA = LU

donde P es una matriz de permutación.


I Luego se resuelven los sistemas triangulares

Ly = Pb, Ux = y

Kerin Cardona (UNAH) MM412-Análisis Numérico 24 de noviembre de 2021 20 / 31


Por ejemplo la siguiente matriz no cumple las condiciones

>> B=[1 1 3;2 2 2; 3 6 4];


>> [L1,U1]=LU(B)
L1 =

1 0 0
2 1 0
3 Inf 1

U1 =

1 1 3
0 0 -4
0 0 Inf

Kerin Cardona (UNAH) MM412-Análisis Numérico 24 de noviembre de 2021 21 / 31


El comando lu de Octave nos permite encontrar [L,U,P]
>> [L1,U1,P]=lu(B)
L1 =

1.0000 0 0
0.6667 1.0000 0
0.3333 0.5000 1.0000

U1 =

3.0000 6.0000 4.0000


0 -2.0000 -0.6667
0 0 2.0000

P =

Permutation Matrix

0 0 1
0 1 0
1 0 0

Kerin Cardona (UNAH) MM412-Análisis Numérico 24 de noviembre de 2021 22 / 31


Aplicamos la función solver a PB

>> [L,U,x]=Solver(P*B,[5;6;13]);
>> x
x =

1
-3
5

Kerin Cardona (UNAH) MM412-Análisis Numérico 24 de noviembre de 2021 23 / 31


Ejemplo factorización Cholesky

>> A=(-1/(0.1^2))*spdiags(ones(1000,1)*[1 -2 1],-1:1,1000,1000);


>> size(A)
ans =

1000 1000
>> isdefinite(A)
ans = 1

>> R=chol(A);
>> size(R)
ans =

1000 1000
>> b=ones(1000,1);
>> x=LT_Solver(R’,b);
>> x=UT_Solver(R,x);

Kerin Cardona (UNAH) MM412-Análisis Numérico 24 de noviembre de 2021 24 / 31


Contenido

Introducción

Complejidad de los sistemas lineales

Métodos directos

Sistemas Tridiagonales

Kerin Cardona (UNAH) MM412-Análisis Numérico 24 de noviembre de 2021 25 / 31


Sistemas Tridiagonales

En muchas aplicaciones se tiene que resolver sistemas con matrices de la


forma

I Esta matriz es llamada tridiagonal dado que los elementos no nulos


pertenecen a la diagonal principal y a la primera super diagonal y sub
diagonal.

Kerin Cardona (UNAH) MM412-Análisis Numérico 24 de noviembre de 2021 26 / 31


I Si la factorización LU de A existe, los factores L y U deben ser
bidiagonales de la forma

I Los coeficientes αi y βi se pueden determinar utilizando la igualdad


LU = A
I Lo cual lleva a la siguiente relación recursiva para el cálculo de L y U
ei
α1 = a1 , βi = , αi = ai − βi ci−1 , para i = 2, ..., n
αi−1

Kerin Cardona (UNAH) MM412-Análisis Numérico 24 de noviembre de 2021 27 / 31


Algoritmo de Thomas

Podemos redolver los dos sistemas bidiagonales Ly = b y Ux = y con la


siguiente fórmula
I Ly = b
y1 = b1 , yi = bi − βi yi−1 , para i = 2, ..., n
I Ux = y
yn
xn = , xi = (yi − ci xi+1 )/αi , para i = n − 1, ..., 1
αn
Esto es conocido como el algoritmo de Thomas y permite encontrar la
solución del sistema con un costo computacional de n operaciones.

Kerin Cardona (UNAH) MM412-Análisis Numérico 24 de noviembre de 2021 28 / 31


Ejemplo

>> A=(-1/(0.1^2))*spdiags(ones(1000,1)*[1 -2 1],


-1:1,1000,1000);
>> b=ones(1000,1);
>> a=ones(1000,1);
>> c=-2*ones(1000,1);
>> d=a;
>> h=(-1/(0.1^2));
>> tic,x=tridiag(c,a,d,b/h);,toc
Elapsed time is 0.0362992 seconds.
>> norm(A*x-b)
ans = 4.8983e-10

Kerin Cardona (UNAH) MM412-Análisis Numérico 24 de noviembre de 2021 29 / 31


Comparación

>> tic, [L,U]=lu(A);x=LT_Solver(L,b);x=UT_Solver(U,x); ,toc


Elapsed time is 0.204318 seconds.

>> tic, R=chol(A);x=LT_Solver(R’,b);x=UT_Solver(R,x); ,toc


Elapsed time is 0.13357 seconds.

>> tic,x=tridiag(c,a,d,b/h);,toc
Elapsed time is 0.0362992 seconds.

>> tic, x=A\b; ,toc


Elapsed time is 0.046289 seconds.

Kerin Cardona (UNAH) MM412-Análisis Numérico 24 de noviembre de 2021 30 / 31


Resumen

I La factorización LU de A ∈ Rn×n consiste en calcular una matriz


triangular inferior L y una matriz triangular superior U tal que
A = LU.
I La factorización LU si existe no es única. Sin embargo se pueden
imponer condiciones para su unicidad. Por ejemplo que los elementos
de la diagonal de L sean iguales a 1.
I La factorización LU existe y es única ssi las submatrices principales de
A de orden 1 hasta n − 1 son no singulares.
I El cálculos de la factorización LU requiere cerca de 2n3 /3
operaciones. En el caso de matrices tridiagonales se reduce a n.
I Para matrices simétricas y definidas positivas podemos utilizar la
factorización de Cholesky A = R T R, donde R es una matriz
triangular superior, con un costo computacional de n3 /3 operaciones.

Kerin Cardona (UNAH) MM412-Análisis Numérico 24 de noviembre de 2021 31 / 31

También podría gustarte