Ciao a tutti, sono nuova nel forum e prima di porre questo quesito ho cercato tra gli argomenti già discussi, ma purtroppo non sono riuscita a trovare una risposta.
Sto cercando di costruire una matrice con MATLAB, in particolare la matrice EW (matrice di iterazione del metodo SOR).
Il punto è che voglio che questa matrice cambi ogni volta che scelgo un valore diverso di w.
Mi spiego:
La matrice di iterazione è: EW=((F-wM)^(-1))*((1-w)F+wN) dove:
- F matrice diagonale di A
- M matrice con la parte triangolare inferiore di A cambiata di segno (esclusa la diagonale)
- N matrice con la parte triangolare superiore di A cambiata di segno (esclusa la diagonale)
in modo tale che A=F-M-N
- w coefficiente che varia e che modifica la matrice di volta in volta
Voglio che il mio coefficiente w vari tra 0 e 2 con passo 0.08.
Premetto che non so riportare codici scritti bene qui quindi mi limiterò a copiare e incollare da MATLAB
Per fare questo ho creato un ciclo for di questo tipo:
indice=0;
for w=0:0.08:2
indice=indice+1;
EW=(I-w*(inv(F+w.*M))*A);
rhoEW(indice)=max(eig(EW));
end
Voglio creare anche un vettore rhoEW che mi dia il raggio spettrale della matrice EW ad ogni passo, cioè ogni volta che varia w, e questo lo faccio usando la variabile indice che mi colloca componente dopo componente nel mio vettore rhoEW, completo alla fine del ciclo. Ma posso fare questo perché è uno scalare!
!!! Non ho idea di come fare a creare una "successione", una volta uscita dal ciclo, di matrici EW che variano ogni volta al variare di w. Dal momento che non posso usare lo stesso sistema che userei per uno scalare come rhoEW (preallocando il vettore o meno) non ho idea di come poter registrare la serie di matrici ottenute.
Qualcuno saprebbe aiutarmi? Grazie in anticipo a tutti