Vous êtes sur la page 1sur 54

Simulación Numérica de

Yacimientos

Dr. Fernando Rodríguez de la Garza

e-mail: frodriguezd@pep.pemex.com
Tel: 55508712, 5622 3017 al 19

Capítulo 7.

Solución de Sistemas de
Ecuaciones Lineales

1
7. Solución de Sistemas de Ecuaciones
Lineales.
Se presentan métodos de solución comúnmente
empleados en la simulación numérica de yacimientos.

Los sistemas de ecuaciones que se generan en la


simulación de yacimientos se resuelven mediante:

Métodos Directos
Requieren de un número fijo de operaciones para resolver
un sistema dado.

Métodos Iterativos
No se puede predeterminar el número de operaciones, ya
que la solución consiste en aplicar algoritmos cíclicos. Se
espera que al paso de las iteraciones el método converja a
la solución.

7.1 Métodos Directos.

Como se vio en el Capítulo 5, la solución numérica de las


ecuaciones que de flujo en yacimientos generan sistemas
lineales de ecuaciones con matrices bandadas y dispersas,
en los que el ancho de banda es predecible.

En los métodos directos, el trabajo computacional y el


requerimiento de memoria están directamente
relacionados con el número de ecuaciones o de incógnitas
a resolver.

2
7.1 Métodos Directos…

Entre mayor es el número de ecuaciones, el ancho de


banda es generalmente mayor y la cantidad de memoria
de cómputo y de tiempo de procesamiento son también
mayores.

El número de ecuaciones y de incógnitas, para un


problema dado, depende del número total de bloques o de
celdas, en que se discretiza el dominio de interés y del
número de pseudo componentes considerados.

7.1 Métodos Directos…

Los métodos directos, se basan en el Método de


Eliminación Gaussiana, MEG, y consisten de dos pasos:

Paso 1: En un barrido hacia delante se eliminan


todos los elementos diferentes de cero ubicados
debajo de la diagonal principal: Esto es, se
transforma la matriz de coeficientes en una matriz
triangular superior.

Paso 2: En un barrido hacia atrás (… sustitución hacia


atrás) se se obtiene la solución de las incógnitas.

3
7.1 Métodos Directos…
Existen variaciones del MEG, que han sido motivadas
por las características particulares de los sistemas de
ecuaciones que se generan en algunas aplicaciones de
las ciencias e ingenierías (…como es el caso de la
simulación numérica de yacimientos) .

Dentro de estos métodos, los Algoritmos de Banda y las


Técnicas para resolver sistemas de ecuaciones con
Matrices Dispersas son de interés en la Simulación
Numérica de Yacimientos.

7.1 Métodos Directos.

Los algoritmos de banda toman ventaja de la


estructura bandada de la matriz para confinar las
operaciones de eliminación dentro de la banda.

Las técnicas de matrices dispersas,


reconocen la existencia de un gran número de
ceros en la matriz de coeficientes y evitan su
almacenamiento y operaciones innecesarias.

4
7.1 Métodos Directos.

El trabajo de los algoritmos de banda depende del ancho


de la banda. Para una cierta malla de cálculo, el menor
ancho de banda se obtiene ordenando las ecuaciones e
incógnitas en la dirección del menor número de celdas.

La eficiencia de los métodos directos se mejora


grandemente cuando se emplean técnicas especiales de
ordenamiento de las ecuaciones e incógnitas, como es el
caso del Ordenamiento D4.

7.1.1 Método de Eliminación Gaussiana


El método de Eliminación Gaussiana es la base de todos los métodos
de solución directa de sistemas lineales de ecuaciones. Sus bases se
expondrán con un ejemplo simple:

Considerar el sistema de ecuaciones:

Au = d
Donde
 2 1 1  u1  1
A =  4 1 0 ; u = u 2  ; d = − 2
− 2 2 1 u3   7 

5
7.1.1 Método de Eliminación Gaussiana.

o bien,

 2 1 1  u1   1 
 4 1 0  u  =  − 2 
  2  
 − 2 2 1   u 3   7 

El método consiste en eliminar, en una primera etapa, los


elementos ubicados debajo de la diagonal principal, mediante
operaciones entre las ecuaciones, y en una segunda etapa, resolver
las incógnitas mediante substitución hacia atrás.

7.1.1 Método de Eliminación Gaussiana.


En el ejemplo, durante la primera etapa se realizan 3 operaciones de
eliminación:

1a. Operación: Restamos 2 veces la primera ecuación de la segunda.


2a. Operación: Restamos –1 veces la primera ecuación de la tercera.

2 1 1   u1   1 
0 −1 − 2  u  =  − 4 
  2  
 0 3 2   u 3   8 

6
7.1.1 Método de Eliminación Gaussiana.

3a. Operación: Restamos –3 veces la segunda ecuación de la tercera.

2 1 1   u1   1 
0 −1 − 2  u  =  − 4 
  2  
 0 0 − 4   u 3   − 4 

7.1.1 Método de Eliminación Gaussiana.


Haciendo:

2 1 1  u1  1
Uu = 0 −1 − 2 u2  ; c = − 4
0 0 − 4 u3  − 4

El coeficiente del vector u, es un matriz triangular superior, U: “Todos


los valores debajo de la diagonal principal son cero”.

El vector c se obtuvo a partir de d con las mismas operaciones que


transformaron a A en U.

7
7.1.1 Método de Eliminación Gaussiana.
Cuál es la relación entre A y U?
Veremos primero la forma matricial de las operaciones de eliminación:
Notar que la 1a operación de eliminación es equivalente a efectuar la
siguiente operación sobre Au=d.
E 21 Au = E 21d
donde,
 1 0 0
E21 =  − 2 1 0  Matriz
Elemental 21
 0 0 1 
Los subíndices de E indican que la ecuación 2 fue alterada por un
múltiplo de la ecuación 1: El múltiplo de 1 que se restó de la ecuación
2 fue: –e21= 2.

7.1.1 Método de Eliminación Gaussiana.


relación entre A y U...
O sea que,

 1 0 0  2 1 1   u1   2 1 1   u1 
− 2 1 0  4 1 0 u  =  0 − 1 − 2  u 
    2    2
 0 0 1   − 2 2 1  u3  − 2 2 1  u3 
Haciendo ahora,
E 21 d
 1 0 0 1   1 
− 2 1 0 − 2  =  − 4 
     
 0 0 1   7   7 

8
7.1.1 Método de Eliminación Gaussiana.
Similarmente, la operación 2 de eliminación se representa
matricialmente como:

E 31 (E 21 A )u = E 31 (E 21 d )

1 0 0 
E31 = 0 1 0  Matriz
Elemental 31
1 0 1 
Los subíndices de E indican que la ecuación 3 fue alterada por un
múltiplo de la ecuación 1: El múltiplo de 1 que se restó de la ecuación
3 fue: –e31= -1.

7.1.1 Método de Eliminación Gaussiana.


Esto es:

1 0 0  2 1 1  u1  1 0 0  1 
0 1 0  0 − 1 − 2 u  = 0 1 0 − 4
    2   
1 0 1 − 2 2 1  u3  1 0 1  7 
Realizando operaciones:

2 1 1   u1   1 
0 − 1 − 2  u  =  − 4 
  2  
 0 3 2   u 3   8 

9
7.1.1 Método de Eliminación Gaussiana.
y la operación 3 de eliminación es:

