+ All Categories
Home > Documents > Resolución de sistema de ecuaciones lineales. …...Sea A una matriz no singular y sean L y U las...

Resolución de sistema de ecuaciones lineales. …...Sea A una matriz no singular y sean L y U las...

Date post: 26-Apr-2020
Category:
Upload: others
View: 0 times
Download: 0 times
Share this document with a friend
21
Resoluci´ on de sistema de ecuaciones lineales. etodos directos Juan Manuel Rabasedas 23/09/2019 Juan Manuel Rabasedas Resoluci´ on de sistema de ecuaciones lineales.M´ 23/09/2019 1 / 21
Transcript
Page 1: Resolución de sistema de ecuaciones lineales. …...Sea A una matriz no singular y sean L y U las matrices reci en de nidas. Entonces si U es producida sin pivoteo se tiene que LU

Resolucion de sistema de ecuaciones lineales.Metodos directos

Juan Manuel Rabasedas

23/09/2019

Juan Manuel Rabasedas Resolucion de sistema de ecuaciones lineales.Metodos directos 23/09/2019 1 / 21

Page 2: Resolución de sistema de ecuaciones lineales. …...Sea A una matriz no singular y sean L y U las matrices reci en de nidas. Entonces si U es producida sin pivoteo se tiene que LU

Sistemas lineales

Los sistemas de ecuaciones lineales aparecen en un gran numero de areas,tanto directamente modelizando situaciones fısicas o indirectamente en lasolucion numerica de otros modelos matematicos.

Juan Manuel Rabasedas Resolucion de sistema de ecuaciones lineales.Metodos directos 23/09/2019 2 / 21

Page 3: Resolución de sistema de ecuaciones lineales. …...Sea A una matriz no singular y sean L y U las matrices reci en de nidas. Entonces si U es producida sin pivoteo se tiene que LU

Sistemas lineales

Pretendemos resolver un sistema de forma Ax = ba11x1 + a12x2 + · · ·+ a1nxn = b1a21x1 + a22x2 + · · ·+ a2nxn = b2

......

......

an1x1 + an2x2 + · · ·+ annxn = bn

(1)

con

A =

a11 a12 · · · a1na21 a22 · · · a2n

......

...an1 an2 · · · ann

∈ Mn(R), b =

b1b2...bn

∈ Rn.

(2)Nos interesa resolver sistemas de n ecuaciones con n incognitas, cuandoexista solucion y sea unica. Estas condiciones se verifican si

det(A) 6= 0 .

Juan Manuel Rabasedas Resolucion de sistema de ecuaciones lineales.Metodos directos 23/09/2019 3 / 21

Page 4: Resolución de sistema de ecuaciones lineales. …...Sea A una matriz no singular y sean L y U las matrices reci en de nidas. Entonces si U es producida sin pivoteo se tiene que LU

Sistemas Diagonales

El sistema mas sencillo que podemos resolver esta dado pora11x1 + 0 + · · · + 0 = b1

0 + a22x2 + · · · + 0 = b2... 0

. . . 0...

0 + 0 + · · · + annxn = bn

donde la solucion se calcula trivialmente haciendo

xi = bi/aii , i = 1, ..., n

Ejercicio: ¿Como podemos resolverlo en Scilab?Esto se puede escribir en Scilab

x = b./diag(A)

Juan Manuel Rabasedas Resolucion de sistema de ecuaciones lineales.Metodos directos 23/09/2019 4 / 21

Page 5: Resolución de sistema de ecuaciones lineales. …...Sea A una matriz no singular y sean L y U las matrices reci en de nidas. Entonces si U es producida sin pivoteo se tiene que LU

Sistemas Triangulares

En un sistema triangular dado pora11x1 + a12x2 + · · · + a1nxn = b1

0 + a22x2 + · · · + a2nxn = b2... 0

. . ....

...0 + 0 + · · · + annxn = bn

la ultima ecuacion es de resolucion inmediata xn = bn/ann y luego serealiza una sustitucion regresiva o remonte obteniendose lascomponentes de la solucion como

xi =1

aii

bi −n∑

j=i+1

aijxj

Juan Manuel Rabasedas Resolucion de sistema de ecuaciones lineales.Metodos directos 23/09/2019 5 / 21

Page 6: Resolución de sistema de ecuaciones lineales. …...Sea A una matriz no singular y sean L y U las matrices reci en de nidas. Entonces si U es producida sin pivoteo se tiene que LU

Sistemas Triangulares

