OCTAVE. Octave Octave è uno stumento di calcolo di alto livello. Permette di risolvere problemi di...
-
Upload
biagino-zamboni -
Category
Documents
-
view
213 -
download
1
Transcript of OCTAVE. Octave Octave è uno stumento di calcolo di alto livello. Permette di risolvere problemi di...
![Page 1: OCTAVE. Octave Octave è uno stumento di calcolo di alto livello. Permette di risolvere problemi di analisi numerica lineari.](https://reader036.fdocumenti.com/reader036/viewer/2022082920/5542eb66497959361e8d1c1f/html5/thumbnails/1.jpg)
OCTAVE
![Page 2: OCTAVE. Octave Octave è uno stumento di calcolo di alto livello. Permette di risolvere problemi di analisi numerica lineari.](https://reader036.fdocumenti.com/reader036/viewer/2022082920/5542eb66497959361e8d1c1f/html5/thumbnails/2.jpg)
Octavehttp://octave.sourceforge.net/Octave è uno stumento di calcolo di alto livello. Permette di risolvere problemi di analisi numerica lineari e non lineari. Il linguaggio usato è compatibile con Matlab
Alternative a Matlabhttp://www.dedoimedo.com/computers/scientific.htmlScilabFeeMatEtc..
![Page 3: OCTAVE. Octave Octave è uno stumento di calcolo di alto livello. Permette di risolvere problemi di analisi numerica lineari.](https://reader036.fdocumenti.com/reader036/viewer/2022082920/5542eb66497959361e8d1c1f/html5/thumbnails/3.jpg)
OCTAVE
• Aprire un file di Octave: dalla finestra di Octave:>>edit prova5.m• Per cambiarlo:>>edit prova5 save • Per lanciarlo>> prova5• Per vedere la directory corrente>>pwd• Per risalire>>cd ..• Per entrare:>>cd nomedir• Per aggiungere un pathaddpath(genpath(‘C:/mfiles/’));savepath;
![Page 4: OCTAVE. Octave Octave è uno stumento di calcolo di alto livello. Permette di risolvere problemi di analisi numerica lineari.](https://reader036.fdocumenti.com/reader036/viewer/2022082920/5542eb66497959361e8d1c1f/html5/thumbnails/4.jpg)
• Come si inseriscono matrici e vettori
; , • Come si opera con matrici e vettori
• Grafici 2-d
plot, hist (help)
OCTAVE
![Page 5: OCTAVE. Octave Octave è uno stumento di calcolo di alto livello. Permette di risolvere problemi di analisi numerica lineari.](https://reader036.fdocumenti.com/reader036/viewer/2022082920/5542eb66497959361e8d1c1f/html5/thumbnails/5.jpg)
http://www.mit.edu/~gerganaa/downloads.html
Programmi Matlab per il calcolo di misure di reti (G. Bounova)
G. Bounova ha sviluppato diversi programmi MATLAB per il calcolo delle proprietà delle retiLi ho raccolti in «Bounova_nuovo».Calcolo dell’mst (algoritmo Prim’s)Calcolo del cammino minimo (Dijkstra)Calcolo del ClusteringCalcolo del diametroCalcolo della lunghezza caratteristicaCalcolo della distribuzione dei gradiGenerare una ER networkGenerare una SF networkEtc..
![Page 6: OCTAVE. Octave Octave è uno stumento di calcolo di alto livello. Permette di risolvere problemi di analisi numerica lineari.](https://reader036.fdocumenti.com/reader036/viewer/2022082920/5542eb66497959361e8d1c1f/html5/thumbnails/6.jpg)
Esercizio
Dato seguente grafoCalcolare con Octave il cammino minimo l’albero di ricoprimento minimo, flusso massimo
Aggiungiamo il percorso addpath(genpath(‘C:/programmi/Bounova_nuovo’));savepath; Inseriamo la matrice di adiacenza
1
9
2
7 5
3
8 6
42
2
2
3
1
4
23
2
3
33
A=[0 2 0 0 0 0 0 2 3 2 0 1 0 0 0 0 0 0 0 1 0 0 3 0 0 0 0 0 0 0 0 3 3 0 0 0 0 0 3 3 0 0 0 3 0 0 0 0 3 0 0 2 0 0 0 0 0 0 0 2 0 0 2 2 0 0 0 3 0 0 0 0 3 0 0 0 0 0 2 0 0]
![Page 7: OCTAVE. Octave Octave è uno stumento di calcolo di alto livello. Permette di risolvere problemi di analisi numerica lineari.](https://reader036.fdocumenti.com/reader036/viewer/2022082920/5542eb66497959361e8d1c1f/html5/thumbnails/7.jpg)
% prova1000.mclearA=[0 2 0 0 0 0 0 2 3 2 0 1 0 0 0 0 0 0 0 1 0 0 3 0 0 0 0 0 0 0 0 3 3 0 0 0 0 0 3 3 0 0 0 3 0 0 0 0 3 0 0 2 0 0 0 0 0 0 0 2 0 0 2 2 0 0 0 3 0 0 0 0 3 0 0 0 0 0 2 0 0];%draw_circ_graph(A) % cammino minimo
s=1; target=4; [dist,P]=dijkstra(A,s,target),
% flusso massimo source=1; sink=4; capacity=A; nodes_number=9;
max_flow=ff_max_flow(source,sink,capacity,nodes_number),% minimum spanning tree
tr = min_span_tree(A),
![Page 8: OCTAVE. Octave Octave è uno stumento di calcolo di alto livello. Permette di risolvere problemi di analisi numerica lineari.](https://reader036.fdocumenti.com/reader036/viewer/2022082920/5542eb66497959361e8d1c1f/html5/thumbnails/8.jpg)
1
9
2
7 5
3
8 6
42
2
2
3
1
4
23
2
3
33
max
Output: dist=8P=1 8 5 4max_flow =5
Albero di ricoprimento minimo
2 3 3
min(2,3,3)=2
min(2,1,3,3)=1
min(3,2,2,3)=2
(5=2+1+2)
![Page 9: OCTAVE. Octave Octave è uno stumento di calcolo di alto livello. Permette di risolvere problemi di analisi numerica lineari.](https://reader036.fdocumenti.com/reader036/viewer/2022082920/5542eb66497959361e8d1c1f/html5/thumbnails/9.jpg)
% prova2000.mclearA=[0 2 0 0 0 0 0 2 3 2 0 1 0 0 0 0 0 0 0 1 0 0 3 0 0 0 0 0 0 0 0 3 3 0 0 0 0 0 3 3 0 0 0 3 0 0 0 0 3 0 0 2 0 0 0 0 0 0 0 2 0 0 2 2 0 0 0 3 0 0 0 0 3 0 0 0 0 0 2 0 0];…….
EsercizioDella rete precedente. Calcolare il diametro, la distanza caratteristica, i valori dei gradi di clustering, di betweennes e di closeness centrality. Fare gli istogrammi dei gradi, dei clustering,delle betweennes e delle closeness centrality.
![Page 10: OCTAVE. Octave Octave è uno stumento di calcolo di alto livello. Permette di risolvere problemi di analisi numerica lineari.](https://reader036.fdocumenti.com/reader036/viewer/2022082920/5542eb66497959361e8d1c1f/html5/thumbnails/10.jpg)
……..% grado mediom=numedges(A); n=numnodes(A); km =2*m/n;d2=link_density(A) ; %2*m/n/(n-1)diam= diameter(A);apl=ave_path_length(A);deg=degrees(A); subplot(221),hist(deg), title('degree');clo=closeness(A); subplot(222),hist(clo), title('closeness');bet=node_betweenness_slow(A);subplot(223),hist(bet), title('betweenness');[C1,C2,C] = clust_coeff(A); subplot(224),hist(C), title('clustering');%figure%draw_circ_graph(A)
![Page 11: OCTAVE. Octave Octave è uno stumento di calcolo di alto livello. Permette di risolvere problemi di analisi numerica lineari.](https://reader036.fdocumenti.com/reader036/viewer/2022082920/5542eb66497959361e8d1c1f/html5/thumbnails/11.jpg)
![Page 12: OCTAVE. Octave Octave è uno stumento di calcolo di alto livello. Permette di risolvere problemi di analisi numerica lineari.](https://reader036.fdocumenti.com/reader036/viewer/2022082920/5542eb66497959361e8d1c1f/html5/thumbnails/12.jpg)
![Page 13: OCTAVE. Octave Octave è uno stumento di calcolo di alto livello. Permette di risolvere problemi di analisi numerica lineari.](https://reader036.fdocumenti.com/reader036/viewer/2022082920/5542eb66497959361e8d1c1f/html5/thumbnails/13.jpg)
Proviamo a rifare lo stesso esercizio con Pajek:
Da Octave generiamo il file provaPajek.netadj2pajek(A,’provaPajek.net’)
*Vertices 9 1 "v1" 0.5776 0.7561 0.0000 2 "v2" 0.3545 0.9017 0.0000 3 "v3" 0.3451 0.1743 0.0000 4 "v4" 0.2520 0.4123 0.0000 5 "v5" 0.9702 0.0730 0.0000 6 "v6" 0.5191 0.6884 0.0000 7 "v7" 0.3946 0.2572 0.0000 8 "v8" 0.5388 0.0573 0.0000 9 "v9" 0.0498 0.8002 0.0000*Edges 2 1 2 8 1 2 9 1 3 1 2 2 3 2 1 2 3 1 5 3 3........
![Page 14: OCTAVE. Octave Octave è uno stumento di calcolo di alto livello. Permette di risolvere problemi di analisi numerica lineari.](https://reader036.fdocumenti.com/reader036/viewer/2022082920/5542eb66497959361e8d1c1f/html5/thumbnails/14.jpg)
Proviamo a rifare lo stesso esercizio con Pajek:
Aprire PajekPosizionarsi su C:…./bin/ProvaPajek.net
Net/transform/remove/multiple Line (max)
![Page 15: OCTAVE. Octave Octave è uno stumento di calcolo di alto livello. Permette di risolvere problemi di analisi numerica lineari.](https://reader036.fdocumenti.com/reader036/viewer/2022082920/5542eb66497959361e8d1c1f/html5/thumbnails/15.jpg)
Info/net/general
Output OctaveKm=5.3333D2=0.6667Diam=9apl=5.1944E=0.0046
2*m/n=48/9=5.3333Considera gli archi di peso 1m=10; n=92*m/n=2.22
Diametro=4
![Page 16: OCTAVE. Octave Octave è uno stumento di calcolo di alto livello. Permette di risolvere problemi di analisi numerica lineari.](https://reader036.fdocumenti.com/reader036/viewer/2022082920/5542eb66497959361e8d1c1f/html5/thumbnails/16.jpg)
Studiare la rete dining-table_partners.net del cap 1
Da Octave generiamo un file .m con la matrice di adiacenza
%Pajek2adj.m% This program extracts an adjacency matrix from a pajek text (.net) file% INPUT .net text filename, n - number of nodes in the graph% OUTPUT: adjacency matrix, nxn, n - # nodesadj = pajek2adj(filename,n)
adj = pajek2adj(dining-table_partners.net,26)
![Page 17: OCTAVE. Octave Octave è uno stumento di calcolo di alto livello. Permette di risolvere problemi di analisi numerica lineari.](https://reader036.fdocumenti.com/reader036/viewer/2022082920/5542eb66497959361e8d1c1f/html5/thumbnails/17.jpg)
Esercizio A
Verificare che l’albero minimo del seguente grafo:
è:
![Page 18: OCTAVE. Octave Octave è uno stumento di calcolo di alto livello. Permette di risolvere problemi di analisi numerica lineari.](https://reader036.fdocumenti.com/reader036/viewer/2022082920/5542eb66497959361e8d1c1f/html5/thumbnails/18.jpg)
Esercizio B
Si consideri il seguente grafo
Verificare che il cammino minimo da A a G è ABEG ed ha lunghezza 18
![Page 19: OCTAVE. Octave Octave è uno stumento di calcolo di alto livello. Permette di risolvere problemi di analisi numerica lineari.](https://reader036.fdocumenti.com/reader036/viewer/2022082920/5542eb66497959361e8d1c1f/html5/thumbnails/19.jpg)
Esercizio C
Verificare che nel seguente grafo
Nota: Octave ne fornisce uno dei 2. per ottenere l’albero di ricoprimento minimo si deve aggiungere un arco da H ad esempio ad A con peso 6 (peso max)
![Page 20: OCTAVE. Octave Octave è uno stumento di calcolo di alto livello. Permette di risolvere problemi di analisi numerica lineari.](https://reader036.fdocumenti.com/reader036/viewer/2022082920/5542eb66497959361e8d1c1f/html5/thumbnails/20.jpg)
Esercizio
Inventare un grafo non diretto con 7 nodiInserire la matrice di adiacenza in Octave e calcolare Cammino minimo tra due nodi a casoFlusso massimo tra gli stessi nodiAlbero di ricoprimento minimoDistribuzione dei gradiDistribuzione delle betweenness e Distribuzione dei valori di clustering