E 32 (E 31 E 21 A )u = E 32 (E 31 E 21 d )
donde:
1 0 0
E 32 =  0 1 0  Matriz
Elemental 32
 0 3 1 
Los subíndices de E indican que la ecuación 3 fue alterada por un
múltiplo de la ecuación 2: El múltiplo de 2 que se restó de la ecuación
3 fue: –e32= -3.

7.1.1 Método de Eliminación Gaussiana.


La operación 3 de eliminación es entonces,

1 0 0 2 1 1   u1  1 0 0 1
0 1 0  0 −1 − 2  u  =  0 1 0  - 4 
   2   
 0 3 1   0 3 2  u 3   0 3 1   8 
y realizando operaciones, se tiene que:

2 1 1   x1   1 
0 −1 − 2   x  = - 4 
  2  
 0 0 − 4   x 3   - 4 

Resumiendo: Las operaciones de eliminación generaron,

Uu = c U es una matriz
triangular superior

10
7.1.1 Método de Eliminación Gaussiana.

Nótese que para formar las matrices elementales Eij se parte de la


matriz identidad, I, y se remplaza el cero en la fila i, columna j por
( –lij ) siendo lij el múltiplo de la ecuación j que se resta de la
ecuación i.

Las 3 operaciones matriciales que convierten a la matriz A en U


son:

E32 E31 E21 A = U


Similarmente:

E32 E31 E21d = c

7.1.1 Método de Eliminación Gaussiana.

Nótese también que se pudo haber realizado, independientemente,


la siguiente operación:

 1 0 0
E32 E31 E21 = − 2 1 0
 − 5 3 1 

matriz triangular inferior

11
7.1.1 Método de Eliminación Gaussiana.
Notar que:
E 32− 1 E 32 E 31 E 21 A = E 32− 1U
Recordando que:

E 32− 1 E 32 = I
Donde:

1 0 0
E 32− 1 =  0 1 0 
 0 −3 1 

7.1.1 Método de Eliminación Gaussiana.


o sea:

1 0 0 1 0 0  1 0 0
0 1 0  0 1 0  =  0 1 0 
 
 0 −3 1   0 3 1   0 0 1 

De igual forma:

(E −1
31 )
E 31 E 21 A = E 31− 1 E 32− 1U
Finalmente:

A = E 21− 1 E 31− 1 E 32− 1U

12
7.1.1 Método de Eliminación Gaussiana.

Pero:
E21−1 E31−1 E32−1 = L
Es la matriz que convierte U en A:

1 0 0  1 0 0 1 0 0
L = 2 1 0  0 1 0 0 1 0
0 0 1 − 1 0 1 0 − 3 1 

1 0 0

L=2 1 0
− 1 − 3 1

7.1.1 Método de Eliminación Gaussiana.


Resumiendo:

Au = d
pero A se puede descomponer en el producto LU:

LUu = d
de manera que por eliminación se transformó en:

L−1 (LUu) = L−1d


o sea:

Uu = c

13
7.1.1 Método de Eliminación Gaussiana.

Entonces:
x = U −1c

x = L−1U −1d
ó,

x = A−1b

Una vez que se calculan L y U, es posible obtener la solución x’


para cualquier nuevo d’ en n2 operaciones: n2/2 hacia delante,
para obtener c’ y n2/2 hacia atrás para obtener x’

7.1.2 Solución de Sistemas Tridiagonales:


Algoritmo de Thomas.

Considerar el siguiente sistema tridiagonal de ecuaciones:

a1u1 + b1u2 = d1

ciui-1 + aiui + biui+1 = di ; i=2,3,...,I-1

cIuI-1 + aIuI = dI
…(7.1)

o bien,
Au = d …(7.2)

14
7.1.2 Solución de Sistemas Tridiagonales…Thomas.

donde,
 a1 b1 
c a2 b2 
 2 
 c3 a3 b3 
 
A= . . . 
 . . . 
 
 . . .
 cI aI 

uT = (u1,u2,...,uI)
y,
dT = (d1,d2,...,dI).

7.1.2 Solución de Sistemas Tridiagonales.. Thomas.

La matriz A se descompone como el siguiente el producto

A = WQ …(7.3)

Donde,
 w1 
c w2 
 2 
 c3 w3 
 
W = . . 
 . . 
 
 . . 
 cI wI 

15
7.1.2 Solución de Sistemas Tridiagonales… Thomas.

y,

1 q1 
 1 q2 
 
 1 q3 
 
Q= . . 
 . . 
 
 1 qI −1 
 1 

7.1.2 Solución de Sistemas Tridiagonales… Thomas.

Efectuando el producto WQ e igualando la matriz


resultante, elemento elemento, con la matriz A, se obtiene
un sistema de 2I-1 ecuaciones con 2I-1 incógnitas: w1, w2,...,
wI y q1, q2,..., qI-1. Su solución da lo siguiente:
w1 = a1
b1
q1 =
w1
bi
qi = ; …(7.4)
wi
wi = ai − ci qi −1 …(7.5)
i = 2,3,...., I

16
7.1.2 Solución de Sistemas Tridiagonales…Thomas.

La solución del sistema tridiagonal se obtiene como sigue:

Au = WQu = Wg …(7.6)

donde
g = Qu
Es decir,
(ν ) (ν +1) (ν )
 w1   g1   d1 
c w2  g  d 
 2   2  2
 c3 w3  g3  d 3 
     
 . .  .  = . 
 . .  .  . 
     
 . .  .  . 
 cI wI   g I  d I 

7.1.2 Solución de Sistemas Tridiagonales…Thomas.

y en un barrido hacia delante se resuelve g:


d1
g1 =
w1
…(7.7)
d i − ci g i −1
gi = ; i = 2,3,...., I
wi
Finalmente se puede resolver Qu=g como sigue:
(ν ) (ν +1) (ν )
1 q1   u1   g1 
 1 q2  u  g 
   2  2
 1 q3  u3   g3 
     
 . .  . = . 
 . .  . . 
     
 1 q I −1  . . 
 1  u I   g I 

17
7.1.2 Solución de Sistemas Tridiagonales: Algoritmo de
Thomas.
y en un barrido hacia atrás se obtiene la solución deseada:
uI = gI …(7.8)

ui = gi - qiui+1; i= I-1, I-2,…, 1

Resumiendo:
Para resolver el sistema tridiagonal Au = d, es necesario
calcular primero los elementos qi, wi y gi mediante las Ecs.
7.4, 7.5 y 7.7 y posteriormente obtener la solución de ui
mediante las Ecs. 7.8.

7.1.3 Algoritmos de matrices dispersas:


Descomposición LDU.

18
7.2 Métodos Iterativos.
Los métodos iterativos adquieren interés en el caso de problemas
multidimensionales, donde el número de ecuaciones a resolver es
relativamente grande. Básicamente existen dos tipos:

1. Métodos iterativos por punto, (MIP).


2. Métodos iterativos por línea o bloque, (MIL/B).

En los métodos iterativos por punto, MIP, las incógnitas de cada nodo
se resuelven explícitamente en cada iteración.

En los métodos iterativos por línea/bloque, MIL/B, las incógnitas de un


grupo de celdas se resuelven simultáneamente (ó implícitamente).

7.2 Métodos Iterativos.

Entre mayor sea el número de íncógnitas que se resuelven


