1 @c English version: 2009-12-10
3 * Funciones y variables para diag::
6 @node Funciones y variables para diag, , diag, diag
7 @section Funciones y variables para diag
10 @deffn {Función} diag (@var{lm})
11 Genera una matriz cuadrada con las matrices de @var{lm}
12 en la diagonal, siendo @var{lm} una lista de matrices o de
19 (%i2) a1:matrix([1,2,3],[0,4,5],[0,0,6])$
21 (%i3) a2:matrix([1,1],[1,0])$
23 (%i4) diag([a1,x,a2]);
37 Antes de hacer uso de esta función ejecútese @code{load("diag")}.
41 @deffn {Función} JF (@var{lambda},@var{n})
42 Devuelve la célula de Jordan de orden @var{n} con
43 valor propio @var{lambda}.
65 Antes de hacer uso de esta función ejecútese @code{load("diag")}.
69 @deffn {Función} jordan (@var{mat})
70 Devuelve la forma de Jordan de la matriz @var{mat}, pero
71 en formato de lista de Maxima. Para obtener la matriz
72 correspondiente, llámese a la función @code{dispJordan}
73 utilizando como argumento la salida de @code{jordan}.
79 (%i3) a:matrix([2,0,0,0,0,0,0,0],
85 [-34,7,1,-2,-1,1,2,0],
86 [145,-17,-16,3,9,-2,0,3])$
89 (%o4) [[2, 3, 3, 1], [3, 1]]
108 Antes de hacer uso de esta función ejecútese @code{load("diag")}.
109 Véanse también @code{dispJordan} y @code{minimalPoly}.
113 @deffn {Función} dispJordan (@var{l})
114 Devuelve la matriz de Jordan asociada a la codificación
115 dada por la lista @var{l}, que habitualmente será la salida
116 de la función @code{jordan}.
122 (%i2) b1:matrix([0,0,1,1,1],
142 Antes de hacer uso de esta función ejecútese @code{load("diag")}.
143 Véanse también @code{jordan} y @code{minimalPoly}.
147 @deffn {Función} minimalPoly (@var{l})
148 Devuelve el polinomio mínimo asociado a la
149 codificación dada por la lista @var{l}, que habitualmente
150 será la salida de la función @code{jordan}.
156 (%i2) a:matrix([2,1,2,0],
162 (%o3) [[- 1, 1], [1, 3]]
163 (%i4) minimalPoly(%);
165 (%o4) (x - 1) (x + 1)
168 Antes de hacer uso de esta función ejecútese @code{load("diag")}.
169 Véanse también @code{jordan} y @code{dispJordan}.
172 @deffn {Función} ModeMatrix (@var{A},@var{l})
173 Devuelve la matriz @var{M} tal que @math{(M^^-1).A.M=J},
174 donde @var{J} es la forma de Jordan de @var{A}. La lista @var{l}
175 es la forma codificada de la forma de Jordan tal como la
176 devuelve la función @code{jordan}.
182 (%i2) a:matrix([2,1,2,0],
188 (%o3) [[- 1, 1], [1, 3]]
189 (%i4) M: ModeMatrix(a,%);
203 (%i5) is( (M^^-1).a.M = dispJordan(%o3) );
206 Nótese que @code{dispJordan(%o3)} es la forma de Jordan de la matriz @code{a}.
208 Antes de hacer uso de esta función ejecútese @code{load("diag")}.
209 Véanse también @code{jordan} y @code{dispJordan}.
213 @deffn {Función} mat_function (@var{f},@var{mat})
214 Devuelve @math{f(mat)}, siendo @var{f} una función analítica
215 y @var{mat} una matriz. Este cálculo se basa en la fórmula integral
216 de Cauchy, que establece que si @code{f(x)} es analítica y
218 mat=diag([JF(m1,n1),...,JF(mk,nk)]),
224 f(mat)=ModeMatrix*diag([f(JF(m1,n1)),...,f(JF(mk,nk))])
228 Nótese que hay otros métodos alternativos para
229 realizar este cálculo.
231 Se presentan algunos ejemplos.
237 (%i2) b2:matrix([0,1,0], [0,0,1], [-1,-3,-3])$
239 (%i3) mat_function(exp,t*b2);
242 (%o3) matrix([-------- + t %e + %e ,
246 t (- ----- - ----- + %e ) + t (2 %e - -----)
251 + 2 %e , t (%e - -----) + t (----- - -----)
255 + %e ], [- --------, - t (- ----- - ----- + %e ),
260 - t (----- - -----)], [-------- - t %e ,
264 t (- ----- - ----- + %e ) - t (2 %e - -----),
269 t (----- - -----) - t (%e - -----)])
274 [ -------------------- ]
278 (%o4) Col 1 = [ t %e ]
300 Col 3 = [ (t - 2 t) %e ]
301 [ - ---------------- ]
306 [ -------------------- ]
314 (%i5) b1:matrix([0,0,1,1,1],
320 (%i6) mat_function(exp,t*b1);
333 (%i7) minimalPoly(jordan(b1));
336 (%i8) ident(5)+t*b1+1/2*(t^2)*b1^^2;
349 (%i9) mat_function(exp,%i*t*b1);
352 [ 1 0 %i t %i t %i t - -- ]
355 (%o9) [ 0 1 0 %i t %i t ]
362 (%i10) mat_function(cos,t*b1)+%i*mat_function(sin,t*b1);
365 [ 1 0 %i t %i t %i t - -- ]
368 (%o10) [ 0 1 0 %i t %i t ]
379 (%i11) a1:matrix([2,1,0,0,0,0],
386 (%i12) fpow(x):=block([k],declare(k,integer),x^k)$
388 (%i13) mat_function(fpow,a1);
389 [ k k - 1 ] [ k - 1 ]
392 [ k - 1 ] [ k k - 1 ]
393 [ - k 3 ] [ 3 + k 3 ]
397 (%o13) Col 1 = [ ] Col 2 = [ ]
410 [ k k - 1 ] [ k - 1 ]
413 Col 3 = [ k - 1 ] Col 4 = [ k k - 1 ]
414 [ - k 3 ] [ 3 + k 3 ]
427 Col 5 = [ 0 ] Col 6 = [ ]
436 Antes de hacer uso de esta función ejecútese @code{load("diag")}.