La versione più recente è stata modificata il 2006-02-19 16:36:44 da SoNiC
Aggiunzioni:
Torna all'elenco dei capitoli
Modificato il 2006-02-19 16:36:19 da SoNiC
Aggiunzioni:
Diagonalizzazione forte di una matrice a valori interi
L'algoritmo DiagIntForte determina la matrice in forma diagonale forte equivalente alla matrice ad elementi interi A.
DiagIntForte[Y]
Omissioni:
L'algoritmo DiagIntForte determina la matrice in forma diagonale forte equivalente alla matrice ad elementi interi A.
DiagIntForte[Y]
La versione più vecchia di questa pagina è stata modificata il 2006-02-19 16:35:45 da SoNiC []
Vista della pagina:
L'algoritmo
DiagIntForte determina la matrice in forma diagonale forte equivalente alla matrice ad elementi interi A.
INPUT: la matrice A.
OUTPUT: la matrice fortemente diagonale equivalente a A.
DiagIntForte[A_]:=Block[{Mat=A,k,L},
m=Length[A];n=Length[A[[1]]];mi=Min[m,n];
While[!DiagIntForteTest[Mat],
Mat=DiagInt[Mat];
L=Table[Mat[[i,i]],{i,1,mi}];
If[!MultIntTest[L],
k = F[L];
Mat[[k-1]]=Mat[[k-1]]+Mat[[k]],
k=G[L];
If[k!=0 && k<n,
Mat[[All,k+1]]=Mat[[All,k+1]]-Mat[[All,k]],
If[k!=0 && k<m,
Mat[[k+1]]=Mat[[k+1]]-Mat[[k]] ]]]];
Mat]
Esempio
Y={{3,0,0,5,0},{0,6,0,1,0},{0,0,12,0,-1},{0,2,0,13,0}}
{{3,0,0,5,0},{0,6,0,1,0},{0,0,12,0,-1},{0,2,0,13,0}}
DiagIntForte[Y]
{{1,0,0,0,0},{0,1,0,0,0},{0,0,1,0,0},{0,0,0,228,0}}