simultáneamente, o dicho de otra manera, entre más implícito sea
el MIL/B, la convergencia a la solución será más rápida (...se
necesitarán menos iteraciones).

A mayor implicitud se requerirá , sin embargo, una mayor capacidad


de memoria de cómputo y un mayor esfuerzo computacional por
iteración.

Por lo anterior, en la implementación de un método iterativo por


bloques, es necesario hacer un balance entre implicitud y
simplicidad para resolver el sistema de ecuaciones generado por los
bloques.

19
7.2 Métodos Iterativos.

Los métodos iterativos están ligados a parámetros de iteración, que


se introducen en el algoritmo para acelerar la convergencia a la
solución.

El ritmo de convergencia de un algoritmo dado, depende de varios


factores, como son:

– Las características de la malla de cálculo,


– La anisotropía y las heterogeneidades de la formación,
– La estimación inicial de la solución
– El criterio de convergencia

7.2 Métodos Iterativos.


A continuación se presentan algunos de estos métodos.

Considérese el siguiente sistema de ecuaciones:

f ij ui , j −1 + cij ui −1, j + aij ui , j + bij ui +1, j + eij ui , j +1 = d ij …(7.9)


i = 1,2,..., I
j = 1,2,..., J
Dentro de los métodos iterativos que han recibido atención en la
simulación numérica de yacimientos están el PSOR, LSOR, BSOR y
algunas variantes de estos.

Otros métodos son el ADIP y SIP.

Ninguno de estos métodos es universal: algunos funcionan bien bajo


algunas circunstancias y mal bajo otras.

20
Como antecedentes a los métodos SOR
se presenta primeramente los métodos
de:

Jacobi y de Gauss Seidel.

7.2.1 Método de Jacobi.


La solución del sistema de ecuaciones, Ec. 7.9, mediante el método de
Jacobi consiste en la aplicación sucesiva del siguiente proceso
iterativo:
1
ui(,mj +1) =
ai , j
{d i, j − f i, j ui(,mj−)1 − ci, j ui(−m1), j − bi, j ui(+m1), j − ei, j ui(,mj+)1 }

…(7.10)

donde m+1 y m son los niveles iterativos, desconocido y conocido


respectivamente.

21
7.2.1 Método de Jacobi.

Nótese que la solución de las incógnitas se obtienen puntualmente, o


explícitamente y que el orden en que estas se resuelven es irrelevante.

Como cualquier proceso iterativo, se requiere de una estimación inicial


de la solución y se espera que en la medida en que las iteraciones
avancen, el método converja a la solución.

La converjencia ocurre cuando los cambios iterativos de las incógnitas


en todos los nodos sean, en valor absoluto, menor que una
tolerancia preestablecida.

7.2.2 Método de Gauss-Seidel.


Se observa que si en el método de Jacobi se establece un orden en
la solución de las incógnitas mediante, el ordenamiento normal por
ejemplo, en la medida que se avanza la solución, existe ya en los
nodos barridos una mejor estimación de la solución.

El método de Gauss-Seidel reconoce este hecho y modifica el


algoritmo iterativo de Jacobi de la siguiente manera:

1
ui(,mj +1) =
ai , j
{ d i , j − f i , j ui(,mj−+11) − ci , j ui(−m1+, 1j ) − bi , j ui(+m1), j − ei , j ui(,mj+)1 } (7.11)

donde el barrido se hace por renglones. Esto es, en orden creciente


de j , y para cada renglón j se barre en orden creciente de i.

El método de Gauss-Seidel es computacionalmente más


simple que el método de Jacobi y converge más rápido a la
solución.

22
7.2.3 Método de SOR en Punto o PSOR.
El método iterativo del PSOR es en una modificación del método de
Gauss-Seidel, donde se introduce el uso de un parámetro de iteración,
con el objeto de acelerar el proceso de convergencia a la solución. Si
se denomina a la solución obtenida mediante el método de Gauss-
Seidel en la iteración m+1, el método PSOR se define como:

u i(,mj +1) = (1 − ω )u i(,mj ) + ω u i*(,jm +1)


…(7.12)
1≤ ω ≤ 2

donde ω es un parámetro de sobrerrelajación que, como ya se


mencionó, acelera el ritmo de convergencia de la solución. El
parámetro adquiere valores en el rango de 1 a 2. Mas adelante se
darán algunos criterios para la estimación de este parámetro.

7.2.4 Método de SOR en Línea o LSOR.


Se establecen, en cada iteración, sistemas de ecuaciones similares a
los generados en problemas lineales: Se resuelven simultáneamente
las incógnitas correspondientes a una línea o columna de celdas

En la solución de las incógnitas de una línea determinada, se emplean


los nuevos valores de las incógnitas obtenidos en líneas anteriores.

Como una extensión del método de Gauss-Seidel, para cada j se


establece el siguiente sistema de ecuaciones:

ci , j ui*−(1m, +j 1) + ai , j ui*,(jm+1) + bi , j ui*+(1m, +j 1) = d i , j − f i , j ui(,mj−+11) − ei , j ui(,mj+) 1 (7.13)

i = 1,2,....,I para cada j

23
7.2.4 Método de SOR en Línea o LSOR.

El sistema de ecuaciones generado con la Ec. 7.13 es tridiagonal. Se


puede entonces resolver mediante el algoritmo de Thomas. Una vez
que se obtiene la solución de las incógnitas , i=1,2,...,I para la línea j,
esta se sobrerrelaja como en la Ec. 7.12, esto es:

ui(,mj+1) = (1 − ω )ui(,mj ) + ωui*(,jm +1)


…(7.14)
1≤ ω ≤ 2

El ritmo de convergencia del método LSOR, depende del valor


del parámetro de sobrerelajación. Existe un valor óptimo de este
parámetro, que se puede obtener por ensaye y error, como se verá
posteriormente.

7.2.4 Método de SOR en Línea o LSOR.


El proceso iterativo LSOR comienza con la siguiente estimación inicial:

δ u i(,0j) = δ u in, j (7.15)

y termina cuando los cambios iterativos de las incógnitas son, en valor


absoluto, menores que una cierta tolerancia estipulada, esto es:

δ u i(,mj + 1 ) − δ u i(,mj ) ≤ tolerancia (7.16)

Para todo
i = 1 , 2 ,..., I
j = 1 , 2 ,..., J

24
7.2.5 Método de SOR en Bloque o BSOR.

La idea principal de este método consiste en rearreglar por planos el


sistema de ecuaciones generado para un problema tridimensional:

hi , j ,k ui , j ,k −1 + f i , j ,k ui , j −1,k + ci , j ,k ui −1, j ,k + ai , j ,k ui , j ,k
(7.17)
+ bi , j ,k ui +1, j ,k + ei , j ,k ui , j +1,k + gi , j ,k ui , j ,k +1 = di , j

i = 1,2,...,I ; j = 1,2,...,J ; k = 1,2,…,K

El problema tridimensional, Ec. 7.17, se resuelve mediante una serie


de barridos bidimensionales, empleando los nuevos valores de las
incógnitas de los planos previamente resueltos.

7.2.5 Método de SOR en Bloque o BSOR.


El método de sobrerelajación en Bloque, BSOR, aplicado a la solución
del sistema lineal de ecuaciones definido por la Ec. 7.17, consiste en
conservar en el lado izquierdo de la ecuación a los términos
correspondientes a dos direcciones así como a la diagonal principal y
pasar al lado derecho los términos correspondientes a una dirección y
a los términos de residuos, con lo que se establece el siguiente
proceso iterativo:

f i , j ,k ui*,(jm−1+,1k) + ci , j ,k ui*−(1m, +j ,1k) + ai , j ,k ui*,(jm,k+1) + bi , j ,k ui*+(1m, +j ,1k) + ei , j ,k ui*,(jm+1+,1k)


(7.18)
= di , j − hi , j ,k ui(,mj ,+k1−)1 − gi , j ,k ui(,mj ,)k +1

Para cada plano, k = 1,2,…,K


Se resuelven simultáneamente: i = 1,2,...,I ; j = 1,2,...,J

25
7.2.5 Método de SOR en Bloque o BSOR.

El problema bidimensional, Ec. 7.18, genera para un ordenamiento


normal, una matriz de coeficientes pentadiagonal que se resuelve más
eficientemente que el problema original.

Cada uno de estos problemas reducidos, se resuelve empleando un


esquema directo de solución, con lo que se genera una solución
intermedia que sirve de base para obtener la solución al nivel de
iteración desconocido, (m+1). Una vez que se obtiene la solución
intermedia de las incógnitas , i=1,2,...,I y j=1,2,….,J
correspondientes al plano k, ésta se sobrerrelaja como la Ec. 7.14.

7.2.5 Método de SOR en Bloque o BSOR.

En problemas donde el método LSOR no converge debido, por


ejemplo, a que la formación es altamente heterogénea y anisotrópica,
el método BSOR tiene un mejor comportamiento.

Las propiedades de convergencia de estos método iterativos mejoran a


medida que el número de ecuaciones resueltas simultáneamente
aumenta. Esto; sin embargo, ocasiona un aumento en el trabajo
computacional realizado en cada iteración.

Al igual que el método anterior, el método BSOR comienza con una


estimación inicial dada por la Ec. 7.15 y termina cuando alcanza la
convergencia estipulada, dada por la Ec. 7.16

26
7.2.6 Algoritmo para el cálculo del parámetro
de sobrerelajación.
Una forma de obtener el valor óptimo de ω a emplear en LSOR y
BSOR es mediante ensaye y error:

Se realizan corridas de sensibilidad con diferentes valores de ω y se


gráfica ω contra el No. de Iteraciones requeridas en la solución. El ω
óptimo, ωópt , es aquel que requiere el menor número de iteraciones.

7.2.6 Algoritmo para el cálculo del parámetro de


sobrerelajación.
Otra manera de obtener ωopt es a través del procedimiento siguiente:
Se parte de considerar que cualquier esquema iterativo para resolver el
sistema de ecuaciones puede expresarse de la siguiente forma:

u ( m+1) = A* u ( m ) + d * (7.19)
donde m+1 es el nivel iterativo desconocido y m el conocido.
El valor óptimo de está en función del radio espectral de la matriz A*,
ρ(Α∗) , de la siguiente manera:
2
ωb =
[
1 + 1 − ρ A* ( )]
2
1
2 (7.20)

donde ωb es el parámetro de sobrerelajación óptimo.

27
7.2.6 Algoritmo para el cálculo del parámetro de
sobrerelajación.
El radio espectral de la matriz A*, ρ (A * ) , está definido como:

ρ (A* )=
(θ + ω − 1)
1 (7.21)
ωθ 2

donde θ es el valor promedio del ritmo al cual converge la solución,


θ (m +1) el cual se calcula con la siguiente expresión:
δ u ( m +1 )
θ ( m +1 ) = (7.22)
δu (m )
( m +1 )
donde δ u es el vector de los cambios iterativos de la solución,
definido como:
δ u ( m +1 ) = u ( m +1 ) − u ( m ) (7.23)

y δu es la norma del vector solución de los cambios iterativos.

7.2.6 Algoritmo para el cálculo del parámetro de


sobrerelajación.
Los valores de θ (m +1) deben estar muy próximos a un valor límite de θ
y este valor se usa como una aproximación en el cálculo del radio
espectral.

También se requiere un valor inicial de ω en la Ec. 7.21 para


(m +1 )
obtener el vector solución δ u . Por tal motivo, se requiere que este
proceso iterativo se inicialice con ω = 1 y se cumpla con la siguiente
condición:

θ (m +1) − θ (m ) ≤ tolerancia (7.24)

De tal manera que este proceso iterativo se detiene hasta lograr la


convergencia estipulada, Ec. 7.24. Cabe mencionar, que este proceso
(m )
converge solo si el valor de ω es menor que el nuevo valor de
( m +1calculado.
) De otra forma, los valores deθ ( m ) oscilarán y no se podrá
ω
obtener una aproximación correcta del radio espectral, ρ ( A ) . En este
último caso, debe ω reducirse hasta que θ ( m ) logre la convergencia.

28
7.2.7 Método ADIP (Procedimiento
Iterativo de Dirección Alternada).
Peaceman, D.W. y Rachford, H.H.:” The Numerical Solution of Parabolic and
Elliptic Differential Equations,” SIAM J. Numerical Analysis (1955) 3, 28-41

El desarrollo del método ADIP, comienza por reconocer que en


problemas de flujo bidimensional, el coeficiente aij de la ecuación
7.9 puede descomponerse como la suma de las contribuciones de
los términos de flujo en x, y y del término de acumulacion, esto es:

f ij ui , j −1 + cij ui −1, j + (a x ,ij + a y ,ij + aac ,ij )ui , j


+ bij ui +1, j + eij ui , j +1 = d ij
i = 1,2,..., I
j = 1,2,..., J

Matricialmente, podemos escribir este sistema de ecuaciones


como sigue:

7.2.7 Método ADIP ...

( H + V + S )u = d
Donde:
H = Matriz que contiene las contribuciones del término de flujo en x
V = Matriz que contiene las contribuciones del término de flujo en y
S = Matriz que contiene la contribución del término de acumulación

ax b 
c a b  ay e  aac 
 x   ay e   a 
 c ax b     ac 
   ay e   aac 
 c ax b     
 f a e   aac 
 
y
c ax b    
  f ay e aac
 c ax b     
H =   f ay e   aac 
c ax b V =  S = 
  f ay e aac
 c ax b     
   f ay e   aac 

c ax b
  f ay e  
  aac
 c ax b   
   f ay   aac 
 c ax b     
 f ay   a 
 c ax 
ac
 f ay   aac

29
7.2.7 Método ADIP ...
El sistema matricial ------ puede rearreglarse como:

S S
(H + V + + )u = d
2 2
y se suma y resta la constante r (parámetro de iteración) en la
diagonal principal (o sea la matriz rI, donde I es la matriz identidad):

S S
(H + V + + + rI − rI )u = d
2 2
El algoritmo iterativo del ADIP consiste de resolver las incógnitas de
la iteración m+1 en dos barridos. En el primer barrido, en x, se obtiene
una solución intermedia, u* , rearreglando ---- como sigue:
S S
(V + + r ( m +1) I )u *( m +1) = d − ( H − + r ( m+1) I )u ( m )
2 2

7.2.7 Método ADIP ...


En el segundo barrido, en y, se obtiene la solución de la iteración m+1 :

S S
(H + + r ( m+1) I )u ( m+1) = d − (V − + r ( m +1) I )u *( m )
2 2
Al final de cada iteración se verifica la convergencia, esto es, se habrá
alcanzado la solución solo si para todo i,j se cumple que:

uij( m +1) − uij( m ) ≤ ε

Nótese que la ecuación matricial ---- que representa el primer


barrido se puede escribir equivalentemente como:

30
7.2.7 Método ADIP ...
1
c ij u i*,−(1m, j+1) + ( a x ,ij + a ac ,ij + r ( m +1) )u i*,, (j m +1) + bij u i*,+(1m, j+1)
2 i = 1,2,..., I
1 j = 1,2,..., J
= d ij − f ij u i(,mj−) 1 − ( a y ,ij + a ac ,ij − r ( m +1) )u ij( m ) − eij u i(,mj+) 1
2
Al escribir esta ecuación en cada j y todas las i’es ( i=1,2,...I) se
genera un subsistema de I ecuaciones con I incógnitas, similar al
que se resulta de problemas de flujo 1D:
i = 1,2,..., I
cij ui*,−(1m, j+1) + a (Xm,ij+1)ui*,,(j m +1) + bij ui*,+(1m, j+1) = d ij*,( m )
j dada
1=1 2 I
j=1
2 Primer Barrido:
Solución
Intermedia u*i,j
J

7.2.7 Método ADIP ...


Similarmente, la ecuación ---- del segundo barrido se escribe como:
1
f ij ui(,mj−+11) + (a y ,ij + aac ,ij + r ( m +1) )ui(,mj +1) + eij ui(,mj++11)
2 i = 1,2,..., I
1 j = 1,2,..., J
= d ij − cij ui*,−(1m, j) − (a y ,ij + aac ,ij − r ( m +1) )uij*,( m ) − bij ui(+m1), j
2
Vemos de nuevo que esta ecuación escrita en cada i, para toda j
( j=1,2,...J) genera subsistemas de J ecuaciones con J incógnitas
f ij ui(,mj−+11) + aY( m,ij+1)ui(,mj +1) + eij ui(,mj++11) = d ij**,( m )
i=12 I
j = 1,2,..., J
j=1 i dada
2
Segundo Barrido:
Solución ui,j(m+1)
J

31
7.2.7 Método ADIP ...
Los parámetros de iteración se calculan mediante una progresión
geométrica:
r ( m +1) = ω r ( m ) m=1,2,...,M-1
1
r  M −1
ω =  max 
 rmin 
Bjordammen y Coats, (1969) sugieren calcular rmax y rmin como:
rmax = 1
 
 
 π 2
π 2 
rmin = min  , 
 2   ∆ x  k y   
2 2
i, j
2  1 +  ∆ y  k x  
 2 I 1 +   2J
 
   ∆ y  k x  i , j   ∆ x  k y  i , j 

7.2.7 Método ADIP ...

La aplicación de estos parámetros durante el proceso iterativo de


solución es cíclica. Esto es, si se requiere un número iteraciones
mayor que M, los parámetros de iteración se repiten nuevamente,
r(1), r(2), ...., hasta alcanzar la convergencia.

El número de parámetros de iteración, M, se determina generalmente


por ensaye y error: Típicamente M = 6

32
7.2.8 Método SIP (Procedimiento
Fuertemente Implícito)
Stone, H.L.:”Iterative Solution of Implicit Approximations of Multidimensional
Partial Differential Equations,” SIAM J. Numerical Analysis (1968) 5, 530-58.

Fue el primer método de factorización aproximada empleado en la


SNY. La solución se obtiene mediante un proceso de eliminación
que trabaja sobre una versión modificada de la matriz original.

Sea nuevamente el problema a resolver el siguiente:

Au = d
Se busca reemplazar A por A*, siendo esta última tal que pueda
factorizarse mas fácilmente en el producto de dos matrices, LU,
triangular inferior y triangular superior, respectivamente.

7.2.8 Método SIP ...


En problemas bidimensionales, L y U se condicionan a tener sólo
tres elementos diferentes de cero en cada renglón. Esto se traduce
en menos trabajo computacional para resolver el sistema por
eliminación.
La definición del algoritmo iterativo parte de sumar y restar A*u al
sistema original:

Au = A*u − A*u + d
y se rearregla iterativamente como:

A*u ( m+1) − A*u ( m) = Au(m) − d


o bien,

A*δu ( m+1) = R( m)

33
7.2.8 Método SIP ...
donde:

δu (m+1) = u ( m+1) − u ( m)
y,
R( m) = Au( m) − d
pero,

A* = LU
entonces,

LUδu ( m+1) = R( m)

7.2.8 Método SIP ...


Si hacemos:

Uδu ( m+1) = v( m+1)


tenemos que podemos resolver el vector v(m+1) hacia adelante,

Lv( m+1) = R( m)
Una vez resuelto v(m+1) la solución de δu(m+1) se obtiene mediante
substitución hacia atrás,

Se procede luego a verificar la convergencia, y se dará por concluido


el proceso iterativo cuando de solución cuando

uij( m +1) − uij( m ) ≤ ε

34
7.2.8 Método SIP ...
Se derivará el algoritmo del SIP mediante un problema bidimensional.

Considérese nuevamente el sistema problema:


f ij ui , j −1 + cij ui −1, j + aij ui , j i = 1,2,..., I
+ bij ui +1, j + eij ui , j +1 = d ij j = 1,2,..., J

i=1 2 3 4
j=1 1 2 3 4

2 5 6 7 8

3 9 10 11 12

7.2.8 Método SIP ...


Se tiene entonces, siguiendo el ordenamiento indicado:

a1,1 b1,1 0 0 e1,1 0 0 0 0 0 0 0  u1,1  d1,1 


c a2,1 b2,1 0 0 e2,1 0 0 0 0 0 0  u2,1 d2,1
 2,1
0 c3,1 a3,1 b3,1 0 0 e3,1 0 0 0 0 0  u3,1 d3,1
    
0 0 c4,1 a4,1 0 0 0 e4,1 0 0 0 0  u4,1 d4,1
 f1,2 0 0 0 a1,2 b1,2 0 0 e1,2 0 0 0  u1,2  d1,2 
    
0 f2,2 0 0 c2,2 a2,2 b2,2 0 0 e2,2 0 0  u2,2 d2,2
0 =
0 f3,2 0 0 c3,2 a3,2 b3,2 0 0 e3,20  u3,2 d3,2
    
0 0 0 f4,2 0 0 c4,2 a4,2 0 0 0 e4,2  u4,2 d4,2
0 0 0 0 f1,3 0 0 0 a1,3 b1,3 0 0  u1,3  d1,3 
    
0 0 0 0 0 f2,3 0 0 c2,3 a2,3 b2,3 0  u2,3 d2,3
    
0 0 0 0 0 0 f3,3 0 0 c3,3 a3,3 b3,3  u3,3 d3,3
 0 0 0 0 0 0 0 f4,3 0 0 c4,3 a4,3 u4,3 d4,3

35
7.2.8 Método SIP ...
Si definimos L como:

 A1,1 0 0 0 0 0 0 0 0 0 0 0 
C A 0 0 0 0 0 0 0 0 0 0 
 2,1 2,1 
 0 C3,1 A3,1 0 0 0 0 0 0 0 0 0 
 
 0 0 C4,1 A4,1 0 0 0 0 0 0 0 0 
F1,2 0 0 0 A1,2 0 0 0 0 0 0 0 
 
 0 F2,2 0 0 C2,2 A2,2 0 0 0 0 0 0 
