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.

Entradas relacionadas: