Metodo del gradiente
Salve ragazzi,
ho un piccolo dubbio riguardo al metodo sopra citato.
Ho stilato un programma che proponga all'utente, non solo la soluzione, ma anche il numero di passi e la norma 2 dell'errore.
Il mio dubbio riguarda a come impostare il contatore.
Il programma che ho stilato somiglia molto a quello proposto da wikipedia ( http://it.wikipedia.org/wiki/Metodo_del ... _coniugato ) , anche se io l'ho scritto in matlab.
Quello che ho fatto è fissare un parametro all'esterno del while pari a zero ( $k=1$), e mi calcolo la prima norma del residuo con riferimento al punto inziale che gli inserisco io ($nor(1)=b-A*x$).
Ora all'interno del while dopo i passi che descrive anche wikipedia, mi calcolo $nor(k+1)$ e poi incremento $k$.
Alla fine del procedimento il numero di passi compiuti è $k-1$, giusto?
E la norma del residuo che devo restituire deve comprendere anche l'ultima norma che mi fa uscire dal ciclo?
Spero di essere stato chiaro!
Grazie anticipatamente!
ho un piccolo dubbio riguardo al metodo sopra citato.
Ho stilato un programma che proponga all'utente, non solo la soluzione, ma anche il numero di passi e la norma 2 dell'errore.
Il mio dubbio riguarda a come impostare il contatore.
Il programma che ho stilato somiglia molto a quello proposto da wikipedia ( http://it.wikipedia.org/wiki/Metodo_del ... _coniugato ) , anche se io l'ho scritto in matlab.
Quello che ho fatto è fissare un parametro all'esterno del while pari a zero ( $k=1$), e mi calcolo la prima norma del residuo con riferimento al punto inziale che gli inserisco io ($nor(1)=b-A*x$).
Ora all'interno del while dopo i passi che descrive anche wikipedia, mi calcolo $nor(k+1)$ e poi incremento $k$.
Alla fine del procedimento il numero di passi compiuti è $k-1$, giusto?
E la norma del residuo che devo restituire deve comprendere anche l'ultima norma che mi fa uscire dal ciclo?
Spero di essere stato chiaro!
Grazie anticipatamente!


Risposte
Non sei stato chiaro per niente XD
cos'è \( n \text{or} (1)\)? un "or" logico? E a che servirebbe?
Dovresti avere una cosa come
cos'è \( n \text{or} (1)\)? un "or" logico? E a che servirebbe?
Dovresti avere una cosa come
while(condizione) istruzioni
Ahaha xD Chiedo venia, ero completamente preso dal panico.
No no, per me nor è la norma che sto calcolando.
Il dubbio prescinde dall'algoritmo particolare. Quello che volevo sapere è come contare gli effettivi passi computi. Considero un contatore che parte da zero o da uno? Ma ovviamente è una banalità!
Poiché una delle condizioni del while richiede che la norma abbia una certa proprietà, all'utente dovrei passare anche l'ultima norma?
Mi spiego meglio. Nel while ho una condizione del tipo "la norma di x maggiore di tol". Supponiamo che il procedimento si arresti in 5 passi. Io mi ritrovo con ben 6 norme in quanto ho calcolato anche quella che mi fa uscire dal ciclo. Sarebbe bene passare anche quest'ultima o solo le prime 5?
Spero di essere stato più chiaro ora! D:
No no, per me nor è la norma che sto calcolando.
Il dubbio prescinde dall'algoritmo particolare. Quello che volevo sapere è come contare gli effettivi passi computi. Considero un contatore che parte da zero o da uno? Ma ovviamente è una banalità!
Poiché una delle condizioni del while richiede che la norma abbia una certa proprietà, all'utente dovrei passare anche l'ultima norma?
Mi spiego meglio. Nel while ho una condizione del tipo "la norma di x maggiore di tol". Supponiamo che il procedimento si arresti in 5 passi. Io mi ritrovo con ben 6 norme in quanto ho calcolato anche quella che mi fa uscire dal ciclo. Sarebbe bene passare anche quest'ultima o solo le prime 5?
Spero di essere stato più chiaro ora! D:
Ma sono tutte inutili tranne l'ultima: ha importanza quali passi intermedi compi per arrivare alla soluzione? Solamente se stai misurando l'ordine di convergenza del metodo, altrimenti non te ne frega niente.
La prof ci ha chiesto di restituirlo proprio in modo da vedere la velocità di convergenza.
Ok, quindi passo anche l'ultimo!
Grazie mille!
Ok, quindi passo anche l'ultimo!

Grazie mille!