Documente Academic
Documente Profesional
Documente Cultură
Resumen
Conocido también como método de diagonalización por rotaciones sucesivas, este procedimiento permite
determinar, simultáneamente, todas las frecuencias y modos de sistemas complejos de hasta 200 grados de
libertad. Consiste esencialmente, en diagonalizar la matriz dinámica o su inversa con el objeto de obtener,
en la ecuación matricial característica, una serie de expresiones independientes, fáciles de resolver.
1. MÉTODO DE JACOBI
Un método clásico para encontrar los valores y vectores propios de una matriz simétrica es el Método de
Jacobi. Los teoremas fundamentales en que se basa el método son:
1.1. Teorema 1
Dos matrices A y B se dicen que son semejantes si existe una matriz que admite inversa P, tal que:
B = P .−1 AP
1.2. Teorema 2
Si A y B son dos matrices semejantes, entonces tienen los mismos valores propios.
1.3. Teorema 3
Si una matriz es diagonal. Entonces los valores propios son los elementos de la diagonal.
1.4. Teorema 4
Toda matriz simétrica es diagonalizable en una base de vectores propios.
Definición de Matriz Ortogonal. Una matriz H se dice que es ortogonal, si:
HH t = I ⇒ H .−1 = H t
La idea básica del Método de Jacobi es construir una serie de matrices que son semejantes a la original, para lo
cual se emplea una matriz de paso P que es ortogonal. Las matrices semejantes que se van obteniendo tienden
a ser diagonales.
El procedimiento es iterativo y termina estrictamente cuando se llega a una matriz diagonal.
El procedimiento termina cuando en la última matriz encontrada, la suma de los elementos fuera de la
diagonal en valor absoluto es menor a una tolerancia prefijada. La matriz final es semejante a la matriz original
y además se considera diagonal. Por lo tanto los valores propios son las cantidades de la diagonal.
Existe las siguientes posibilidades para hacer cero a los elementos fuera de la diagonal:
1
Hacer ceros por filas.
Hacer ceros por columnas.
Hacer cero al mayor elemento fuera de la diagonal en valor absoluto.
En la ecuación anterior se han indicado los elementos no nulos de la matriz P. En general ésta matriz se
determina de la siguiente manera.
En la diagonal principal todos los elementos son 1 a excepción de dos términos que valen cos θ . Estos
términos corresponden a los ubicados en la fila p y columna p; y al ubicado en la fila q y columna q.
El elemento ap,q , de la matriz triangular inferior tiene por valor sin θ , su simétrico vale -sin θ
3. Procedimiento de cálculo
El procedimiento de cálculo para encontrar los valores y vectores propios de una matriz A simétrica es como
sigue:
Se construye la matriz A1 semejante a la matriz A
A1 = P .−1 AP1
A2 = P2t A1 P2
2
A3 = P3t A2 P3
A4 = P4t A3 P4
...........................
t
Ak+1 = Pk+1 Ak Pk+1
Se puede decir que Ak+1 = Dk+1 + Ek+1 Donde Dk+1 es una matriz diagonal y Ek+1 lo que está fuera de la
diagonal. Entonces.
Por el teorema 2, los valores propios λ de A son los valores propios de Ak+1 . Por otra parte el test de
P jk+1
parada deberá verificar que ai,j < ε. La sumatoria en valor absoluto de los elementos fuera de la diagonal
es menor que una cantidad muy pequeña ε.
A1 = P1t AP1
.......................
t
Ak+1 = Pk+1 Pkt Pk−1
t
...t4 P3t P2t P1t AP1 P2 P3 P4 ...Pk−1 Pk Pk+1
El producto de las matrices P transpuesta converge a P t y el producto de las matrices P de ( 6.21 ) converge
a P, que es matriz ortogonal. Luego se tiene que:
Ak+1 = P t AP
Por lo tanto por el teorema 4, las columnas de la matriz P de ( 6.22 ) son los vectores propios de A.
5. Ejemplo de aplicación
Encontrar los valores Y vectores propios de una estructura, cuyas matrices de rigidez y de masas, son las
siguientes:
3
400 −200 0 0,4077 0 0
K = −200 280 −80 M = 0 0,4077 0
0 −80 80 0 0 0,2039
√
M11 √0 0 0,639 0 0
L= 0 M22 √0
L= 0 0,639 0
0 0 M33 0 0 0,452
D = L−1 K(L−1 )T
981,114 −490,557 0
D = −490,557 686,779 −277,467
0 −277,467 392,349
Ciclos de rotación:
{1, 2, 3} = p, q{{1, 2}, {1, 3}, {2, 3}}
D1,1 = 981,114
D1,2 = −490,557
D2,2 = 686,779
2D(1,2)
θ1 = 0,5a tan( )
(D(1,1) − D(2,2) )
s = sin(θ1 ) = −0,597
θ1 = −0, 64 ⇒
c = cos(θ1 ) = 0,802
c −s 0 0,802 0,597 0
R1 = s c 0 = −0,597 0,802 0
0 0 1 0 0 1
Luego el triple producto escalar resulta ser: D1 = R1T DR1
1346,103 0 165,628
D1 = R1T DR1 = −0 321,79 −222,61
165,628 −222,61 392,349
Segunda Rotación En forma similar para el termino d1,3 (p = 1, q = 3); así tenemos:
D1,1 = 1346,103
D1,3 = 165,628
D3,3 = 392,349
2D(1,3)
θ2 = 0,5a tan( )
(D(1,1) − D(3,3) )
4
s = sin(θ2 ) = −0,166
θ2 = 0, 167 ⇒
c = cos(θ2 ) = 0,986
c 0 −s 0,986 0 −0,166
R2 = 0 1 0 = 0 1 0
s 0 c 0,166 0 0,986
Luego el triple producto escalar resulta ser: D2 = R2T D1 R2
1374,047 −37,034 0
D2 = R2T D1 R2 = −37,034 321,79 −219,507
−0 −219,507 364,405
Tercera Rotación En forma similar para el termino d2,3 (p = 2, q = 3); así tenemos:
D2,3 = −219,507
D3,3 = 364,405
D2,2 = 321,79
2D(2,3)
θ3 = 0,5a tan( )
(D(3,3) − D(2,2) )
s = sin(θ3 ) = −0,672
θ3 = −0, 737 ⇒
c = cos(θ2 ) = 0,740
1 0 0 1 0 0
R3 = 0 c s = 0 0,740 −0,672
0 −s c 0 0,672 0,740
Luego el triple producto escalar resulta ser: D3 = R3T D2 R3
1374,047 −27,423 24,89
D3 = R3T D2 R3 = −27,423 122,528 −0
24,89 0 563,637
2D(1,2)
θ4 = 0,5a tan( )
(D(1,1) − D(2,2) )
s = sin(θ4 ) = −0,022
θ4 = −0,022 ⇒
c = cos(θ4 ) = 1,00
c −s 0 1 0,022 0
R4 = s c 0 = −0,022 1 0
0 0 1 0 0 1
Luego el triple producto escalar resulta ser: D4 = R4T D3 R4
1374,648 −0 24,884
D4 = R4T D3 R4 = −0 121,958 0,545
24,884 0,545 563,637
Quinta Rotación En forma similar para el termino d1,3 (p = 1, q = 3); así tenemos:
D1,1 = 1374,648
5
D1,3 = 24,884
D3,3 = 563,637
2D(1,3)
θ5 = 0,5a tan( )
(D(1,1) − D(3,3) )
s = sin(θ5 ) = 0,031
θ5 = 0,031 ⇒
c = cos(θ5 ) = 1
c 0 −s 1 0 −0,031
R5 = 0 1 0 = 0 1 0
s 0 c 0,031 0 1
Luego el triple producto escalar resulta ser: D5 = R5T D4 R5
1375,41 0,017 0
D5 = R5T D4 R5 = 0,017 121,958 0,545
−0 0,545 562,874
Sexta Rotación En forma similar para el termino d2,3 (p = 2, q = 3); así tenemos:
D2,3 = 0,545
D3,3 = 562,874
D2,2 = 121,958
2D(2,3)
θ6 = 0,5a tan( )
(D(3,3) − D(2,2) )
s = sin(θ6 ) = 0,001236
θ6 = 0,001236 ⇒
c = cos(θ6 ) = 1
1 0 0 1 0 0
R6 = 0 c s = 0 1 0,001236
0 −s c 0 −0,001236 1
Luego el triple producto escalar resulta ser: D6 = R6T D5 R6
1375,41 0,017 0
D6 = R6T D5 R6 = 0,017 121,957 −0
0 0 562,875
Se puede observar que se obtenido la matriz diagonalizada, con la precisión esperada, por lo tanto se culmina
el proceso de rotaciones
FRECUENCIAS PERIODOS
2π
q
W1 = D6(1,1) = 37,087 T1 = = 0,169....(3ro )
W1
q 2π
W2 = D6(2,2) = 11,043 T2 = = 0,569....(1ro )
W2
q 2π
W3 = D6(3,3) = 23,725 T3 = = 0,265....(2do )
W3
6
5.3. Modos de vibración
Estos modos de vibración son resultados normalizados con respecto a la matriz masa.
U = R1 R2 R3 R4 R5 R6
0,77 0,37 −0,52
U = −0,62 0,65 −0,45
0, 17 0,67 0,73
Modos de vibración:
D = (L−1 )T U
1,202 0,58 −0,82
D = −0,966 1,015 −0, 699
0,386 1,473 1,608
Modos de vibración normalizados a 1:
1,202 1,000
d1
d1 = di,1 = −0,966 φ1 = = −0,804 ...(3ro )
D1,1
0,386 0,321
0,58 1,000
d2
d2 = di,2 = 1,015 φ2 = = 1,751 ...(1ro )
D1,2
1,473 2,541
−0,82 1,000
d3
d3 = di,3 = −0,699 φ3 = = 0,853 ...(2ro )
D1,3
1,608 −1,962
Listing 1: Código fuente para para calcular los modos de vibración mediante Metodos de Iteración Matricial-
Metodo de Jacobi
1
2 % UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGA
3 % INGENIERIA CIVIL
4 % BY: DANIEL JDD OCHOA
5 % ANALISIS SISMICO
6
7 //=================================CODIGO FUENTE ===========================
8 //=================================
9 CC1;
10 k;ii;aai;
11 AA;nn,n;
12 Niter:=2;
13 //=========================================
14 KK:=[[400,-200,0],[-200,280,-80],[0,-80,80]];
15 MM:=[[0.4077,0,0],[0,0.4077,0],[0,0,0.2039]];
16 //KK:=[[1243.5,-492.6],[-492.6,317.9]];
17 //MM:=[[1.0102,0],[0,1.0102]];
18
19 lis1:={};lis3:={};
20 LL;DD;Evp;Evp1;Res1;EiV;
21 GG;UU;
22 Tet;
23 R1;R2;RN;
24 D1;D2;MMod;ModNorm;MMod1;
25 MatW;lis2:={};
7
26 Suma;Signo;Designar;Unos;SumaMat;EIGENMAT;
27 UU1;ZZ1;SS1;Tp;Tl;Mord:={3,1,2};TT;CC;RR:=8;Sad;bb;
28 Pl;Pl1;
29
30
31
32 EXPORT HPModal()
33 BEGIN
34 PRINT();
35 KK:=EDITMAT(KK,{"Matriz de rigidez",{},{}});
36 MM:=EDITMAT(MM,{"Matriz masa",{},{}});
37 INPUT({{Niter,[0],{50,20,4}}},"METODO JACOBI",{" N de Iter :"},{"Ingrese numero de ←-
iteraciones"});
38
39 LL:=MAKEMAT(0,rowDim(MM),rowDim(MM));
40 FOR k FROM 1 TO rowDim(MM) DO
41 LL(k,k):=SQRT(MM(k,k));
42 END;
43 DD:=inv(LL)*KK*TRN((inv(LL)));
44 DD:=EDITMAT(DD,{"Matriz Dinamica",{},{}});
45
46 Evp:=EIGENVAL(DD);
47 Evp1:=Evp;
48 FOR k FROM 1 TO rowDim(MM) DO
49 lis1(k):=Evp1(k);
50 END;
51 lis1:=SORT(lis1);
52 Res1:=MAKEMAT(0,rowDim(MM),1);
53 FOR k FROM 1 TO rowDim(MM) DO
54 Res1(k,1):=lis1(k);
55 END;
56 //Res1:=EDITMAT(Res1,{"VALORES PROPIOS",{},{}});
57
58 n:=rowDim(MM);
59 CC1:=MAKEMAT(0,1,n);
60 FOR k FROM 1 TO n DO
61 CC1(1,k):=k;
62 END;
63 aai:=MAKEMAT(0,COMB(n,2),2);
64 nn:=0;
65
66 FOR ii FROM 1 TO n-1 DO
67 FOR k FROM 2 TO n DO
68 IF i i k AND ii<k THEN
69 nn:=nn+1;
70 aai(nn,1):=ii;aai(nn,2):=CC1(1,k);
71 END;
72 END;
73 END;
74 //aai:=EDITMAT(aai,{"ANALISIS COMBINATORIO",{},{}});
75 aai:=aai;
76 R1:=IDENMAT(rowDim(MM));
77 UU:=IDENMAT(rowDim(MM));
78 FOR ii FROM 1 TO Niter DO
79 MSGBOX(ii+" ITERACION");
80 FOR k FROM 1 TO rowDim(aai) DO
81 GG:=DD;
82 R1:=R1;
83 Tet:=0.5*ATAN((2*DD(aai(k,1),aai(k,2)))/(DD(aai(k,1),aai(k,1))-DD(aai(k,2),aai(k←-
,2))));
84 R1(aai(k,1),aai(k,1)):=COS(Tet);
8
85 R1(aai(k,1),aai(k,2)):=-SIN(Tet);
86 R1(aai(k,2),aai(k,1)):=SIN(Tet);
87 R1(aai(k,2),aai(k,2)):=COS(Tet);
88 R1:=EDITMAT(R1,{"Matriz De Rotacion R"+k,{},{}});
89 D1:=TRN(R1)*DD*R1;
90 D1:=EDITMAT(D1,{"Matriz D"+k,{},{}});
91 RN:=R1;
92 DD:=D1;
93 UU:=UU*R1;
94 R1:=IDENMAT(rowDim(MM));
95 END;
96 END;
97 DD:=DD;
98 DD:=EDITMAT(DD,{"Matriz D final",{},{}});
99 Res1:=EDITMAT(Res1,{"VALORES PROPIOS",{},{}});
100 //UU:=EDITMAT(UU,{"Matriz UU",{},{}});
101 FOR k FROM 1 TO rowDim(MM) DO
102 lis2(k):=SQRT(DD(k,k));
103 END;
104 lis3:=SORT(lis2);
105 MatW:=MAKEMAT(0,rowDim(MM),4);
106 FOR k FROM 1 TO rowDim(MM) DO
107 MatW(k,1):=lis2(k);
108 MatW(k,2):=lis3(k);
109 MatW(k,3):=ROUND(2*PI/lis3(k),4);
110 MatW(k,4):=ROUND(1/MatW(k,3),4);
111 END;
112 MatW:=EDITMAT(MatW,{"Matriz DE FRECUENCIA",{},{"Wn","Wn ord","T","f"}});
113
114 TT:=MAKEMAT(0,rowDim(MM),1);
115 FOR k FROM 1 TO rowDim(MM) DO
116 TT(k,1):=MatW(k,3);
117 END;
118 TT:=EDITMAT(TT,{"PERIODOS DE VIBRACION",{},{"TT"}});
119 UU:=EDITMAT(UU,{"Matriz U",{},{}});
120 UU:=UU;
121 MMod:=TRN(inv(LL))*UU;
122 MMod:=EDITMAT(MMod,{"Modos de vibracion",{},{}});
123 Designar:=MAKEMAT(0,rowDim(MM),1);
124 Unos:=MAKEMAT(1,rowDim(MM),1);
125 FOR J FROM 1 TO rowDim(MM) DO
126 Suma:=0;
127 FOR L FROM 1 TO rowDim(MM)-1 DO
128 Signo:=SIGN((MMod(L,J))/(MMod(L+1,J)));
129 IF Signo==-1 THEN
130 Suma:=Suma+1;
131 END;
132 IF Signo==1 THEN
133 Suma:=Suma+0;
134 END;
135 END;
136 Designar(J,1):=Suma;
137 END;
138 SumaMat:=Designar+Unos;
139 EIGENMAT:=MAKEMAT(0,rowDim(MM),colDim(MM));
140 FOR J FROM 1 TO rowDim(MM) DO
141 FOR L FROM 1 TO rowDim(MM) DO
142 EIGENMAT(L,SumaMat(J,1)):=MMod(L,J);
143 END;
144 END;
145 EIGENMAT:=EIGENMAT;
9
146 ModNorm:=MAKEMAT(0,rowDim(MM),rowDim(MM));
147 FOR k FROM 1 TO rowDim(MM) DO
148 FOR ii FROM 1 TO rowDim(MM) DO
149 ModNorm(ii,k):=(EIGENMAT(ii,k)/EIGENMAT(1,k));
150 END;
151 END;
152 EIGENMAT:=EDITMAT(EIGENMAT,{"MODOS DE VIBRACION norm a la masa",{},{"Mod1","Mod2","Mod3←-
","Mod4","Mod5","Mod6"}});
153 ModNorm:=EDITMAT(ModNorm,{"Modos de vibraci n normal a 1",{},{"Mod1","Mod2","Mod3","←-
Mod4"}});
154
155
156
157 MSGBOX("BY:JDD 8A");
158 END;
Referencias
[1] R. A. Falconi. Dinámica de Estructuras con Matlab. Primera edition, 2006.
[2] R. A. Falconi. Análisis Sísmico de Edificios. Primera edition, 2008.
[3] L. E. Garcia Reyes. Dinámica Estructural Aplicada al Diseño Sísmico. Primera edition, 1998.
[4] R. S. Tapia. INGENIERÍA ANTISÍSMICA, Principios Básicos y Aplicaciones. Primera edition, 2013.
[5] https://es.scribd.com/document/74039507/Metodo-Jacobi Metodo-Jacobi.
10