INFOPedia : MACAlgDiagForte

HomePage :: Categorie :: Indice :: Ultime modifiche :: Ultimi commenti :: Login/Registrazione

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.

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}}


Torna all'elenco dei capitoli

Non ci sono commenti in questa pagina. [Scrivi commento]

Valid XHTML 1.0 Transitional :: Valid CSS :: Powered by Wikka Wakka Wiki 1.1.6.1
La pagina è stata generata in 0.0572 secondi