4 @c OriginalRevision=1.5
5 @c TranslatedBy: (c) 2007-07 Vadim V. Zhytnikov <vvzhyt@gmail.com>
8 * Функции и переменные пакета diag::
11 @node Функции и переменные пакета diag, , Пакет diag, Пакет diag
12 @section Функции и переменные пакета diag
15 @deffn {Функция} diag (@var{lm})
16 Строит квадратную матрицу с матрицами из @var{lm} на диагонали. Здесь, @var{lm} есть список матриц или скаляров.
22 (%i2) a1:matrix([1,2,3],[0,4,5],[0,0,6])$
24 (%i3) a2:matrix([1,1],[1,0])$
26 (%i4) diag([a1,x,a2]);
40 Для использования функцию следует загрузить командой @code{load("diag")}.
42 @opencatbox{Категории:}
44 @category{Пакеты библиотеки share}
51 @deffn {Функция} JF (@var{lambda},@var{n})
52 Возвращает жорданову клетку порядка @var{n} с собственными значениями @var{lambda}.
74 Для использования функцию следует загрузить командой @code{load("diag")}.
76 @opencatbox{Категории:}
83 @deffn {Функция} jordan (@var{mat})
84 Возвращает жорданову форму матрицы @var{mat}, но представленную в форме списка Maxima.
85 Для получения матрицы к результату функции @code{jordan} следует применить функцию @code{dispJordan}.
91 (%i3) a:matrix([2,0,0,0,0,0,0,0],
97 [-34,7,1,-2,-1,1,2,0],
98 [145,-17,-16,3,9,-2,0,3])$
101 (%o4) [[2, 3, 3, 1], [3, 1]]
120 Для использования функцию следует загрузить командой @code{load("diag")}.
121 См. @code{dispJordan} и @code{minimalPoly}.
123 @opencatbox{Категории:}
124 @category{Пакет diag}
130 @deffn {Функция} dispJordan (@var{l})
131 Возвращает жорданову матрицу, соответствующую представлению в виде Maxima списка @var{l},
132 возвращаемого функцией @code{jordan}.
138 (%i2) b1:matrix([0,0,1,1,1],
158 Для использования функцию следует загрузить командой @code{load("diag")}.
159 См. @code{jordan} и @code{minimalPoly}.
161 @opencatbox{Категории:}
162 @category{Пакет diag}
168 @deffn {Функция} minimalPoly (@var{l})
169 Возвращает минимальный многочлен, соответствующий представлению в виде Maxima списка @var{l},
170 возвращаемого функцией @code{jordan}.
176 (%i2) a:matrix([2,1,2,0],
182 (%o3) [[- 1, 1], [1, 3]]
183 (%i4) minimalPoly(%);
185 (%o4) (x - 1) (x + 1)
188 Для использования функцию следует загрузить командой @code{load("diag")}.
189 См. @code{jordan} и @code{dispJordan}.
191 @opencatbox{Категории:}
192 @category{Пакет diag}
197 @deffn {Функция} ModeMatrix (@var{A},@var{l})
198 Возвращает матрицу @var{M}, такую что @math{(M^^-1).A.M=J}, где @var{J} есть жорданова форма @var{A}.
199 Список @var{l} является представлением жордановой формы матрицы,
200 возвращаемым функцией @code{jordan}.
206 (%i2) a:matrix([2,1,2,0],
212 (%o3) [[- 1, 1], [1, 3]]
213 (%i4) M: ModeMatrix(a,%);
227 (%i5) is( (M^^-1).a.M = dispJordan(%o3) );
230 Отметим, что @code{dispJordan(%o3)} есть жорданова форма матрицы @code{a}.
232 Для использования функцию следует загрузить командой @code{load("diag")}.
233 См. @code{jordan} и @code{dispJordan}.
235 @opencatbox{Категории:}
236 @category{Пакет diag}
242 @deffn {Функция} mat_function (@var{f},@var{mat})
243 Возвращает @math{f(mat)}, где @var{f} есть аналитическая функция а @var{mat} -- матрица.
244 Вычисление основано на интегральной формуле Коши, которая утверждает, что, если @code{f(x)}
245 является аналитической функцией и
248 mat = diag([JF(m1,n1),...,JF(mk,nk)]),
254 f(mat) = ModeMatrix*diag([f(JF(m1,n1)), ..., f(JF(mk,nk))])
258 Отметим, что существует 6 или 8 методов выполнения данного вычисления.
264 (%i2) b2:matrix([0,1,0], [0,0,1], [-1,-3,-3])$
266 (%i3) mat_function(exp,t*b2);
269 (%o3) matrix([-------- + t %e + %e ,
273 t (- ----- - ----- + %e ) + t (2 %e - -----)
278 + 2 %e , t (%e - -----) + t (----- - -----)
282 + %e ], [- --------, - t (- ----- - ----- + %e ),
287 - t (----- - -----)], [-------- - t %e ,
291 t (- ----- - ----- + %e ) - t (2 %e - -----),
296 t (----- - -----) - t (%e - -----)])
301 [ -------------------- ]
305 (%o4) Col 1 = [ t %e ]
327 Col 3 = [ (t - 2 t) %e ]
328 [ - ---------------- ]
333 [ -------------------- ]
341 (%i5) b1:matrix([0,0,1,1,1],
347 (%i6) mat_function(exp,t*b1);
360 (%i7) minimalPoly(jordan(b1));
363 (%i8) ident(5)+t*b1+1/2*(t^2)*b1^^2;
376 (%i9) mat_function(exp,%i*t*b1);
379 [ 1 0 %i t %i t %i t - -- ]
382 (%o9) [ 0 1 0 %i t %i t ]
389 (%i10) mat_function(cos,t*b1)+%i*mat_function(sin,t*b1);
392 [ 1 0 %i t %i t %i t - -- ]
395 (%o10) [ 0 1 0 %i t %i t ]
406 (%i11) a1:matrix([2,1,0,0,0,0],
413 (%i12) fpow(x):=block([k],declare(k,integer),x^k)$
415 (%i13) mat_function(fpow,a1);
416 [ k k - 1 ] [ k - 1 ]
419 [ k - 1 ] [ k k - 1 ]
420 [ - k 3 ] [ 3 + k 3 ]
424 (%o13) Col 1 = [ ] Col 2 = [ ]
437 [ k k - 1 ] [ k - 1 ]
440 Col 3 = [ k - 1 ] Col 4 = [ k k - 1 ]
441 [ - k 3 ] [ 3 + k 3 ]
454 Col 5 = [ 0 ] Col 6 = [ ]
463 Для использования функцию следует загрузить командой @code{load("diag")}.
465 @opencatbox{Категории:}
466 @category{Пакет diag}