Metodo delle potenze: MATLAB
Come da titolo devo realizzare il metodo delle potenze in MATLAB e poichè non l'ho mai utilizzato volevo sapere alcune cose.
Innanzitutto da quello che ho capito bisogna utilizzare una funzione che calcola l'autovalore di modulo massimo. Questa funzione avrà poi estensione .m ma come faccio a richiamarla all'interno di MATLAB? Non dovrei importarla in qualche modo?
Innanzitutto da quello che ho capito bisogna utilizzare una funzione che calcola l'autovalore di modulo massimo. Questa funzione avrà poi estensione .m ma come faccio a richiamarla all'interno di MATLAB? Non dovrei importarla in qualche modo?
Risposte
il metodo delle potenze è appunto uno dei modi per calcolare l'autovalore di modulo massimo: devi salvare il file .m nella cartella in cui stai lavorando e poi puoi trattarla come tutte le funzioni
Innanzitutto grazie per la risposta, avrei però un'altra cosa da chiedervi. Forse vado un tantino OT però preferisco parlarne qui per evitare di aprire un altro thread.
Mi sto occupando dell'algoritmo del PageRank e devo implementarlo in MatLab. Vorrei utilizzare la funzione surfer.m ( http://www.mediafire.com/?7j0111ewv8bx9lj ). Tale funzione restituisce un grafico che non so interpretare.