El esquema del algoritmo es el siguiente:xn = bn/annpara i = n − 1, . . . , 1xi = (bi − A(i , i + 1 : n)x(i + 1 : n))/aii

finparaEsto se puede escribir en Scilab

x(n) = b(n)/A(n,n)

for i=n-1:-1:1

x(i) = ( b(i) - A(i,i+1:n)*x(i+1:n) )/A(i,i)

end

Juan Manuel Rabasedas Resolucion de sistema de ecuaciones lineales.Metodos directos 23/09/2019 6 / 21

Page 7: Resolución de sistema de ecuaciones lineales. …...Sea A una matriz no singular y sean L y U las matrices reci en de nidas. Entonces si U es producida sin pivoteo se tiene que LU

Sistemas Triangulares

Ejercicio

Implementar en Scilab una funcion remonte que tome como parametrosuna matriz A triangular superior y un vector b y resuelva el sistema Ax = b

function s1 = remonte(A, b)

n = size(A,1)

for i = n:-1:1

x(i) = (b(i) - A(i,i+1:n)*x(i+1:n)) / A(i,i)

end

s1 = x

endfunction

Juan Manuel Rabasedas Resolucion de sistema de ecuaciones lineales.Metodos directos 23/09/2019 7 / 21

Page 8: Resolución de sistema de ecuaciones lineales. …...Sea A una matriz no singular y sean L y U las matrices reci en de nidas. Entonces si U es producida sin pivoteo se tiene que LU

Metodo de Gauss

La idea es transformar un sistema(e1) a11x1 + a12x2 + · · ·+ a1nxn = b1(e2) a21x1 + a22x2 + · · ·+ a2nxn = b2...

......

......

(en) an1x1 + an2x2 + · · ·+ annxn = bn

(3)

en uno triangular mas sencillo de resolver aplicando remonte. Si a11 6= 0,podemos sustituir e2 por e2 − a21

a11e1, eliminando el primer termino como

sigue

(e2) 0 + (a22 −a21a11

a12)x2 + · · ·+ (a2n −a21a11

a1n)xn = b2 −a21a11

b1

Continuando con las sustituciones:

e3 = e3 − a31a11

e1...

...en = en − an1

a11e1

Juan Manuel Rabasedas Resolucion de sistema de ecuaciones lineales.Metodos directos 23/09/2019 8 / 21

Page 9: Resolución de sistema de ecuaciones lineales. …...Sea A una matriz no singular y sean L y U las matrices reci en de nidas. Entonces si U es producida sin pivoteo se tiene que LU

Metodo de Gauss

Se obtiene ceros en la primer columna:(e1) a11x1 + a12x2 + · · ·+ a1nxn = b1(e2) 0x1 + a′22x2 + · · ·+ a′2nxn = b′2...

......

......

(en) 0x1 + a′n2x2 + · · ·+ a′nnxn = b′n

(4)

Continuando con las sustituciones de la siguiente manera:

e3 = e3 − a32a22

e2...

...en = en − an2

a22e2

Obtenemos ceros en la segunda columna columnaPodemos continuar hasta hacer cero todos los elementos por debajo de ladiagonal.

Juan Manuel Rabasedas Resolucion de sistema de ecuaciones lineales.Metodos directos 23/09/2019 9 / 21

Page 10: Resolución de sistema de ecuaciones lineales. …...Sea A una matriz no singular y sean L y U las matrices reci en de nidas. Entonces si U es producida sin pivoteo se tiene que LU

Metodo de Gauss

En general, cuando ya hay ceros por debajo de la diagonal, en lascolumnas 1, 2, . . . , k − 1 para obtener cero en la posicion (j, k) se hace laoperacion: ej = ej − ajk/akk ∗ ekEsto lo podemos escribir es Scilab:

mjk = a(j,k)/a(k,k)

A(j, :) = A(j, :) - mjk * A(k, :)

b(j) = b(j) - mjk * b(k)

Si evitamos operar con los elementos que ya se han puesto en cero el esquema de latriangulacion nos queda:para k = 1, . . . , n − 1

para j = k + 1, . . . , nmjk = ajk/akkajk = 0A(j , k + 1 : n) = A(j , k + 1 : n) −mjk ∗ A(k, k + 1 : n)bj = bj −mjk ∗ bk

finpara jfin-para k

Juan Manuel Rabasedas Resolucion de sistema de ecuaciones lineales.Metodos directos23/09/2019 10 / 21

