Sunteți pe pagina 1din 10

80

CAPÍTULO 5

5. FACTORIZACIÓN DE LA MATRIZ DE RIGIDEZ

5.1. Factorización de Matrices

El programa resuelve el sistema de ecuaciones planteado en la

expresión 1-8 mediante el denominado 'método de Cholesky'. Para

poder aplicar este método es necesario que la matriz de rigidez [S]

cumpla con la condición

[X]T [S] [X] > 0 (5-1)

para toda matriz columna [X] diferente de cero. Si tal es el caso,

entonces el algoritmo indicado en la figura 5-1 permitirá calcular

una matriz triangular inferior [G] de orden n, con su diagonal

principal formada por elementos positivos, tal que


81

[G] [G]T = [S] (5-2)

En esta expresión [G] representa la matriz factorizada de [S].

Como ejemplo, para el caso de la matriz [S] de la expresión 4-14, ,

la matriz [G] será de la forma

| g11 0 0 0 0 0 |
| |
| g21 g22 0 0 0 0 |
| |
| 0 g32 g33 0 0 0 |
[G] = | | (5-3)
| 0 0 g43 g44 0 0 |
| |
| 0 0 0 g54 g55 0 |
| |
| 0 0 0 0 g65 g66 |

Se puede observar que siendo la matriz [S] del ejemplo de ancho

de media banda m=1, la matriz [G] tiene un ancho de banda igual

a 2, esto es, igual a m+1.

Usando la matriz [G] y una vez que se haya determinado la matriz

[Cn], los desplazamientos desconocidos de la estructura [D] podrán

ser calculados siguiendo el procedimiento que se explica en el

Capítulo 7. Como la matriz [S] solo depende de la geometría de la


82

estructura, para una configuración estructural dada, la matrices [S]

y [G], se mantendrán constantes, independientemente de las

condiciones de carga aplicadas. Al plantear la solución del análisis

en base a la matriz [G], no es necesario que el programa duplique

la memoria utilizada almacenando la matriz [S]. Es por esta razón

que los elementos de [G] son almacenados en las mismas

posiciones del arreglo 'A' usadas por los elementos de [S]. La

sección del programa que hace el cálculo de los elementos de [G]

ha sido desarrollada para trabajar de esa forma, aprovechando el

hecho de que una vez que ha sido establecido un elemento g ij, el

elemento Sij que se usó para generarlo no se vuelve a utilizar (ver

el algoritmo de la fig. 5-1) y se aprovecha el lugar que ocupaba S ij

en el arreglo 'A' para almacenar al elemento g ij.

5.2. Diagrama de Flujo

La sección del programa que realiza el cálculo de los elementos

de la matriz [G] se inicia a partir de la línea 4000, identificada por

la etiqueta`4. FACTORIZACION DE LA MATRIZ DE RIGIDEZ'. El

diagrama de flujo correspondiente se indica en la figura 5-2 al final

del capítulo.
83

5.3. Descripción del Procedimiento para Determinar la Matriz

Factorizada

En el diagrama de flujo de la figura 5-2 se identifican

fundamentalmente dos partes contenidas dentro de un lazo que

incluye a todas las instrucciones de esta sección. En la primera

parte, se calculan los elementos gjj de la diagonal principal de [G]

y, en la segunda, se lo hace con los elementos g ij que están bajo gjj

en su misma columna. El procedimiento se explica a continuación.

5.3.1. Cálculo de los Elementos de la Diagonal Principal

De acuerdo con el algoritmo presentado en la figura 5-1, los

elementos de la diagonal principal de la matriz [G] se

generan según la expresión

j -1
g jj  S jj   g jk 2 (5-4)
k q

Como estos elementos se almacenan en el arreglo `A' línea

a línea secuencialmente, el primer paso del procedimiento

es determinar el subíndice que define la posición del ele-

mento en [A]. Si el elemento gjj corresponde a una fila que

tiene menos elementos no nulos que el valor del ancho de

media banda (MUD), el subíndice esta dado por


84

L = 1 + J (J-1) / 2 (5-5)

en caso contrario, el programa utiliza la expresión

L = J - MUD + (J-MM) MUD + NS (5-6)

donde: MM = MUD+1 (5-7)

NS = MUDMM/2 (5-8)

Posteriormente se ejecuta la sumatoria de los elementos g jk2

para calcular el elemento gjj en forma equivalente a la

expresión 5-4.

5.3.2. Cálculo de los Elementos de Cada Columna

Los elementos de cada columna que siguen a gjj son

determinados según la expresión

j-1
S jj   g jk 2
g jj  k 1 (5-9)
g jj

El cálculo de dichos elementos se realiza mediante un lazo


85

que se ejecuta el número de veces necesarias para

completar los elementos no nulos de la columna.

Similarmente al proceso anterior, el primer paso en este

caso es seleccionar el subíndice que corresponde al

elemento a almacenarse en `A'. Siguiendo las operaciones

indicadas en la expresión anterior, se efectúa la sumatoria

de los elementos gij y gjk, para calcular luego el

correspondiente elemento gij.


86

INICIO

Ingresa:
MAT
[S]nxn
MUD

J=1

J = J+1

N J<= S
MUD+1
?
Q = J-MUD Q=1

j -1
g jj  S jj   g jk 2
k q

I = J+1

I = I+1

N S
J>
MUD+1
?
R=1 R = J-MUD

j-1
S jj   g jk 2
g jj  k 1
g jj

N
I
>N ?
S
N S
J>N FIN
?

Fig. 5-1.- Algoritmo de Cholesky para factorizar matrices.


87

11

J=1
J = J+1

N J<= S
MUD ?

IN = J-MUD IN = 1
L=IN+(J-MM)*MUD L=IN+(J-1)*J/2
+NS

N J+ S
MUD
<=N ?
M5 = N M = J+MUD

S1 = 0
J1 = J – 1
J2 = J + 1

S
J <=
0
?
N
K = IN

T1 = A(L)
S1 = S1+T1*T1
K = K+1 L=L+1

N
I
>N ?
S
T1 = A(L)

17 12

Fig. 5-2.- Diagrama de flujo de la sección que factoriza la matriz de rigidez


88

12

S "LA MATRIZ
T1< NO ES
S1 FACTORIZABL
? E"
N

T1 = SQR(T1-S1)
A(L) = T1 STOP

S
J
>=N
?
N
I = J2

SM = 0

N I<= S
MUD ?

IN = I-MUD IN = 1
LL=IN+(I-MM)*MUD LL=IN+(I-1)*I/2
+NS

J1 <= 0 S
?

IN > J1 S
?

15 13 14 16

Fig. 5-2.- (Cont.)


89

17 15 13 14 16

K = IN

LM = L + K - J

SM = SM + A(LL) * A(LM)

LL = LL + 1

N K>
K = K+1
J1 ?

A(LL) = (A(LL) – SM) / A(L)

N I>
I = I+1
M5
?
S

N J>
N?

18

Fig. 5-2.- (Cont.)