Fondamenti di GNU Octave per Statistica e Calcolo Numerico
Classificato in Elettronica
Scritto il in
italiano con una dimensione di 7,78 KB
Gestione dei Pacchetti e del Workspace
Installazione pacchetti
Per gestire le estensioni in Octave, utilizza i seguenti comandi per l'installazione e il caricamento:
pkg install statisticspkg install -forge package_name- Esempio:
pkg install -forge statistics pkg load statistics
Esempio di utilizzo della funzione tabulate:
z = [1 1 1 1 1 1 1 1 2 2 2 2 2 2]
tabulate(z)
Pulizia dello schermo e del workspace
Per mantenere l'ambiente di lavoro pulito:
- clc: Pulisce la finestra dei comandi.
- clear: Rimuove tutte le variabili dal workspace.
Rimozione di pacchetti
pkg uninstall statistics
Utilità e Help
Per consultare la documentazione interna:
help(tabulate)help –list
Funzioni e Operazioni di Base
Funzioni in Octave che restituiscono due risultati
Esempio di una funzione personalizzata per calcolare massimo e minimo:
function [max_val, min_val] = maximin(x)
max_val = max(x);
min_val = min(x);
endfunction
Successione di numeri
Creazione di vettori con intervalli specifici:
x = 1:100(da 1 a 100 con passo 1)x = 1:3:30(da 1 a 30 con passo 3)
Numeri e loro formato
Gestione della precisione decimale per la costante pi greco:
pi
format long
pi
format short
pi
Arrotondamento
- round(x): Arrotonda all'intero più vicino.
- fix(x): Arrotonda verso lo zero.
Statistica e Generazione di Dati
Generazione di un numero casuale
Esempio con distribuzione normale:
p = normrnd(1.0, 0.5, 1000, 1);
disp(mean(p));
disp(sqrt(sum((p - mean(p)).^2) / numel(p)));
Calcolo della Media
Funzione personalizzata per gestire set di dati vuoti:
function m = omean(l)
if (numel(l) == 0)
m = 0;
else
m = mean(l);
endif
endfunction
disp(omean([]));
disp(omean([1, 2, 3]));
Scostamento tra Media e Mediana
Funzione per misurare la normalità e visualizzare l'istogramma:
function normalita = normalita2(x)
mean(x) - median(x)
hist(x)
endfunction
Simulazione del lancio di tre dadi
Calcolo della somma su 100 lanci:
y = 0;
for (i = 1:100)
x = unifrnd(1, 6, [1 3]);
y(i) = sum(round(x));
endfor
hist(y)
Serie Storiche e Modelli
Comparazione di due serie storiche (cell-arrays)
Utilizzo di cell-arrays per iterare su più serie:
c = {s1, s2};
for i = 1:2
plot(c{i});
hold on;
disp("media"); mean(c{i})
disp("varianza"); var(c{i})
disp("deviazione standard"); std(c{i})
endfor
Stima del trend comparata
Utilizzo di polyfit per la regressione lineare:
s1 = a(1:24, 1);
s2 = a(1:24, 2);
c = {s1, s2};
for i = 1:2
t = 1:24;
y = polyfit(transpose(t), c{i}, 1);
plot(c{i});
yfit = y(1) * t + y(2);
plot(yfit);
hold on;
endfor
Finestre mobili nelle serie storiche
Calcolo di statistiche su segmenti di dati:
c = {s1, s2, s3, s4, s5, s6};
for i = 1:6
disp("media"); mean(c{i})
disp("varianza"); var(c{i})
disp("deviazione standard"); std(c{i})
endfor
Operazioni Avanzate e Scripting
Descrittiva e Grafica (uso di scripts)
Esecuzione di script esterni e controllo dimensioni:
analisi_dati
analisi_dati_grafica
analisi_grafica
size(A)
Matrice di dati e Valori Mancanti
Caricamento dati e gestione dei valori NA:
X = load('wellbeing.txt');
output_precision(1);
x = [1:30 NA];
b = isna(x);
if b != 1
disp('ok')
else
disp('no')
endif
Simulazione guasti (Distribuzione di Poisson)
y = 0;
for (i = 1:5)
y(i) = poissrnd(1, [1 1]);
endfor
Funzioni Matematiche Comuni
sin(x),cos(x),tan(x)exp(x),abs(x)
Visualizzazione Dati
Grafici e Figure
Creazione di grafici lineari e gestione delle finestre:
x = linspace(0, 3*pi, 100);
y = sin(x);
plot(x, y);
figure;
Utilizzo di hold on per sovrapporre grafici:
plot(sin(x));
figure;
hold on;
plot(sin(x));
Statistiche Descrittive Rapide
mean(x)
mean(x); % Il punto e virgola sopprime l'output
var(x)
std(x)
skewness(x)
kurtosis(x)
Messaggi di Output
printf("Hello World!")
disp("Hello")
Algebra Lineare e Matrici
Operazioni tra Matrici
A = [1, 14, 24; 2, 1, 8; 1, 23, 12];
B = [32, 2, 3; 34, 2, 2; 3, 4, 5];
A + B
A - B
Matrici Particolari
- eye(n): Matrice identità.
- zeros(m, n): Matrice di zeri.
- rand(n, m): Valori pseudocasuali uniformi.
- randn(n, m): Valori pseudocasuali normali.
Proprietà delle Matrici
length(A): Lunghezza del vettore o dimensione massima.size(A): Dimensioni della matrice.det(A): Determinante della matrice.X': Trasposta di un vettore o matrice.
Esempi Pratici Finali
Relazione tra variabili
Utilizzo di scatter plot e coefficiente di correlazione:
scatter(x1, x2)
corrcoef(x1, x2)
Regressione Polinomiale
p = polyfit(x2, x1, 2)
Caso Studio: Raffreddamento di un liquido
Modellazione di una relazione lineare con rumore:
x = 1:40;
y = 30.3 - 0.4 * x + normrnd(0, 1, [1 40]);
scatter(x, y)
y = transpose(y);
x = transpose(x);
p = polyfit(x, y, 1)