Page 11: Resolución de sistema de ecuaciones lineales. …...Sea A una matriz no singular y sean L y U las matrices reci en de nidas. Entonces si U es producida sin pivoteo se tiene que LU

Metodo de Gauss

Luego en Scilab la triangulacion nos queda:

function [s1, s2] = gauss(A, b)

a = size(A)

n = a(1)

for i = 1:(n-1)

for j = (i+1):a(1)

mjk = A(j,i)/A(i,i)

A(j,i)=0

A(j,i+1:n) = A(j,i+1:n) - mjk*A(i,i+1:n)

b(j) = b(j) - mjk*b(i)

end

end

s1 = A

s2 = b

endfunction

Juan Manuel Rabasedas Resolucion de sistema de ecuaciones lineales.Metodos directos23/09/2019 11 / 21

Page 12: Resolución de sistema de ecuaciones lineales. …...Sea A una matriz no singular y sean L y U las matrices reci en de nidas. Entonces si U es producida sin pivoteo se tiene que LU

Factorizacion LU

Si resolvemos Ax = b con eliminacion Gaussiana (sin pivoteo) el sistemase transforma en Ux = g donde

U =

u11 u12 · · · u1n0 u12 · · · u1n

. . .

0 0 · · · unn

, con uij = a(i)ij

Podemos tener una matriz auxiliar triangular inferior, basada en loscoeficientes mjk = ajk/akk definidos anteriormente.

L =

1 0 · · · 0

m21 1 · · · 0. . .

mn1 mn2 · · · 1

Teorema

Sea A una matriz no singular y sean L y U las matrices recien definidas.Entonces si U es producida sin pivoteo se tiene que LU = A, esto es lo quese llama la factorizacion LU

Juan Manuel Rabasedas Resolucion de sistema de ecuaciones lineales.Metodos directos23/09/2019 12 / 21

Page 13: Resolución de sistema de ecuaciones lineales. …...Sea A una matriz no singular y sean L y U las matrices reci en de nidas. Entonces si U es producida sin pivoteo se tiene que LU

2 sistemas mas sencillos

Esta factorizacion LU permite resolver el sistema a traves de 2 sistemasmas sencillos

