| Up | Next | Prev | PrevTail | Tail |
This package contains routines for computing the following normal forms of matrices:
When are two given matrices similar? Similar matrices have the same trace, determinant, characteristic polynomial, and eigenvalues, but the matrices
๐ฐ = and ๐ฑ =
|
are the same in all four of the above but are not similar. Otherwise there could exist a nonsingular ๐ฉโM2 (the set of all 2 ร 2 matrices) such that ๐ฐ = ๐ฉ๐ฑ๐ฉโ1 = ๐ฉ0๐ฉโ1 = 0 , which is a contradiction since ๐ฐโ 0 .
Two matrices can look very di๏ฌerent but still be similar. One approach to determining whether two given matrices are similar is to compute the normal form of them. If both matrices reduce to the same normal form they must be similar.
NORMFORM is a package for computing the following normal forms of matrices:
ย -ย smithex ย -ย smithex_int ย -ย frobenius ย -ย ratjordan ย -ย jordansymbolic ย -ย jordan
The package is loaded by load_package normform;
By default all calculations are carried out in Q (the rational numbers). For smithex, frobenius, ratjordan, jordansymbolic, and jordan, this ๏ฌeld can be extended. Details are given in the respective sections.
The frobenius, ratjordan, and jordansymbolic normal forms can also be computed in a modular base. Again, details are given in the respective sections.
The algorithms for each routine are contained in the source code.
NORMFORM has been converted from the normform and Normform packages written by T.M.L. Mulders and A.H.M. Levelt. These have been implemented in Maple [4].
It returns {๐ฎ,๐ซ,๐ซโ1} where ๐ฎ,๐ซ, and ๐ซโ1 are such that ๐ซ๐ฎ๐ซโ1 = ๐.
๐ is a rectangular matrix of univariate polynomials in x.
x is the variable name.
Hence, if we have the case that n = m, as well as rank(๐) = n, then
โ
i=1n๐ฎ(i,i) = .
|

It returns {๐ฎ,๐ซ,๐ซโ1} where ๐ฎ, ๐ซ, and ๐ซโ1 are such that ๐ซ๐ฎ๐ซโ1 = ๐.
Hence, if we have the case that n = m, as well as rank(๐) = n, then
= โ
i=1n๐ฎ(i,i).
|

It returns {โฑ,๐ซ,๐ซโ1} where โฑ, ๐ซ, and ๐ซโ1 are such that ๐ซโฑ๐ซโ1 = ๐.
๐ is a square matrix.
โฑ =
|
where the ๐(pi)โs are companion matrices associated with polynomials p1,p2,โฆ,pk, with the property that pi divides pi+1 for i = 1โฆk โ 1. All unmarked entries are zero.

It returns {โ,๐ซ,๐ซโ1} where โ, ๐ซ, and ๐ซโ1 are such that ๐ซโ๐ซโ1 = ๐.
๐ is a square matrix.
โ =
|
The rijโs have the following shape:
rij =
|
where there are eij times ๐(p) blocks along the diagonal and ๐(p) is the companion matrix associated with the irreducible polynomial p. All unmarked entries are zero.

It returns {๐ฅ,โ,๐ซ,๐ซโ1}, where ๐ฅ , ๐ซ, and ๐ซโ1 are such that ๐ซ๐ฅ๐ซโ1 = ๐. โ = {ll,ฮพ}, where ฮพ is a name and ll is a list of irreducible factors of p(ฮพ).
๐ is a square matrix.
ศทk(ฮป) =
|
There are k โ 1 terms โ+1โ in the superdiagonal; the scalar ฮป appears k times on the main diagonal. All other matrix entries are zero, and ศท1(ฮป) = (ฮป).
๐ฅ = ,n1 + n2 + + nk = n
|
in which the orders ni may not be distinct and the values ฮปi need not be distinct.

It returns {๐ฅ,๐ซ,๐ซโ1}, where ๐ฅ , ๐ซ, and ๐ซโ1 are such that ๐ซ๐ฅ๐ซโ1 = ๐.
๐ is a square matrix.
ศทk(ฮป) =
|
There are k โ 1 terms โ+1โ in the superdiagonal; the scalar ฮป appears k times on the main diagonal. All other matrix entries are zero, and ศท1(ฮป) = (ฮป).
๐ฅ = ,n1 + n2 + + nk = n
|
in which the orders ni may not be distinct and the values ฮปi need not be distinct.

The package is loaded by the command load_package arnum;. The algebraic ๏ฌeld
Q can now be extended. For example, defpoly sqrt2**2-2; will extend it to
include
(de๏ฌned here by sqrt2). The ARNUM package was written by Eberhard
Schrรผfer and is described in section 16.3.
load_package normform;
load_package arnum;
defpoly sqrt2**2-2;
(sqrt2 now changed to
for looks!)

Calculations can be performed in a modular base by setting the switch modular to on. The base can then be set by setmod p; (p a prime). The normal form will then have entries in ๐ตโp๐ต.
By also switching on balanced_mod the output will be shown using a symmetric modular representation.
Information on this modular manipulation can be found in chapter 9.
load_package normform;
on modular;
setmod 23;

| Up | Next | Prev | PrevTail | Front |