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]]);

[Maple Math]

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);

[Maple Math]

Charakteristický polynom jsme mohli též zjistit pomocí determinantu:

> charpolynom := (-1)^3*det(Lambda);

> expand(det(diagonální));

[Maple Math]

[Maple Math]

Pomocí funkce jordan se u matic nachází jejich Jordanùv kanonický tvar. Z dvou možný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);

[Maple Math]

[Maple Math]

Do parametru T se nám napíše transformaèní matice. Tedy taková matice, aby platilo: [Maple Math] .

V našem pøípadì vypadá takhle:

> print(T);

[Maple Math]

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);

[Maple Math]

[Maple Math]

[Maple Math]

Takhle se poèítá stopa matice A:

> tr(A) = trace(A);

> tr(JA) = trace(JA);

[Maple Math]

[Maple Math]

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);

[Maple Math]

[Maple Math]

[Maple Math]

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);

[Maple Math]

[Maple Math]

K vlastním èíslùm se hodí vypoèítat i vlastní vektory:

> eigenvects(A);

[Maple Math]

Výsledek je ve tvaru: vlastní èíslo, jeho násobnost, {pøíslušné 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]]));

[Maple Math]

Vektory mùžeme poèítat i pomocí numerické funkce Eigenvals, když pøidáme navíc jeden parametr.

> Eigenvals(A,vektory);

> print(vektory);

[Maple Math]

[Maple Math]

Jak asi vypadá charakteristická matice (tj. matice X = [Maple Math] } 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));

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]