LU = A←→{

Ly = b,Ux = y .

Ambos sistemas son triangulares, por ende faciles de resolver.Este analisis es valido siempre que existan matrices L y U, triangularinferior la primera y triangular superior la segunda tales que LU = A.Existen varios metodos para encontrar estas matrices:• lii = 1, Doolite,• uii = 1, Crout,• Si U = Lt i.e. uii = lii , ∀i , Cholesky.

Juan Manuel Rabasedas Resolucion de sistema de ecuaciones lineales.Metodos directos23/09/2019 13 / 21

Page 14: Resolución de sistema de ecuaciones lineales. …...Sea A una matriz no singular y sean L y U las matrices reci en de nidas. Entonces si U es producida sin pivoteo se tiene que LU

Factorizacion de Cholesky

Sea (1 22 5

)Entonces (

u11 0u12 u22

)(u11 u120 u22

)=

(1 22 5

)u211 = 1

u11u12 = 2u212 + u222 = 5

Se deduce queu11 = 1u12 = 2u22 = 1

U =

(1 20 1

)Juan Manuel Rabasedas Resolucion de sistema de ecuaciones lineales.Metodos directos23/09/2019 14 / 21

Page 15: Resolución de sistema de ecuaciones lineales. …...Sea A una matriz no singular y sean L y U las matrices reci en de nidas. Entonces si U es producida sin pivoteo se tiene que LU

Factorizacion de Cholesky

Sea (1 22 4

)Entonces (

u11 0u12 u22

)(u11 u120 u22

)=

(1 22 4

)u211 = 1

u11u12 = 2u212 + u222 = 4

Se deduce queu11 = 1u12 = 2u22 = 0

U =

(1 20 0

)Existe U pero no la factorizacion de Cholesky, U no es inversible.

Juan Manuel Rabasedas Resolucion de sistema de ecuaciones lineales.Metodos directos23/09/2019 15 / 21

Page 16: Resolución de sistema de ecuaciones lineales. …...Sea A una matriz no singular y sean L y U las matrices reci en de nidas. Entonces si U es producida sin pivoteo se tiene que LU

Factorizacion de Cholesky

Sea (1 22 3

)Entonces (

u11 0u12 u22

)(u11 u120 u22

)=

(1 22 3

)u211 = 1

u11u12 = 2u212 + u222 = 3

Se deduce queu11 = 1u12 = 2u22 =

√−1

Entonces no existe la factorizacion de Cholesky de A

Juan Manuel Rabasedas Resolucion de sistema de ecuaciones lineales.Metodos directos23/09/2019 16 / 21

Page 17: Resolución de sistema de ecuaciones lineales. …...Sea A una matriz no singular y sean L y U las matrices reci en de nidas. Entonces si U es producida sin pivoteo se tiene que LU

Factorizacion de Cholesky

Caso general:

El producto de la fila 1 de Ut por la columna 1 de U da: u211 = a11 luego:

u11 =√a11

El producto de la fila 1 de Ut por la columna j de U da u11u1j = a1j luego:

u1j =a1ju11

, j = 2, . . . , n

Juan Manuel Rabasedas Resolucion de sistema de ecuaciones lineales.Metodos directos23/09/2019 17 / 21

Page 18: Resolución de sistema de ecuaciones lineales. …...Sea A una matriz no singular y sean L y U las matrices reci en de nidas. Entonces si U es producida sin pivoteo se tiene que LU

Factorizacion de Cholesky

Al hacer el producto de la fila 2 de Ut por la columna 2 de U, se puedecalcular u22. Al hacer el producto de la fila 2 de Ut por la columna j de Use puede calcular u2j . El calculo de U se hace por fila.Supongamos ahora que se conocen los elementos de las filas1, 2, . . . , k − 1 de U y se desea calcular los elementos de la fila k de U.El producto de la fila k de Ut por la columna k de U da:

k∑i=1

u2ik = akk ,k−1∑i=1

u2ik + u2kk = akk

Luego

ukk =

√√√√akk −k−1∑i=1

u2ik , k = 2, . . . , n

Juan Manuel Rabasedas Resolucion de sistema de ecuaciones lineales.Metodos directos23/09/2019 18 / 21

Page 19: Resolución de sistema de ecuaciones lineales. …...Sea A una matriz no singular y sean L y U las matrices reci en de nidas. Entonces si U es producida sin pivoteo se tiene que LU

Factorizacion de Cholesky

El producto de la fila k de Ut por la columna j de U da:

k∑i=1

uikuij = akj

Luego

ukj =akj −

∑k−1i=1 uikuijukk

, k = 2, . . . , n j = k + 1, . . . , n

Utilizando el producto de matrices las formulas anteriores se puedenescribir ası:t = akk − U(1 : k − 1, k)tU(1 : k − 1, k)ukk =

√t

ukj =akj−U(1:k−1,k)tU(1:k−1,j)

ukk

Juan Manuel Rabasedas Resolucion de sistema de ecuaciones lineales.Metodos directos23/09/2019 19 / 21

Page 20: Resolución de sistema de ecuaciones lineales. …...Sea A una matriz no singular y sean L y U las matrices reci en de nidas. Entonces si U es producida sin pivoteo se tiene que LU

Factorizacion de Cholesky

Podemos almacenar los valores ukk y ukj sobre los antiguos valores de akky akj , de esta forma nos queda: t = akk − U(1 : k − 1, k)tU(1 : k − 1, k)akk =

√t

akj =akj−U(1:k−1,k)tU(1:k−1,j)

akkEl esquema del algoritmo para la factorizacion de Cholesky nos queda ası:

datos: A, e

para k = 1, ..., n

calculo de t

si t < e entonces salir

akk = sqrt(t)

para j = k + 1, ..., n

calculo de akj

finpara j

finpara k

Juan Manuel Rabasedas Resolucion de sistema de ecuaciones lineales.Metodos directos23/09/2019 20 / 21

Page 21: Resolución de sistema de ecuaciones lineales. …...Sea A una matriz no singular y sean L y U las matrices reci en de nidas. Entonces si U es producida sin pivoteo se tiene que LU

Factorizacion de Cholesky

function [U, ind] = Cholesky(A)

eps = 1.0e-8

n = size(A,1)

U = zeros(n,n)

for k = 1:n

t = A(k,k) - U(1:k-1,k)’*U(1:k-1,k)

if t <= eps

printf("Matriz no definida positiva.\n")

ind = 0

return

end

U(k,k)= sqrt(t)

for j = k+1:n

U(k,j) = ( A(k,j) - U(1:k-1,k)’*U(1:k-1,j) )/U(k,k)

end

end

ind = 1

endfunction

Juan Manuel Rabasedas Resolucion de sistema de ecuaciones lineales.Metodos directos23/09/2019 21 / 21


Recommended