Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Salve, io ho un problema a capire dei punti di questo programma, è molto importante.. vi posto la traccia:
Scrivere un programma C++ che svolga le seguenti operazioni:
1. Richiede in input una matrice A^(0) = (aij ) € R^nxn, 0 < n <= 10; ed un numero reale
positivo tol.
2. Calcola il vettore w^(0) = (w^(0)j ) €Rn, dove w^(0)j =sommatora con i da 1 a n di |aij|. Calcola e stampa wmax,
dove wmax = max j=1,...,n w^(0)j.
3. Se wmax < tol stampa un opportuno messaggio, altrimenti calcola la matrice A= A^(0)/(10wmax) e, a partire da B^(0) = A, esegue le seguenti operazioni in sequenza (per k >= 1)
- B^(k) = B^(k-1) A
- m^(k) = max j=1,...,n della sommatoria con i da 1 a n del |b^(k)ji|
- w^(k+1)=B w^(k)+w^(k-1)
4. Stampa m(k) ad ogni iterazione.
5. Quando m^(k)<=tol oppure k=100 arresta il calcolo e stampa il numero k delle iterazioni.
Io ho provato a scrivere il programma solo che dalle operazioni in sequenza del punto tre mi sono bloccata, non so più andare avanti, ho solo calcolato mk, e per il punto 4 e 5 non sono molto sicura.. Spero che qualcuno con tanta pazienza possa darmi una mano o qualche suggerimento .. grazie mille a tutti.. QUESTO E' IL CODICE CHE HO SCRITTO:
Grazie per avermi fatto notare gli errori.. e return 0 ho sbagliato, ci andava solo return..
per quanto riguarda il punto 3 sono prodotti di matrici e vettori con iterate attuali, precedebti e successive, che io non so applicare nel c++..
Prova a spiegare cosa non sai fare.
Comunque non credo che nella funzione "calcola_mk", alla fine ci vada solo "return", visto che l' hia dichiarata double e viene lanciata
da "mk=calcola_mk(B,n);".
Hai ragione, forse devo mettere return mk e return wmax!?!
Cmq io non so applicare l'iterazione al vettore e alla matrice.. so matematicamente cos'è, ma non so costruire la funzine.. è solo tre mesi che studio la programmazione in c e non avevo mai fatto nulla del genere.. ti ringrazio tanto..
Return ha lo scopo di terminare la funzione e, restituisce al chiamante il valore dell' espressione che segue.
Nel tuo caso, le variabili mk e wmax, sono visibili solo nel main, quindi presumo che dovrai mettere rispettivamente "return norma;" e "return max;"
Se tu hai capito come risolvere matematicamente il problema, sei a buon punto!
Io non l' ho capito, quindi non posso aiutarti più di tanto.
Ti posso solo suggerire di "frammentare" le funzioni.
Per ogni problema che non sai risolvere, c' è sempre un problema più facile che sai fare!
Ultima modifica effettuata da Poggi Marco il 31/01/2010 alle 23:32