Polynomiální matice a Jordanùv kanonický tvar
Nejdøíve se podíváme na polynomiální matice a jejich kanonický tvar.
> Lambda := matrix([[lambda^2,lambda^2-lambda,3*lambda^2],[lambda^2-lambda,3*lambda^2-lambda,lambda^3+4*lambda^2-3*lambda],[lambda^2+lambda,lambda^2+lambda,3*lambda^2+3*lambda]]);
Polynomiální matice se v Maple upravují pomocí funkce Smith, která ekvivalentními úpravami pøevádí matici na diagonální tvar:
> diagonální := smith(Lambda,lambda);
Charakteristický polynom jsme mohli té zjistit pomocí determinantu:
> charpolynom := (-1)^3*det(Lambda);
> expand(det(diagonální));
Pomocí funkce jordan se u matic nachází jejich Jordanùv kanonický tvar. Z dvou moných definic tohoto tvaru se pouívá ta, kde jsou pøípadné jednièky v Jordanových buòkách nad diagonálou.
> A := matrix([[3,-1,0,0],[1,1,0,0],[3,0,5,-3],[4,-1,3,-1]]);
> JA := jordan(A,T);
Do parametru T se nám napíe transformaèní matice. Tedy taková matice, aby platilo:
.
V naem pøípadì vypadá takhle:
> print(T);
Pokud mají matice stejný Jordanùv kanonický tvar jsou podobné. To testuje Maplovská funkce issimilar:
> issimilar(A, JA);
> issimilar(A, transpose(A));
> issimilar(A, A&*A);
Takhle se poèítá stopa matice A:
> tr(A) = trace(A);
> tr(JA) = trace(JA);
Mùeme najít i charakteristický a minimální polynom èi ovìøit jejich dìlitelnost:
> charakteristicky := charpoly(A,x);
> minimalni := minpoly(A,x);
> jejich_delitelnost = divide(charakteristicky,minimalni);
Z polynomù u máme jednoznaènì urèené vlastní èísla, zkontrolujeme zda Maplovská funkce eigenvals na jejich hledání opravdu funguje:
> vlastni_cisla_A := eigenvals(A);
> koreny_char_polynomu := solve(charakteristicky=0);
K vlastním èíslùm se hodí vypoèítat i vlastní vektory:
> eigenvects(A);
Výsledek je ve tvaru: vlastní èíslo, jeho násobnost, {pøísluné vlastní vektory}, dalí vlastní èíslo, jeho násobnost atd.
Nyní ale nastupuje nutnost dva zbylé vlastní vektory dopoèítat tak aby byly kolmé na ty stávající.
> nullspace(matrix([[0, 0, 1, 1],[1, 1, -1, 0]]));
Vektory mùeme poèítat i pomocí numerické funkce Eigenvals, kdy pøidáme navíc jeden parametr.
> Eigenvals(A,vektory);
> print(vektory);
Jak asi vypadá charakteristická matice (tj. matice X =
} a jaký má vztah k charakteristickému a minimálnímu polynomu (u matic s lichým stupnìm pozor na znaménka)?
> lambdaA := charmat(A,lambda);
> upravena := smith(lambdaA,lambda);
> (-1)^(4)*det(lambdaA);
> expand(det(upravena));