Guida a Octave: Domande, Esercizi e Codice Commentato
Classified in Informatica
Written at on italiano with a size of 5,07 KB.
DOMANDE ED ESERCIZI OCTAVE (raccolte):
1. Si vuole installare un determinato pacchetto in Octave. Quali operazioni devono essere effettuate per installare e caricare un pacchetto “statistics” da Source Forge?
Si consideri il seguente codice:
pkg install statistics
pkg install -forge package_name
% esempio
pkg install -forge statistics
pkg load statistics
astrazioni generali o specifiche per particolari domini applicativi.
2. Caricamento di dati da files di testo:
x = load('mywork.txt')
Creazione di due vettori riga e loro somma
Trasposta di un vettore riga
Cancellazione della command window e del workspace
x = load('mywork.txt')
x = [1 2 3]
y = [2 2 5]
x + y
x = [1 2 3]'
%clc o clear
3. Definire il concetto di algoritmo:
Un algoritmo può essere definito come una procedura computazionale che, a partire da un determinato problema da risolvere, permette di risolvere il medesimo problema con un numero di passi definito.
4. Creare una funzione che sommi due numeri in Octave:
function [ris] = somma(x, y)
ris = x + y;
endfunction
5. Fornire degli esempi del costrutto IF:
x = 12
y = 1
if (x == 1) && (y == 1)
disp('valori uguale ad 1')
else
disp('valori diversi da 1')
endif
6. Fornire degli esempi del costrutto WHILE:
x = 0
while x < 10
x = x + 1
endwhile
7. Fornire degli esempi del costrutto FOR:
for i = 1:100
disp(i)
endfor
8. Fornire degli esempi di CONTINUE:
Da usare all’interno di un ciclo for o while, che fa saltare le istruzioni di quel livello del ciclo per andare al passaggio successivo.
9. Utilità del costrutto BREAK:
Serve a interrompere l’esecuzione di un ciclo (for o while) o di uno script.
10. Qual è l'utilità di scrivere un programma al computer in Octave rispetto a effettuare analisi dei dati con un foglio di calcolo?
I problemi sono relativi a due questioni:
- la replicabilità delle analisi in via il più possibile rapida e accurata (laddove Octave presenta un linguaggio diverso dal VBA e per molte operazioni più efficaci)
- riconoscibilità degli errori - il che è fondamentale
11. Considerare un dataset relativo ai voti degli studenti di una università. Creare uno script che effettui l’analisi descrittiva dei dati in Octave:
x = load('dati6.txt')
mean(x)
median(x)
min(x)
max(x)
hist(x)
12. In quale modo è possibile visualizzare gli outliers?
È possibile visualizzare gli outliers facendo uso di un boxplot:
pkg load statistics
boxplot(x)
13. Creare una matrice 3x3 in Octave e calcolarne l'inversa:
x = [2 4 5; 6 8 7; 9 8 3]
b = inv(x)
14. Fornire esempi del costrutto Switch in Octave:
Esempio di applicazione del costrutto Switch in Octave.
indices = input('digita numero');
switch(indices)
case(1)
range = 'B2:B21';
case(2)
range = 'C2:C21';
case(3)
range = 'D2:D21';
case(4)
range = 'E2:E21';
otherwise
disp('valore fuori range')
endswitch
15. Commentare il seguente codice:
b = 1000
k = 80
for i = 1:b
a = normrnd(0, 1, [1 k])
s(i) = mean(a)
endfor
hist(s)
Ad ogni iterazione si visualizzerà con normrnd un vettore a di lunghezza da 1 a k (che sarebbe 80) costituito da numeri casuali provenienti da una distribuzione normale avente media 0 e varianza 1 (specificati nella parentesi di normrnd prima della lunghezza). Inoltre, ad ogni iterazione calcola la media dei valori del vettore. Alla fine con hist plotta un istogramma con i valori delle medie ottenuti.
16. Commentare il seguente codice di Octave:
for i = 1:3
for k = 1:3
v(i, k) = i + k
endfor
endfor
Ad ogni iterazione crea una matrice di dimensione i x k formata da valori dati dalla somma di i + k. Praticamente parte da una matrice 1x1 con il solo valore di 2 quando sia i che k sono pari a 1. Poi ad ogni iterazione cresce fino al massimo di 3x3.
17. Qual è il vantaggio di utilizzare due linguaggi di programmazione diversi?
Infatti è importante considerare e apprendere linguaggi informatici diversi (per esempio Octave e R) in quanto in molti casi può essere utile utilizzarne uno mentre per altri scopi può risultare necessario utilizzarne un altro.
Pertanto “mixare” approcci diversi con altri linguaggi ci permette di migliorare i risultati ottenuti dalle nostre analisi.