Calcolo delle matrici unimodulari in una diagonalizzazione
L'algoritmo DiagMN calcola la matrice diagonale Diag equivalente alla matrice data A.
L'algoritmo calcola inoltre le matrici unimodulari L e R tali che Diag = LAR
INPUT: la matrice A;
OUTPUT: la lista {L,Diag,R}.
DiagMN[A_]:=Block[{},
MDN=MatMN[A];
m=Length[A];n=Length[A[[1]]];
Diag=Take[MDN,{1,m},{1,n}];
L=Take[MDN,{1,m},{n+1,n+m}];
R=Take[MDN,{m+1,m+n},{1,n}];
{L,Diag,R}];
Esempio
T={{3,-1,0,2,-3},{3,1,1,0,0},{2,0,0,0,5}}
{{3,-1,0,2,-3},{3,1,1,0,0},{2,0,0,0,5}}
DiagMN[T]
{{{1,0,0},{-1,7,1},{-657,4577,654}},{{1,0,0,0,0},{0,1,0,0,0},{0,0,1,0,
0}},{{1,-1,1,-5,0},{-2,12,132,-661,2},{-4,645,-136,676,-2},{4,-1365,
66,-320,1},{4,-915,1,2,0}}}
{{1,0,0,0,0},{0,1,0,0,0},{0,0,1,0,0}}
Torna all'elenco dei capitoli
Non ci sono commenti in questa pagina. [Scrivi commento]