L= 
0 0 F3,2 0 0 C3,2 A3,2 0 0 0 0 0 
 
 0 0 0 F4,2 0 0 C4,2 A4,2 0 0 0 0 
0 0 0 0 F 0 0 0 A 0 0 0
 1,3 1,3 
 0 0 0 0 0 F2,3 0 0 C2,3 A2,3 0 0 
 
 0 0 0 0 0 0 F3,3 0 0 C3,3 A3,3 0 
 0 0 0 0 0 0 0 F4,3 0 0 C4,3 A4,3

7.2.8 Método SIP ...


y U como:

 |1 B1,1 0 0 E1,1 0 0 0 0 0 0 0 
0 1 B 0 0 E 0 0 0 0 0 0
 2,1 2,1 
 0 0 1 B3,1 0 0 E3,1 0 0 0 0 0 
 
 0 0 0 1 0 0 0 E4,1 0 0 0 0 
 0 0 0 0 1 B1,2 0 0 E1,2 0 0 0 
 
 0 0 0 0 0 1 B2,2 0 0 E2,2 0 0 
U=
0 0 0 0 0 0 1 B3,2 0 0 E3,2 0 
 
 0 0 0 0 0 0 0 1 0 0 0 E4,2
0 0 0 0 0 0 0 0 1 B 0 0
 1,3 
 0 0 0 0 0 0 0 0 0 1 B2,3 0 
 
 0 0 0 0 0 0 0 0 0 0 1 B3,3
 0 0 0 0 0 0 0 0 0 0 0 1 

36
7.2.8 Método SIP ...
Entonces tenemos:

a1*,1 b1*,1 0 0 e1*,1 0 0 0 0 0 0 0


* 
c2,1 a2*,1 b2*,1 0 g2*,1 e2*,1 0 0 0 0 0 0
0 c3*,1 a3*,1 b3*,1 0 g3*,1 e3*,1 0 0 0 0 0
 
0 0 c4*,1 a4*,1 0 0 g4*,1 e4*,1 0 0 0 0
f* h1*,2 0 0 a1*,2 b1*,2 0 0 e1*,2 0 0 0
 1,2 
0 f2*,2 h2*,2 0 c2*,2 a2*,2 b2*,2 0 g2*,2 e2*,2 0 0 
A* = LU = 
0 0 f3*,2 h3*,2 0 c3*,2 a3*,2 b3*,2 0 g3*,2 e3*,2 0 
 
0 0 0 f4*,2 0 0 c4*,2 a4*,2 0 0 g4*,2 e4*,2 
 
0 0 0 0 f1*,3 h1*,3 0 0 a1*,3 b1*,3 0 
0 0 0 0 0 f2*,3 h2*,3 0 c2*,3 a2*,3 b2*,3 0 
 
0 0 0 0 0 0 f3*,3 h3*,3 0 c3*,3 a3*,3 b3*,3 
0 0 0 0 0 0 0 f4*,3 0 0 c4*,3 a4*,3 

7.2.8 Método SIP ...


donde:

f i *,j = Fi , j

hi*, j = Fi , j Bi , j −1

ci*, j = Ci , j

ai*, j = Fi , j Ei , j −1 + Ci , j Bi −1, j + Ai , j

bi*, j = Ai , j Bi , j

g i*, j = Ci , j Ei −1, j

ei*, j = Ai , j Ei , j

37
7.2.8 Método SIP ...
Vemos entonces que se tiene ahora lo siguiente:

f i *,j ui , j −1 + hi*, j ui +1, j −1 + ci*, j ui −1, j + ai*, j ui , j i = 1,2,..., I


j = 1,2,..., J
+ bi*, j ui +1, j + g i*, j ui −1, j +1 + ei*, j ui , j +1 = d ij
Donde aparecen dos incógnitas adicionales en los nodos i-1.j-1
e i+1,j+1:

i-1,j-1 i,j-1

i-1,j i,j i+1,j

i,j+1 i+1,j+1

7.2.8 Método SIP ...


Ahora bien, si modificamos ligeramente el sistema original de
ecuaciones como sigue:

f i , j ui , j −1 + hi , j [ui +1, j −1 − α (ui +1, j + ui , j −1 − ui , j )] + ci , j ui −1, j + ai , j ui , j


+ bi , j ui +1, j + g i , j [ui −1, j +1 − α (ui , j +1 + ui −1, j − ui , j )] + ei , j ui , j +1 = d ij

Nótese que
ui +1, j −1 ≈ ui +1, j + ui , j −1 − ui , j
y

ui −1, j +1 ≈ ui , j +1 + ui −1, j − ui , j
Aproximaciones que se obtienen como sigue:

38
7.2.8 Método SIP ...
∂u
ui −1, j +1 = ui , j +1 − ∆xi + O(∆x 2 ) restando, y considerando
∂x i , j +1 que ∆xi
∂u
= ∆xi
∂u
∂x i , j +1 ∂x i −1, j
∂u se obtiene la aproximación
ui , j = ui −1, j + ∆xi + O(∆x 2 ) para ui-1,j+1
∂x i −1, j
∂u
ui +1, j −1 = ui +1, j − ∆y j + O(∆y 2 ) restando, y considerando
∂y i +1, j ∂u ∂u
que ∆y j = ∆y j
∂y i +1, j ∂y i , j −1
∂u se obtiene la aproximación
ui , j = ui , j −1 + ∆y j + O(∆y 2 ) para ui+1,j-1
∂y i , j −1

7.2.8 Método SIP ...


La ecuación modificada se escribe entonces como:

( f i, j − αhi , j )ui, j −1 + hi , j ui +1, j −1 + (ci , j − αgi , j )ui −1, j


+ (ai , j + αhi, j + αgi , j )ui , j + (bi , j − αhi , j )ui +1, j
+ gi, j ui −1, j +1 + (ei , j − αgi , j )ui, j +1 = dij

Comparando esta ecuación con la obtenida previamente del


producto A*=LU encontramos las siguientes equivalencias:

39
7.2.8 Método SIP ...

f i *,j = f i , j − αhi , j

hi*, j = hi , j

ci*, j = ci , j − αg i , j

ai*, j = ai , j + αhi , j + αg i , j

bi*, j = bi , j − αhi , j

g i*, j = g i , j

ei*, j = ei , j − αg i , j

7.2.8 Método SIP ...


y de acuerdo a la definición de f*, h*, c*..., en términos de los
elementos de L y U, tenemos:

f i , j − αhi , j = Fi , j

hi , j = Fi , j Bi , j −1 Sistema de 7
ci , j − αg i , j = Ci , j ecuaciones
con 7
ai , j + αhi , j + αg i , j = Fi , j Ei , j −1 + Ci , j Bi −1, j + Ai , j incógnitas:

bi , j − αhi , j = Ai , j Bi , j G,C,A,B,F,h,e
g i , j = Ci , j Ei −1, j

ei , j − αg i , j = Ai , j Ei , j

40
7.2.8 Método SIP ...
Resolviendo se obtiene que:
Sistema de 7
f i , j − αhi , j = Fi , j ecuaciones con 7
incógnitas:
hi , j = Fi , j Bi , j −1
G,C,A,B,F,h,e
ci , j − αg i , j = Ci , j
Si se introduce hij y
ai , j + αhi , j + αg i , j = Fi , j Ei , j −1 + Ci , j Bi −1, j + Ai , j
gij en el resto, se
bi , j − αhi , j = Ai , j Bi , j reduce a 5
ecuaciones con 5
g i , j = Ci , j Ei −1, j incógnitas:

ei , j − αg i , j = Ai , j Ei , j G, C, A, B, F

7.2.8 Método SIP ...


Resolviendo se obtiene:
fi, j
Fi , j =
1 + αBi , j −1
ci , j
Ci , j =
1 + αEi −1, j
Ai , j = ai , j + Fi , j (αBi , j −1 − Ei , j −1 ) + Ci , j (αEi −1, j − Bi −1, j )

bi , j − αFi , j Bi , j −1
Bi , j =
Ai , j

ei , j − αCi , j Ei −1, j
Ei , j =
Ai , j

41
7.2.8 Método SIP ...
Hemos entonces encontrado la manera de calcular los elementos de
las matrices L y U en términos de los elementos de la matriz original.

Regresando entonces a,

Lv( m+1) = R( m)
vemos que se escribe como:

Fi, j vi(,mj−+11) + Ci , j vi(−m1+, j1) + Ai, j vi(,mj+1) = Ri(,mj)

y se resuelve por substitución hacia adelante:

7.2.8 Método SIP ...


( m+1)
Una vez resuelto vi , j , resolvemos mediante substitución hacia
atrás las incógnitas de la iteración (m+1)

Uδu ( m+1) = v( m+1)


lo que es igual a:

δui(,mj+1) + Bi , jδui(+m1+, j1) + Ei , jδui(,mj++11) = vi(,mj)


Entonces

δui(,mj+1) = vi(,mj) − Bi , jδui(+m1+, j1) − Ei , jδui(,mj++11)

42
7.2.8 Método SIP ...
Stone recomienda usar una secuencia de parámetros de iteración, de
manera cíclica como en el ADIP. Los parámetros se espacían
geométricamente entre 0 y αmax donde,
 
 
 π 2
π 2 
(1 − α max ) = min  , 
 2   ∆ x  k y   
2 2
i, j
 ∆ y  k 
 2 I  1 +   2 J 2 1 +   x  
∆y  k x  
   i, j   ∆ x  k y  i , j 

y los parámetros se calculan como:


m
(1 − α m ) = (1 − α max ) M −1
m=0,1,2,..., M-1

M es el No. de parámetros por ciclo: Stone recomienda M = 4 y usar


cada parámetro dos veces en cada ciclo

7.3 Solución de Sistemas de Ecuaciones


estructurados en Bloques.
Los métodos directos e iterativos descritos previamente se extienden en
forma natural a la solución de sistemas estructurados en bloques.
La diferencia estriba en que en lugar de operar con escalares, como hasta
ahora se ha mostrado, debe hacerse operaciones matriciales.

El orden de las operaciones es entonces importante en este caso.

Se toma como ejemplo la extensión del algoritmo de Thomas a la solución


de sistemas tridiagonales en bloques, como los generados en la aplicación
del método de Newton a la linealización de las ecuaciones de flujo
multifásico en diferencias. Se puede representar el sistema como:

a1u1 + b1u2 = d1
ciui-1 + aiui + biui+1 = di ; i=2,3,...,I-1
cIuI-1 + aIuI = dI (7.25)

43
7.3 Solución de Sistemas de Ecuaciones estructurados
en Bloques.

o bien: Au = d …(7.26)
donde,
 a1 b1 
c a2 b2 
 2 
 c3 a3 b3 
A=  
 . . . 
 . . . 
 
 . . .
 cI aI 

así como uT = (u1,u2,...,uI) y dT = (d1,d2,...,dI).

Los elementos ai, bi y ci son para el caso de flujo trifásico de fluidos tipo
beta, aceite, gas y agua, submatrices de (3x3). Los elementos ui y di
son entonces subvectores de orden 3.

En forma similar con el procedimiento establecido anteriormente, la solución


del sistema tridiagonal en bloque consiste en descomponer la matriz A en el
producto WQ. Por lo que se establece el sistema g=Qu, como paso intermedio
de la solución. En este caso, las matrices W y Q se definen como sigue:

 w1 w2 w3  
 
w4 w5 w6  

w7 w8 w9 1 
 
  c1 c2 c3   w1 w2 w3  
 c4 c5 c6  w w5 w6  
   4  
 c7 c8 c9  2 w7 w8 w9  2 
 c1 c2 c3   w1 w2 w3  
 c 
 c5 c6  w w w 

 4   4 5 6
 c7 c8 c9 3 w7 w8 w9  3 
W = 
 
 
 
 
 
 
 
 
 
 c1 c2 c3   w1 w2 w3  
 c c c  w w 
 w6  
 4 5 6  4 5 
 c7 c8 c9  I w7 w8 w9  I 

44
7.3 Solución de Sistemas de Ecuaciones
estructurados en Bloques.
I q1 
y,  
I q2
 
 I q3 
Q=  
 . . 
 . . 
 
 I q I −1 
 I 
1 0 0
I =  0 1 0
donde I es la matriz identidad de orden (3x3),  
0 0 1

Las submatrices wi, qi y el subvector gi se obtienen como:


w1 = a1
q1 = w1−1b1
qi = wi−1bi ; i = 2,3,...., I
wi = ai − ci qi −1 ; i = 2,3,..., I …(7.27)

7.3 Solución de Sistemas de Ecuaciones


estructurados en Bloques.
y,

g1 = w1−1d 1
g i = wi−1 (d i − ci g i −1 ); i = 2,3,..., I (7.28)

La solución de u se obtiene en un barrido hacia atrás como sigue:

uI = g I
u i = g i − q i u i +1 ; i = I − 1, I − 2 , ...., 1
(7.29)

45
7.4 Métodos Directos Versus Métodos
Iterativos.
En los métodos directos convencionales, eliminación Gaussiana o
descomposición LU por ejemplo, el requerimiento de memoria y el
tiempo de cómputo aumentan drásticamente en la medida que
aumenta el número de ecuaciones.

Por esta razón, los métodos directos son generalmente preferidos


cuando el número de ecuaciones no es muy grande. ¿Qué es grande y
qué es pequeño?: es una pregunta difícil de contestar.

Con el desarrollo de las denominadas supercomputadoras el


calificativo puede ser demasiado subjetivo. Lo que antes era un
sistema grande, puede ahora considerársele un sistema pequeño.

7.4 Métodos Directos Versus Métodos Iterativos.

Es también indudable que con el desarrollo de los métodos de matrices


dispersas y de técnicas especiales de ordenamiento, los métodos
directos tienen ahora un mayor potencial de aplicación: el tamaño de
los sistemas de ecuaciones que puede resolverse eficientemente
mediante estos métodos es cada vez mayor, y lo seguirá siendo en la
medida en que los sistemas de cómputo sean más poderosos.

Una desventaja de los métodos iterativos es la falta de metodologías


para el cálculo de los parámetros de iteración óptimos. Los métodos
existentes para el cálculo de estos parámetros han sido desarrollados
bajo una serie de simplificaciones. En algunas situaciones los
parámetros teóricos no solo no resuelven eficientemente el problema,
sino que provocan problemas de convergencia en el método.

