INFOPedia : MACAlgMatMN

HomePage :: Categorie :: Indice :: Ultime modifiche :: Ultimi commenti :: Login/Registrazione
La versione più recente è stata modificata il 2006-02-19 16:18:35 da SoNiC

Aggiunzioni:
%%(c)MatMN[A_]:=Block[{i,j,k,l,B,Mat},
m=Length[A];n=Length[A1];Mat=MatEst[A];B=A;
l=Priorità[B];i=l1;j=l2;
If[ Mati,j-1
Mati,j , MatAll,j=MatAll,j-MatAll,j-1 ,
If[ Xor[Mati,j-1>0,Mati,j>0],
If[ Mati,j>0,
MatAll,j-1=MatAll,j-1+MatAll,j ,
MatAll,j=MatAll,j+MatAll,j-1 ],
If[ Mati,j-1< Mati,j,
MatAll,j=MatAll,j-MatAll,j-1 ,
MatAll,j-1=MatAll,j-1-MatAll,j ] ] ] ] ;
If[ Mati-1,j
Mati,j, Mati=Mati-Mati-1 ,
If[ Xor[Mati-1,j>0,Mati,j>0],
If[ Mati,j>0,
Mati-1=Mati-1+Mati,
Mati=Mati+Mati-1],
If[ Mati-1,j<Mati,j ,
Mati=Mati-Mati-1 ,
Mati-1=Mati-1-Mati ] ] ]];

Omissioni:
%%(c)MatMN[A_]:=Block[{i,j,k,l,B,Mat},
m=Length[A];n=Length[A[[1]]];Mat=MatEst[A];B=A;
l=Priorità[B];i=l[[1]];j=l[[2]];
If[ Mat[[i,j-1]]==Mat[[i,j]] ,
Mat[[All,j]]=Mat[[All,j]]-Mat[[All,j-1]] ,
If[ Xor[Mat[[i,j-1]]>0,Mat[[i,j]]>0],
If[ Mat[[i,j]]>0,
Mat[[All,j-1]]=Mat[[All,j-1]]+Mat[[All,j]] ,
Mat[[All,j]]=Mat[[All,j]]+Mat[[All,j-1]] ],
If[ Mat[[i,j-1]]< Mat[[i,j]],
Mat[[All,j]]=Mat[[All,j]]-Mat[[All,j-1]] ,
Mat[[All,j-1]]=Mat[[All,j-1]]-Mat[[All,j]] ] ] ] ] ;
If[ Mat[[i-1,j]]==Mat[[i,j]],
Mat[[i]]=Mat[[i]]-Mat[[i-1]] ,
If[ Xor[Mat[[i-1,j]]>0,Mat[[i,j]]>0],
If[ Mat[[i,j]]>0,
Mat[[i-1]]=Mat[[i-1]]+Mat[[i]],
Mat[[i]]=Mat[[i]]+Mat[[i-1]]],
If[ Mat[[i-1,j]]<Mat[[i,j]] ,
Mat[[i]]=Mat[[i]]-Mat[[i-1]] ,
Mat[[i-1]]=Mat[[i-1]]-Mat[[i]] ] ] ]];




Modificato il 2006-02-19 16:17:40 da SoNiC

Aggiunzioni:
""MatMN""[A_]:=Block[{i,j,k,l,B,Mat},
             B=Take[Mat,{1,m},{1,n}]  ];Mat]


Omissioni:
MatMN[A_]:=Block[{i,j,k,l,B,Mat},
B=Take[Mat,{1,m},{1,n}] ];Mat]




Modificato il 2006-02-19 16:15:57 da SoNiC

Aggiunzioni:
L'algoritmo MatMN calcola la matrice che si ottiene applicando alla matrice MatEst[A] la procedura che serve a diagonalizzare soltanto la matrice A.
MatMN[A_]:=Block[{i,j,k,l,B,Mat},
m=Length[A];n=Length[A[[1]]];Mat=MatEst[A];B=A;
MatMN[T]


Omissioni:
L'algoritmo MatMN calcola la matrice che si ottiene applicando alla matrice MatEst[A] la procedura che serve a diagonalizzare soltanto la matrice A.
MatMN[A_]:=Block[{i,j,k,l,B,Mat},
m=Length[A];n=Length[A[[1]]];Mat=MatEst[A];B=A;
MatMN[T]




La versione più vecchia di questa pagina è stata modificata il 2006-02-19 16:15:11 da SoNiC []
Vista della pagina:

Diagonalizzazione di una matrice a blocchi



L'algoritmo MatMN calcola la matrice che si ottiene applicando alla matrice MatEst[A] la procedura che serve a diagonalizzare soltanto la matrice A.

MatMN[A_]:=Block[{i,j,k,l,B,Mat},
m=Length[A];n=Length[A[[1]]];Mat=MatEst[A];B=A;
While[Priorità[B]=!={},
l=Priorità[B];i=l[[1]];j=l[[2]];
If[i<j,
If[ Mat[[i,j-1]]==Mat[[i,j]] ,
Mat[[All,j]]=Mat[[All,j]]-Mat[[All,j-1]] ,
If[ Xor[Mat[[i,j-1]]>0,Mat[[i,j]]>0],
If[ Mat[[i,j]]>0,
Mat[[All,j-1]]=Mat[[All,j-1]]+Mat[[All,j]] ,
Mat[[All,j]]=Mat[[All,j]]+Mat[[All,j-1]] ],
If[ Mat[[i,j-1]]< Mat[[i,j]],
Mat[[All,j]]=Mat[[All,j]]-Mat[[All,j-1]] ,

Mat[[All,j-1]]=Mat[[All,j-1]]-Mat[[All,j]] ] ] ] ] ;
If[i>j,
If[ Mat[[i-1,j]]==Mat[[i,j]],
Mat[[i]]=Mat[[i]]-Mat[[i-1]] ,
If[ Xor[Mat[[i-1,j]]>0,Mat[[i,j]]>0],
If[ Mat[[i,j]]>0,
Mat[[i-1]]=Mat[[i-1]]+Mat[[i]],
Mat[[i]]=Mat[[i]]+Mat[[i-1]]],
If[ Mat[[i-1,j]]<Mat[[i,j]] ,
Mat[[i]]=Mat[[i]]-Mat[[i-1]] ,
Mat[[i-1]]=Mat[[i-1]]-Mat[[i]] ] ] ]];
B=Take[Mat,{1,m},{1,n}] ];Mat]



Esempio

MatMN[T]

{{1,0,0,0,0,1,0,0},{0,1,0,0,0,-1,7,1},{0,0,1,0,0,-657,4577,654},{1,-1,1,-5,0,
0,0,0},{-2,12,132,-661,2,0,0,0},{-4,645,-136,676,-2,0,0,0},{4,-1365,
66,-320,1,0,0,0},{4,-915,1,2,0,0,0,0}}


Torna all'elenco dei capitoli
Valid XHTML 1.0 Transitional :: Valid CSS :: Powered by Wikka Wakka Wiki 1.1.6.1
La pagina è stata generata in 0.3091 secondi