Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
Generazione di numeri casuali
% GENERAZIONE DI NUMERI CASUALI
clc; % pulisce la command window
clear; % Cancella il workspace
close all; %chiude tutte le finestre (figure) aperte
PrintFlag=1;% Regola d'oro del software scientifico:
% Scrivere ed eseguire una riga di codice alla volta
% Generiamo qualche distribuzione di una variabile casuale con
% distribuzione uniforme tra 0 e 1
X=rand;% Generiamo N realizzazioni
N=1000;X=rand(1,N) %vettore di una riga ed N colonne con numeri distribuiti uniformemente
% Plottiamo N realizzazioni
n=1:N; %genera tutti gli interi da 1 ad N
xmin=zeros(1,N);xmax=ones(1,N);figure,h=plot(n,X,'.-', n,xmin,'r', n,xmax,'r'); %rappresento: X , xmin , xmax
axis([0 N -0.5 1.5]);xlabel('n: Numero di realizzazione');ylabel('X');
set(h(2:3), 'LineWidth',2);% proviamo a verificare che la distribuzione degli X
% è veramente uniforme...
M=20; % forziamo il numero di BIN a 20
[fx_b,x]=hist(X,M); % x=centro dei bin
figure,plot(x,fx_b);FontSize=12;
% cambio la dimensione delle scritte sugli assi xlabel('$$x$$','FontSize',FontSize,'Interpreter','Latex'); % avvicina gli assi 'x' e 'y' alla figura ylabel('$$\bar(f)(x)$$','FontSize',FontSize,'Interpreter','Latex'); % fa uscire la x più carina ylabel('$$\bar(f)(x)$$','FontSize',FontSize,'Interpreter','Latex'); % fa uscire fx_b più carina if PrintFlag %se PrintFlag=1 allora salvo (lo imposto manualmente io a 1) print('-dpng','f_b'); print('-depsc','f_b'); % formato della figura è depsc di alta qualità saveas(gcf,'f_b') end
% STIMA DI UNA DENSITA' DI PROBABILITA' UNIFORME clc;clear;close all; % Generiamo N realizzazioni di una variabile X % con distribuzione uniforme tra 'a' e 'b' N=1e5; % 10^3 a=2;b=6; X=a+(b-a)*rand(1,N); % - rand genera un vettore i cui numeri vanno da: 0 a 1 % - moltiplico per (b-a)=4 quindi i numeri vanno da: 0 a (b-a)=4
aggiungo a=2 quindi i numeri vanno da: a=2 a a+(b-a)=6% Densità di probabilità TEORICA: fX(x)% è una porta larga (b-a)=4 e alta 1/(b-a)=1/4x=linspace(a,b,N); % crea N valori tra 'a' e 'b' spaziati con lo stesso passofX=1/(b-a)*ones(1,N); % crea un vettore di N elementi con tutti valore: 1/(b-a)% Istogramma della frequenza statistica: fX_bM=20; % M=numero di BIN[fX_b,x_est]=hist(X,M);% Densità di probabilità stimata: fX_est% la otteniamo a partire da fX_b generata da hist% ma modificata in modo che la sua sommatoria (integrale) vale 1:fX_est=M/(N*(b-a))*fX_b;% Rappresentiamo:N_X=100;figure,plot(x_est, fX_est,'r.-', x,fX,'b',X(1:N_X),zeros(1,N_X),'kx');axis([a b -0.1 2*1/(b-a)]);% r rosso: quelle stimate che dovrebbero venire come le teoriche% b blu: quelle sicure% k nero: valori di X posizionati sull'asse xxlabel('x');legend('f_X(x): Stimata','f_X(x): Teorica');
Stima di una densità di probabilità gaussiana
clc;clear;close all;
% Generiamo N realizzazioni di una variabile casuale X con distribuzione Gaussiana
% con media "mu" e deviazione standard "s"
N=100;mu=4;s=2;X=mu+s*randn(1,N); % vettore con una riga ed N elementi distribuiti secondo una Gaussiana
% con media mu e deviazione standard s
% Densità di probabilità TEORICA
xmin=min(X); % axmax=max(X); % bx=linspace(xmin,xmax,N);fX=1/((sqrt(2*pi)*s))*exp(-(x-mu).^2/(2*s^2));
% Istogramma della frequenza statistica: fX_b
M=100; % M=numero di BIN
[fX_b,x_est]=hist(X,M);
% Densità di probabilità stimata: fX_est
% la otteniamo a partire da fX_b generata da hist
% ma modificata in modo che la sua sommatoria (integrale) vale 1:
fX_est=M/(N*(xmax-xmin))*fX_b;
% Rappresentiamo:
N_X=100;figure,plot(x_est, fX_est,'r.-', x,fX,'b',X(1:N_X),zeros(1,N_X),'kx');axis([xmin xmax -0.1 1.2*max(fX_est)]);
% r rosso:
quelle stimate che dovrebbero venire come le teoriche% b blu: quelle sicure% k nero: valori di X posizionati sull'asse xxlabel('x');legend('f_X(x): Stimata','f_X(x): Teorica','Realiazzazioni'); % crea una legenda