ePerTutti
Appunti, Tesina di, appunto informatica

VARIABILE ALETORIA BINOMIALE

Scrivere la parola
Seleziona una categoria

VARIABILE ALETORIA BINOMIALE

La variabile aleatoria binomiale è una variabile discreta in quanto si basa su un numero finito di elementi e si indica con B(m,d2). In particolare lo spazio degli eventi è formato da E ed E negato. Siamo in presenza perciò di un sistema completo, infatti i due eventi sono due a due incompatibili e la loro unione forma omega (W).

La probabilità che levento si verifichi si indica con la lettera p e per tanto la probabilità che non si verifichi è 1-p (la probabilità di W è 1), cioè q.



P è un parametro fondamentale assieme a n, che è il numero di prove effettuate indipendenti e nelle stesse condizioni, in modo che la probabilità possa essere ogni volta p. Il numero di successi in n prove si indica con la lettera k, che è una variabile.

Da questo si può calcolare la probabilità di avere k successi in n prove, utilizzando la formula generale:

P(k)=(n)pk q n-k

k

La sommatoria delle P(k) è uguale a 1 perche come ho detto prima siamo in presenza di un sistema completo di eventi. Questa ugualianza è dimostrabile anche matematicamente:

n

Σ P(k)= Σ (n) pk q n-k =

k=0 k=0 k

= (p+q)n = // Calcolo di una potenza di un binomio

= (p+1-p)n =

=1n = 1

Sulla binomiale si possono calclare il valore atteso E(k), va varianza VAR(k) e la moda Mo:

Il valore atteso è il prodotto tra n e p:

E(k)=np

La varianza è il prodotto tra il numero di prove (n), la probabilità dellevento (p) e la probabilità di non verificarsi (q):

VAR(k)=npq

Per calcolare la moda, prima si esegue un calcolo il cui risultato potrà essere un numero intero o un numero reale:

Mo=np-q

Nel caso in cui il risultato sia un numero intero, la moda sarà espressa con due valori, rispettivamente:

Mo=np-q ed Mo=np-q+1=np+p

Nel caso in cui il risultato sia un numero reale, la moda sarà il risultato della prima operazione considerando solamente la parte intera e aggiungendo 1:

Mo = [np q]+1

- Programma

DICHIARAZIONE VARIABILI

Variabili di input

- int n : Numero di prove effettuate (intero)

- float p : Probabilità che levento E si verifichi (decimale)

Variabili di output

- float Pk[30] : Variabile aleatoria binomiale (array)

- float E : Valore atteso (decimale)

- float var : Varianza (decimale)

- float Mo : Moda (decimale)

Variabili in uso nel pgm

- int scheda,modo : Variabili per luso della grafica

- char rchar[40] : Stringa di caratteri utilizzata durante la visualizzazione del grafico

- int i,j,a,y,yy,z : Variabili per cicli e controlli

FUNZIONI

- void Controllo1 : Controllo sullinserimento di prove effettuate

Il valore immesso deve rientrare nel range di valori che va da 0 a 32'766 (massimo valore rappresentabile con un integer).

- void Controllo2 : Controllo sullinserimento della probabilità

Il valore immesso deve rientrare nel range di valori che va da 0 a 1 (probabilità di Ω).

- void Ordina : Ordinamento crescente di Pk

Lordinamento avviene con il metodo chiamato Bubble Sort.

DESCRIZIONE DEL PGM

Immissione dati

Linserimento del numero di prove avviene con il controllo,che richiede linserimento se è stato riscontrato un errore, e la stessa cosa avviene con linserimento della probabilità. Poi stampa a video la tabella di giuste dimensioni con i vari valori possibili di k.

Calcolo della binomiale

La prima probabilità P(k) con k=0 viene calcolata con la formula abbreviata di qn . Le altre vengono calcolate in più istruzioni in un ciclo; per verificare lesattezza dei calcoli fa la sommatoria delle P(k) e la mostra a video.

Valore atteso, varianza, moda

Il valore atteso e la varianza vengono calcolati immediatamente con la formula e stampati; per il calcolo della moda si esaminano i tre casi con Mo<0, Mo= numero reale e Mo= numero intero.

Grafica