Da quello che ho potuto capire questa funzione fornisce l'input per l'implementazione del metodo delle potenze (metodo su cui si basa l'algoritmo del PageRank).
Se non ho capito male l'algoritmo del PageRank richiede un certo numero di pagine web individuate effettuando una ricerca in risposta ad una query. Successivamente viene applicato l'algoritmo.
Quindi la funzione surfer.m permette di ottenere queste pagine da cui parte l'algoritmo del PageRank? Se si, qual è il significato del grafico che mi restituisce la funzione?
Mi sto occupando dell'algoritmo del PageRank e devo implementarlo in MatLab. Vorrei utilizzare la funzione surfer.m ( http://www.mediafire.com/?7j0111ewv8bx9lj ). Tale funzione restituisce un grafico che non so interpretare.

Da quello che ho potuto capire questa funzione fornisce l'input per l'implementazione del metodo delle potenze (metodo su cui si basa l'algoritmo del PageRank).
Se non ho capito male l'algoritmo del PageRank richiede un certo numero di pagine web individuate effettuando una ricerca in risposta ad una query. Successivamente viene applicato l'algoritmo.
Quindi la funzione surfer.m permette di ottenere queste pagine da cui parte l'algoritmo del PageRank? Se si, qual è il significato del grafico che mi restituisce la funzione?
non ho guardato il codice, ma come puoi domandare "cosa restituisce la funzione"? se te che hai scritto il codice...
Cosa è un punto di quel grafico, cioè che ci sta sull'ascissa e ordinata?
Cosa è un punto di quel grafico, cioè che ci sta sull'ascissa e ordinata?
no, non mi sono spiegato. quella funzione non l'ho creata io, voglio cercare di capire come funziona ma purtroppo non c'ho capito niente e per questo chiedo il vostro aiuto.
io ho provato a dare una mia interpretazione sull'utilità di questa funzione e ve l'ho scritta nel precedente post, ma non riesco ad andare oltre nella comprensione.
mi aiutate?
io ho provato a dare una mia interpretazione sull'utilità di questa funzione e ve l'ho scritta nel precedente post, ma non riesco ad andare oltre nella comprensione.
mi aiutate?

nessuno sa chiarirmi le idee?

"ginog81":
nessuno sa chiarirmi le idee?
dimmi dove hai preso questo codice.
Così com'è scritto non comprendo cosa sia quell'elenco di tipi di file e l'http... non penso si colleghi in rete per analizzare il link. Anche se non conosco Matlab è troppo poco codice per gestire un programma di rete, pensavo fosse un semplice simulatore dell'algoritmo non di più.
quel codice è preso da una tesi che ho trovato in rete.
ho fatto diversi tentativi e ho capito proprio che l'algoritmo si collega alla rete e precisamente al sito indicato dove c'è "http://" (io se non erro ho inserito http://www.google.it). poi bisogna specificare un altro parametro che se non erro nel codice è 250 (io ho inserito invece 50).
inizialmente pensavo fossero le dimensioni del grafico però non riesco a capire.
pensandoci bene secondo me quello è il limite di link che vengono trovato in quella pagina in modo da poterli mostrare sul grafico.
inoltre se dal grafico alcuni dei punti vanno a formare un quadrato vuol dire che in quella pagina sono presenti dei link che puntano a loro stessi. almeno così mi sembra di aver capito.
io sinceramente dal codice non c'ho capito niente e il grafico non riesco a interpretarlo come si deve. insomma un disastro.
p.s. questa ( http://www.google.it/url?sa=t&rct=j&q=p ... VLb3gHDCeg ) è la tesi di cui vi parlavo. la funzione in questione è a pagina 26.
ho fatto diversi tentativi e ho capito proprio che l'algoritmo si collega alla rete e precisamente al sito indicato dove c'è "http://" (io se non erro ho inserito http://www.google.it). poi bisogna specificare un altro parametro che se non erro nel codice è 250 (io ho inserito invece 50).
inizialmente pensavo fossero le dimensioni del grafico però non riesco a capire.
pensandoci bene secondo me quello è il limite di link che vengono trovato in quella pagina in modo da poterli mostrare sul grafico.
inoltre se dal grafico alcuni dei punti vanno a formare un quadrato vuol dire che in quella pagina sono presenti dei link che puntano a loro stessi. almeno così mi sembra di aver capito.
io sinceramente dal codice non c'ho capito niente e il grafico non riesco a interpretarlo come si deve. insomma un disastro.

p.s. questa ( http://www.google.it/url?sa=t&rct=j&q=p ... VLb3gHDCeg ) è la tesi di cui vi parlavo. la funzione in questione è a pagina 26.
ma scusa a pag. 26 c'è scritto tutto, sia cose restituisce che come lo rappresenta il grafo.
A te non penso interessi minimamente come riesce a calcolare tale vettore cioè che metodi di rete utilizza il tizio che ha scritto il codice di surfer.m, è una libreria e come tale ha lo scopo di dare funzioni e semplificare la vita a chi le utilizza.
A te non penso interessi minimamente come riesce a calcolare tale vettore cioè che metodi di rete utilizza il tizio che ha scritto il codice di surfer.m, è una libreria e come tale ha lo scopo di dare funzioni e semplificare la vita a chi le utilizza.
Era proprio quello che non capivo.
Vediamo se ci sono arrivato. Da quello che ho capito quindi su quel grafico abbiamo sulle ascisse le U(j) pagine mentre sulle ordinate le U(i) pagine. I vari puntini rappresentano la presenza o meno dei collegamenti dalle U(j) pagine alle U(i) pagine. Giusto?
Quindi se è vera questa cosa effettivamente questa funzione surfer va proprio a restituire l'insieme di pagine necessarie nel calcolo del PageRank (che vabbè verrà poi fatto con il metodo delle potenze).
Quante cavolate ho detto?
Vediamo se ci sono arrivato. Da quello che ho capito quindi su quel grafico abbiamo sulle ascisse le U(j) pagine mentre sulle ordinate le U(i) pagine. I vari puntini rappresentano la presenza o meno dei collegamenti dalle U(j) pagine alle U(i) pagine. Giusto?
Quindi se è vera questa cosa effettivamente questa funzione surfer va proprio a restituire l'insieme di pagine necessarie nel calcolo del PageRank (che vabbè verrà poi fatto con il metodo delle potenze).
Quante cavolate ho detto?

aggiungo anche un'altra cosa che mi è stata detta da un docente. Quella funzione dovrebbe restituire anche due matrici. Il problema è che non riesco a capire cosa restituiscono queste due matrici anche perchè l'unica cosa che mi viene stampata è il grafico che vi ho postato prima.
La tesina dice:
surfer.m:
Ora quello che dici è giusto teoricamente, ma in pratica $U$ è un vettore di indirizzi (stringhe) che l'utilità del PageRank in sè è zero. $G$ una matrice che diverrà la base dell'algoritmo cioè una matrice stocastica e via dicendo.
Cosa è che ti crea così tanti dubbi? E' tutto scritto... non posso aiutarti nel codice perchè non conosco MatLab ma è abbastanza chiaro.
Attento che per utilizzare veramente $G$ devi utilizzara le funzione che è descritta in pag 27:
Per prima cosa, utilizziamo la funzione surfer.m (scaricabile dal sito http://www.mathworks.com/moler/ncmfilelist.html), che ci permette di scaricare una porzione della rete, immettendo una pagina da cui partire ed il numero di nodi da considerare. Eseguiamo quindi >> [U,G] = surfer (’http://www.unipi.it’,250); per ottenere il vettore U, che contiene gli indirizzi dei siti visitati, e la matrice sparsa G, il cui generico elemento gij vale 1 se U(j) “punta” verso U(i), 0 altrimenti. Al termine dell’esecuzione del comando, otteniamo che la struttura di G `e la seguente:
surfer.m:
SURFER Create the adjacency graph of a portion of the Web. % [U,G] = surfer(root,n) starts at the URL root and follows % Web links until it forms an adjacency graph with n nodes. % U = a cell array of n strings, the URLs of the nodes. % G = an n-by-n sparse matrix with G(i,j)=1 if node j is linked to node i.
Ora quello che dici è giusto teoricamente, ma in pratica $U$ è un vettore di indirizzi (stringhe) che l'utilità del PageRank in sè è zero. $G$ una matrice che diverrà la base dell'algoritmo cioè una matrice stocastica e via dicendo.
Cosa è che ti crea così tanti dubbi? E' tutto scritto... non posso aiutarti nel codice perchè non conosco MatLab ma è abbastanza chiaro.
Attento che per utilizzare veramente $G$ devi utilizzara le funzione che è descritta in pag 27:
>> M = double(full(G)’);ed il resto.
effettivamente dovrebbe essere chiaro, forse non avevo letto con attenzione.
comunque ora ci rifletto e nel caso dovessero uscire altri dubbi magari ti chiedo qualche consiglio.
grazie.
comunque ora ci rifletto e nel caso dovessero uscire altri dubbi magari ti chiedo qualche consiglio.
grazie.