46
SOLUCIÓN DE SISTEMAS LINEALES
DE ECUACIONES
Básicamente Existen dos métodos de solución
1. Métodos Directos: Requieren de un número
fijo de operaciones para resolver un sistema
dado
2. Métodos Iterativos: Consiste en aplicar
algoritmos cíclicos, en espera de que el paso
de las iteraciones se obtenga una mejor
aproximación de la solución. El número de
operaciones por ciclo es predecible, sin
embargo, el número de iteraciones es
impredecible.

ORDENAMIENTO D4
Price H. S ξ coats k. h “Direct methods on reservoir simulation” trans SPE of AIME, 257, pp 295 - 308

IDEA BÁSICA: ordenar las ecuaciones por líneas/planos diagonales


alternados de forma tal que se reduzca el trabajo requerido durante la
solución mediante eliminación gaussiana.

i=1 2 3 4 5
No. Planos
I=5 1 3 12 4 4 5 16 6 8 7
J=1 NP. = (I+J+K) – 2
J=4
11 4 3 5 15 6 7 7 19 8 NP = 8 planos
K=1 2

3 2 5 14 6 6 7 18 8 10 9
Suponer que:
4 13 6 5 7 17 8 99 20 10
I>J>K

47
ORDENAMIENTO D4
• Cada plano se identifica con el número m
• Los nodos asociados al plano m son tales que
i + j + k =m
Y
m = 3, 4, 5, …M
Donde
M=I+J+K

• Si M es par el orden de los planos es


3, 5, 7, …, M -1 , 4, 6, 8, … M

• Si M es impar
3, 5, 7, …, M , 4, 6, 8, …, M -1

ORDENAMIENTO D4

• Los nodos en el plano deben numerarse en orden


decreciente de k y para cada k cte., en orden
decreciente de j y creciente de i.

En el ejemplo M =10 (8 planos) el orden de los planos es:

3, 5, 7, 9, 4, 6, 8, 10

48
PLANO INDICES DEL NODO # DEL NODO (ORD. 4)

i j k
3 1 1 1 1
5 1 3 1 2
5 2 2 1 3
5 3 1 1 4
7 2 4 1 5
7 3 3 1 6
7 4 2 1 7
7 5 1 1 8
9 4 4 1 9
9 5 3 1 10
4 1 2 1 11
4 2 1 1 12
6 1 4 1 13
6 2 3 1 14
6 3 2 1 15
6 4 1 1 16
8 3 4 1 17
8 4 3 1 18
8 5 2 1 19
10 5 4 1 20

ORDENAMIENTO D4

Jk+4

Jk+1 ELIMINACIÓN DE ALL

AUL AUR XU bU AUL AUR XU bU

ALL ALR XL bL 0 ALR* XL b L*

49
ORDENAMIENTO D4
Donde ALR* es una matriz bandada con ancho total de banda
2 jk+1 (i>j>k)
BOAST (DOE Franehi)

Subrutina D4INI calcula índices de ordenamiento y llena


la matriz de coef. Y el vector de términos
independientes del sistema de ecs. a
resolver
Sub. D4 eliminación Gaussiana de ALL

Sub. Band resuelve ALR* XL = bL*

en D4 se resuelve XU por substitución hacia atrás

i= 1 2 3 4 5
1,1 2,1 3,1 4,1 5,1
J=1 NX = 5
1 2 3 4 5

2
1,2 2,2 3,2 4,2 5,2 NY = 5
6 7 8 9 10
1,3 2,3 3,3 4,3 5,3 ORDENAMIENTO
3
11 12 13 14 15 NORMAL
1,4 2,4 3,4 4,4 5,4
4
16 17 18 19 20
1,5 2,5 3,5 4,5 5,5
5
21 22 23 24 25

i= 1 2 3 4 5
2,1 3,1 4,1
J=1 ORDENAMIENTO
1,2 2,2
1
3,2
2
4,2
3
5,2
NORMAL
2
4 5 6 7 8
1,3 2,3 4,3 5,3
3 Celda activa
9 10 11 12
2,4 3,4 4,4 5,4
4 Celda inactiva
13 14 15 16
2,5 3,5 4,5
5
17 18 19

50
i= 1 2 3 4 5
1,1 2,1 3,1 4,1 5,1
J=1
1 14 2 16 5 ORDENAMIENTO
1,2 2,2 3,2 4,2 5,2
2
15 3 17 6 20
D4
1,3 2,3 3,3 4,3 5,3
3
4 18 7 21 10
1,4 2,4 3,4 4,4 5,4
4
19 8 22 11 24
1,5 2,5 3,5 4,5 5,5
5
9 23 12 25 13

Esquema de ordenamiento D4 y un
algoritmo de Banda.
Este ordenamiento y el algoritmo de banda constituyen un
método directo de solución para resolver un sistema de
ecuaciones lineales de la forma:

Pδ X p = − rp

Donde: P es la matriz de coeficientes


δXp es el vector de incógnitas
rp es el vector de términos conocidos

51
De acuerdo con este ordenamiento, este sistema de
ecuaciones se puede particionar como:
 P1 P 2   δ X p1   r p1 
   = − 
P3 P 4  δ Xp 2   rp 2 

Donde P1 → y → P 4 son submatrices diagonales, y


P 2 → y → P3 son submatrices bandadas

Aplicando el proceso de eliminación hacia adelante en la


mitad inferior de la matriz P, es posible reducir la
submatriz P3 a una matriz nula.

Esto es:  P1 P 2   δXp1   rp1 


    = −  *
 O P 4  δXp 2   rp 2 
*

En el proceso de eliminación, la submatriz diagonal P4 se transforma en


una submatriz bandada, P4* y el vector rp2 en rp2*, ahora es posible resolver

[ ]
P4 * δ X p 2 = − r p 2* ⇒ δ X p 2 = − P4 *
−1
rp 2 *
El cual se resuelve mediante un algoritmo de banda para obtener el vector
δXp 2 y después se calcula el vector δXp1 mediante una sustitución
regresiva, ya que la submatriz P1 es una submatriz diagonal. Esto último
se expresa como:
P1 δ X p1 + P2 δ X p 2 = − r p1

52
Se puede expresar por lo tanto como:

δXp1 = −[P1 ] [rp1 + P2 δXp 2 ]


−1

NSPIV, ELIMINACIÓN GAUSSIANA DE MATRICES


DISPERSAS CON PIVOTEO PARCIAL

Este método permite resolver un sistema lineal de ecuaciones en


forma directa, tomando ventaja de la esparcidad de la matriz de
coeficientes para eliminar operaciones con elementos iguales a cero.

El procedimiento de solución es el siguiente:

• Considérese el sistema lineal de ecuaciones expresado de la forma:

Ax = b
• La eliminación Gaussiana se efectúa con intercambios de columnas
en la matriz A para obtener una factorización de la forma:

AQ = LU

53
• Donde: L Es una matriz triangular inferior
U es una matriz triangular superior
Q es una matriz de permutación
Por lo que se puede establecer el siguiente sistema:
T
LU Q x = b

Este sistema se puede descomponer en los siguientes


subsistemas:
Ly = b
y
T
UQ x = y

Se resuelve primero el subsistema L y = b mediante


una sustitución hacia delante para obtener el vector y
y posteriormente se calcula el vector x , del
T
subsistema U Q x = y mediante una sustitución hacia
atrás.
Este método requiere de 3 vectores para almacenar los
elementos diferentes de cero de la matriz

54

Vous aimerez peut-être aussi