La sessione di grafica inizia dopo aver premuto INVIO e disegna gli assi, le frecce, scrive il titolo, scrive i nomi degli assi e salva nelle variabili a e z le costanti di tutti e due gli assi (sapendo lo spazio in pixel a disposizione per il disegno). Disegna la scala sullasse x con un ciclo e stampa i rispettivi valori. Lo stesso avviene con lasse y, ordinando però prima il vettore Pk. In fine vengono disegnati i punti a dispersione.

- Listato del programma

/*****************************************************************************

* Croci Jvan 4^ A Informatica 16-l0-2000 *

******************************************************************************/

// Input: n, p.

// Output: Variabile aleatoria BINOMIALE, E(k), VAR(k), Mo, Grafico.

#include<conio.h>

#include<stdio.h>

#include<math.h>

#include<values.h>

#include<graphics.h>

int n; // Numero di prove

float p; // Probabilit di E

float Pk[30],E,var,Mo; // Variabili di output

int i=0,j=0,a=0,y=0,yy=0,z=0;

char rchar[40];

int scheda,modo;

void Controllo1(int val,int &ritorno,int &cont);

void Controllo2(float val,int &ritorno2,int &cont2);

void Ordina();

void main(void)

while(a==1);

do

while(a==1);

printf('nn ͻn');

printf(' º k º P(k) ºn');

printf(' ÌI¹n');

for(i=0;i<n+1;i++)

printf(' º º ºn');

printf(' ÈI¹n');

printf(' º ºn');




printf(' ȼn');

for(i=0;i<n+1;i++)

//-------------------------------- BINOMIALE ---------------------------------

Pk[0]=(pow(1-p,n));

gotoxy(15,12+(yy*2)+(y*2));

printf('%.4f',Pk[0]);

for(j=1;j<n+1;j++)

E=0;

for(i=0;i<n+1;i++)

E=E+Pk[i]; // Sommatoria di P(k) = 1

gotoxy(15,12+n+2+(yy*2)+(y*2));

printf('%.4f',E);

//----------------------- VALORE ATTESO, VARIANZA, MODA ----------------------

E=0;

E=n*p; // Valore atteso E(k)

var=n*p*(1-p); // Varianza VAR(k)

printf('nnn Il valore atteso di k [ E(k) ] : %.4fn',E);

printf(' La varianza di k [ VAR(k) ] : %.4fn',var);

Mo=(n*p)-(1-p);

if(Mo<0) // Numero < 0

else

else // Numero intero

}

getch();

//------------------------------- GRAFICA ------------------------------------

printf('nn Per visualizzare il grafico premere il tasto INVIO ');

getch();

detectgraph(&scheda,&modo);

initgraph(&scheda,&modo,'c:borlandcbgi');

clrscr();

setfillstyle(1,0);

floodfill(3,3,0);

line(100,440,100,20); // Asse y =410

line(90,430,540,430); // Asse x =440

line(95,25,100,20);

line(105,25,100,20); // Freccia

line(95,25,105,25);

line(535,425,540,430);

line(535,425,535,435); // Freccia

line(535,435,540,430);

settextstyle(8,0,3);

setcolor(1);

outtextxy(130,0,'Variabile aleatoria Binomiale');

a=440; // Costante asse x

z=390; // Costante asse y

setcolor(15);

settextstyle(1,0,1); // Nomi assi

outtextxy(550,450,'k');

outtextxy(40,10,'P(k)');

setcolor(15);

y=a/(n+1);

settextstyle(2,0,6);

for(i=0;i<n+1;i++)

yy=z/Pk[Mo];

settextstyle(2,0,5);

for(i=0;i<n+1;i++)

line(95,430-(Pk[i]*yy),105,430-(Pk[i]*yy)); // Scala asse y

setcolor(4);

setfillstyle(1,4);

for(i=0;i<n+1;i++)

setcolor(15);

Ordina();

for(i=0;i<n+1;i++)

getch();

} // Termine pgm

//------------------------------- FUNZIONI -----------------------------------

void Controllo1(int val,int &ritorno,int &cont)

else

ritorno=0;

}

void Controllo2(float val,int &ritorno2,int &cont2)

}

void Ordina()

//

} //

}

while((n>0) && (ordinato==1));

}






Privacy

© ePerTutti.com : tutti i diritti riservati
:::::
Condizioni Generali - Invia - Contatta