Bine aţi venit pe Scientia QA!
Pentru a putea publica întrebări şi răspunsuri, trebuie să vă înregistraţi.
Atenţie! Este posibil ca e-mailul de confirmare a înregistrării să intre în Spam.
Pune o întrebare

Newsletter


3.5k intrebari

6.7k raspunsuri

15.2k comentarii

2.2k utilizatori

1 plus 0 minusuri
940 vizualizari

Presupun că știți deja că numărul π poate fi măsurat printr-o metodă statistică astfel: desenăm o țintă sub forma unui cerc înscris într-un pătrat și aruncăm cu săgeți spre țintă în așa fel încît în interiorul pătratului distribuția înțepăturilor să fie uniformă. Atunci raportul dintre numărul de înțepături care au intrat în cerc și numărul total de înțepături din pătrat este aproximativ egal cu π/4, de unde îl putem calcula pe π. Cînd spun „aproximativ” mă refer la faptul că dacă numărul total de înțepături e mic, atunci fluctuațiile statistice sînt mari și deci precizia cu care îl măsurăm pe π e proastă.

Întrebarea este: de cîte ori trebuie să aruncăm cu săgeata pentru ca eroarea cu care îl măsurăm pe π să fie sub 0,1 cu o confidență de 90%?

Confidența de 90% este o probabilitate, și anume probabilitatea ca, dacă repetăm de foarte multe ori seria de aruncări, la 90% dintre serii valoarea găsită a lui π va avea o eroare mai mică decît limita stabilită.

Uniformitatea de care vorbeam e perfectă și întregul experiment decurge exact ca în enunț. Astfel, singura problemă e de ordin matematic, nu fizic.

Expert (12.8k puncte) in categoria Matematica
editat de
0 0

Ma intreb daca putem lasa toata treaba in seama unui program de computer, si cum anume ar trebui sa facem acest lucru.

In primul rand, pentru a simula distributia uniforma a intepaturilor, trebuie sa generam aleatoriu, cu functii de randomizare, coordonatele unei lovituri in interiorul patratului.

Sa presupunem ca scriem programul de asa natura incat sa se opreasca automat atunci cand se ajunge la o precizie dorita a lui pi, retinand numarul de aruncari necesare.

Odata pus la punct un asemenea program, il rulam de foarte multe ori si retinem de fiecare data numarul de aruncari necesare pentru a atinge valoarea lui pi cu precizia dorita.

Dar cum anume se transpune in scenariul asta computerizat confidenta de 90%?

Un exemplu de program, in python, am gasit in clipul de mai jos:

0 0
În situația de față programul acela de simulare a țintei e bun doar ca exercițiu. Pentru a calcula numărul de iterații după care eroarea de măsurare să fie mai mică de o anumită limită cu o anumită probabilitate ar necesita enorm de multe calcule și ar dura îngrozitor de mult. În plus, ar fi inexact, pentru că însuși calculul s-ar baza pe o statistică. Există o cale mai simplă în care toate calculele se fac fără numere aleatoare. Această metodă mi-a permis să aflu că numărul de aruncări cerut de problemă este exact 706. Dar tocmai în asta constă problema, așa că pentru moment nu dau mai multe detalii despre cum am făcut calculul. Deocamdată avem soluția lui zec, care dă o estimare destul de bună a răspunsului.
0 0
Fara numere aleatoare, o idee care imi vine in minte ar fi impartirea patratului in patrate mai mici, de dimensiuni egale (de pilda plecand de la 25 pe 25, fiecare latura, si crescand numarul de diviziuni ale laturilor patratului mare). Fiecare patratel astfel rezultat va avea asociata o probabilitate egala cu celelalte patratele de a "gazdui" o sageata.

Numarand patratelele mici astfel rezultate care sunt in interiorul cercului si raportand la numarul total de patratele se poate aproxima valoarea lui pi/4. De la o valoarea incolo a numarului total de patratele se va ajunge la o valoare a lui pi de precizia dorita. Acum ar trebui sa ma apuc sa fac si desenele, si calculele, si sa vad ce fac cu patratelele care intersecteaza cercul...
0 0
Nu nu nu! Știm deja că probabilitatea ca o săgeată să intre în cerc este pi/4. Acum nu mai e nevoie nici de pătrat, nici de cerc, nici de săgeți. Avem un proces a cărui probabilitate de succes este p = pi/4. În momentul acesta, dacă vreți neapărat o reprezentare vizuală a procesului, putem presupune că avem un segment de lungime 1 pe care fixăm un reper la poziția p. Segmentul îl bombardăm cu puncte distribuite uniform aleator. Cele care cad la stînga lui p le numim succese, iar cele de la dreapta le numim eșecuri. Iar asta e tot pentru că doriți o imagine vizuală. Dar esența e că avem un proces cu o probabilitate p constantă de succes.

Acum problema e ce se întîmplă dacă repetăm procesul de n ori. De cîte ori numărul de succese va fi un anumit k aflat între 0 și n? Acest calcul se poate face prin formule, fără a mai genera numere aleatoare. Iar ideea problemei este să vedem cît de mare trebuie să fie acel n pentru care numărul de succese k are 90% probabilitate de a cădea într-un anumit interval din jurul lui p*n (interval dat de eroarea maximă stabilită pentru pi).

De-asta spuneam că programul acela de simulare e bun doar ca exercițiu, dar că nu ajută prea mult la rezolvarea problemei. Este o etapă care în final se dovedește utilă doar la înțelegerea fenomenului, nu și la calcule.
1 0
Ok, ok, ok! :)

Promit ca de acum incolo nu mai scriu decat replici "demne" de maxim 2 de nu! :)
0 0
Revin cu o intrebare, intrucat m-am mai documentat pe internet pe tema data si am nimerit peste notiuni de statitica si probabilitati pe care nu le stapanesc.

Intreb si pentru ca explicatia lui zec, desi probabil contine raspunsul la intrebarea mea, e prea tehnica pentru mine.

Exista o relatie intre abaterea (deviatia) standard - sigma - si confidenta de care vorbiti?

Eu am nimerit peste pagini web care abordeaza problema dvs., si se ajunge de obicei la calcul de sigma. Din putinul pe care l-am citit ca notiuni de statistica, inteleg ca asociem 1 sigma unei confidente de 68%, 2 sigma lui 95%, respectiv 3 sigma lui 99%.

Confund cumva conceptul de confidenta cu altceva? Iar daca nu, cu ce as asocia acest 90% despre care vorbiti?
0 0

Da, noțiunea deviației standard e cea relevantă la problema asta. Dar ca să nu folosesc în enunț noțiuni pe care lumea poate nu le cunoaște, am exprimat problema folosind numai noțiuni pe care le-am definit pe loc. De-asta am spus ce înseamnă confidența și tot de-asta contextul din jurul lui „fluctuațiile statistice” e ceva mai umflat decît ar avea nevoie cineva care se pricepe.

Mai mult, pentru a rezolva problema nu e nevoie să știți ce înseamnă deviația standard și nici să aveți cunoștințe de statistică, pentru că se pot face calcule ab initio, fără a folosi noțiuni sau teoreme stabilite de înaintași. În plus, cu deviația statistică se lucrează ușor la distribuțiile gaussiene, or aici distribuția e alta, binomială. Se pot face aproximații, e drept, și de altfel soluția lui zec folosește și ea aproximații. Dar problema mea poate primi și un răspuns exact, acel 706 pe care l-am pomenit deja.

0 0

Asta mi-ar placea si mie sa citesc aici, o rezolvare de la zero, pentru neinitiati, din care sa pot invata mai mult decat simple formule. Nu reusesc sa transpun intr-un model matematic aceasta probabilitate de 90% a preciziei, asa ca va trebui sa astept fie un raspuns al altcuiva, fie explicatia dvs.

Tot ce am deslusit, cu ajutorul internetului, este probabilitatea ca din n puncte k sa fie in interiorul cercului, atunci cand distributia succes/ esec este p/1-p.

Valoarea este n!/[k!(n-k)!]pk(1-p)n-k

Valorea medie a acestui k este intr-adevar np, dar nu stiu cum sa modelez matematic o relatie intre k, eroarea maxim acceptata de 0.1 si probabilitatea de 90% cu care k sa cada in intervalul dorit din jurul lui np.

0 0
Sînteți pe drumul cel bun. Acum știți că din n aruncări, există probabilități diferite pentru a obține exact k intrări în cerc și știți și cît sînt acele probabilități. Pentru fiecare valoare a lui k rezultă o anumită valoare măsurată a lui pi. Dintre valorile măsurate, unele intră în intervalul de eroare cerut, altele nu intră. Proporția celor care intră depinde de n: dacă n e prea mic, atunci prea multe valori vor ieși din interval (distribuție prea largă). Va trebui să găsiți acel n (mai exact cel mai mic n) pentru care cel puțin 90% dintre valorile măsurate ale lui pi cad în intervalul de eroare cerut.
0 0
ceea ce vrea sa explice adijapan este urmatoarea .Sa mergi pe variabila aleatoare adica .De exemplu daca alegis sa arunci de 10 ori ai 11 evenimente posibile in total si anume 0 sageti in cerc sau 1 sageata in cerc si asa mai departe pana la toate 10 in cerc ,fiecare eveniment are o probabilitate de realizare care se calculeaza usor cu dezvoltarea binomului

(p+q)^n in cazul nostru e la puterea 10 .Din numarul asta de 10 incercari nici una nu obtine o evaluare buna a lui pi.Dar daca dai de mai multe ori totalul valorilor in care ai aproximare buna ptr pi dau o sansa de peste 0,9.Adica restul evenimentelor au sansa mica.
1 0

Deci, incercand sa formalizez si folosind valoarea lui pi de 3,14, trebuie sa determinam n-ul minim pentru care, considerand toti ki pentru care 3,04 < 4ki/n < 3,24, se ajunge la Suma[Prob(ki)]>0.9.

Corect?

0 0
Asta e ideea si asa se face.
0 0
Goguv, exact! Acum nu mai rămîn de făcut decît socotelile.
0 0
Slabe sperante sa-mi vina vreo idee, dar o sa mai ruminez problema si zilele urmatoare. Ce mi-a devenit aproape clar e ca nu prea pot fi ajutat de computer atunci cand vine vorba de calculele necesare pentru valori maricele ale lui "n", depasindu-se limitele pe care valorile intregi le pot lua pe PC. Cel putin asa pare a fi in limbajul C, cu care cochetez de ceva saptamani... tot obtin erori, generate cred de calculele de factoriale, atunci cand cresc valoarea lui "n"...

Pesemne ca solutia vine tot din zona matematicii pure...
0 0
Exact din cauza asta am ales eroarea de 0,1. Pentru erori mai mici intervin numere prea mari, unde sînt necesare artificii de calcul sau aproximații.
0 0
O intrebare suplimentara...

 

Am vazut in mesajele dvs. anterioare ca folositi Matlab/Mathworks. V-am spus mai sus ca eu am incropit un program propriu, simplist, in C, pentru calculul acelei sume de densitati de probabilitate. Programul esueaza repede odata cu cresterea lui n in jur de valoarea 40. Esueaza in sensul ca se ajunge la overflow-uri, banuiesc ca atunci cand se evalueaza factorialele numerelor mari necesare in calculul combinarilor de n luate cate k.

Sunt convins ca exista metode mai performante de a implementa operatii matematice cu numere foarte mari ori foarte mici, dar nu am cunostintele necesare sa fac eu insumi asta.

Am descoperit, in schimb, ca in platforme precum Wolfram Alpha ori MathWorks exista functii predefinite (binopdf, de pilda, in MathWorks), capabile sa evalueze densitatile de probabilitate intr-o distributie binomiala pentru valori mari ale lui n si k.

Nu stiu in Wolfram, dar in MathWorks e clar ca se poate face si suma densitatilor de probabilitate care indeplinesc anumite criterii (pentru k intr-un anumit interval).

Intrebarea mea este daca dvs. asa ati facut calculele, cu MathWorks, ori ati reusit sa aduceti formalismul matematic la care am ajuns impreuna la ceva care simplifica simtitor calculele, facandu-le abordabile cu creion si hartie?
0 0
Mai întîi vă mulțumesc, fiindcă nu știam de funcția binopdf din Matlab. Eu am folosit pentru calculul combinărilor funcția nchoosek(n,k) și am adăugat puterile lui p și 1-p de mînă.

www.mathworks.com/help/matlab/ref/nchoosek.html

Funcția nchoosek(n,k) merge pînă puțin mai sus decît formula cu factoriale, pentru că calculează combinările cu o formulă ușor diferită, în care sînt mai puține înmulțiri de făcut și s-ar putea să le facă într-o astfel de ordine încît rezultatele parțiale să explodeze cît mai tîrziu:

https://en.wikipedia.org/wiki/Combination

Acum dacă mă gîndesc bine ar mai fi o idee: calculele să fie făcute mai întîi ca o sumă de logaritmi (în loc de produs de numere) și la final să se aplice o exponențială. În acest caz rezultatul nu mai e exact, ci are precizia de 15–17 cifre obișnuită pentru numerele „reale” din calculator, cele în așa-zisa dublă precizie. Dar asta n-ar fi o problemă în cazul de față, pentru că oricum p-ul e știut doar cu precizie limitată. E doar o idee, încă n-am încercat dacă merge bine.

Suma probabilităților am făcut-o prin însumare simplă, cu calculatorul.
0 0

Mi-am instalat si eu Octave, un inlocuitor, din cate am citit, destul de performant al Matlab-ului si, pe deasupra, si gratuit.

Am incropit urmatorul programel:

p = 0.785;
n = 0;
k = 0;
sum = 0;

do
 

n++;
sum = 0;
jos = ceil (3.04*n/4);
sus = floor (3.24*n/4);
 

for k = jos:sus
sum = sum + binopdf (k,n,p);
endfor
 

until (sum >= 0.9)
n
k
jos
sus
sum


 

Am testat si pentru conditia s>=0.95, dar, atat pe varianta 0.9, cat si pe 0.95, am obtinut rezultate parca prea "rotunde", si anume:

n =  700
k =  567 (completare ulterioara: jos=532, sus=567)
sum =  0.90247

respectiv

n =  1000
k =  810 (completare ulterioara: jos=760, sus=810)
sum =  0.95045

 

As fi curios ce va calculeaza dvs. in Matlab acest cod (daca nu detectati erori majore de logica in el, desigur)...

 

Completare ulterioara:

 

Am incercat mai tarziu si cu confidenta de 0.91, intrigat de cifrele rotunde obtinute pentru n atunci cand am pus conditia cu 0.9, respectiv 0.95.

Am obtinut:

n =  742
k =  601
jos =  564
sus =  601
sum =  0.91063

0 0
Felicitări. Programul pe care l-ați scris mi se pare corect. Nu-l pot rula în Matlab, că nu e scris în același limbaj, dar am rulat programul meu cu parametrii dumneavoastră și mi-a ieșit și mie la fel, n = 700 și n = 1000 pentru cele două confidențe. Faptul că ies numere rotunde probabil e doar o întîmplare (interesantă, e drept).

Nu v-a ieșit n = 706 ca mie pentru că ați folosit o valoare rotunjită a lui pi. Încercați să înlocuiți 0.785 cu pi/4 (probabil puteți scrie chiar „pi” în cod) și analog pentru 3.04 și 3.24.

O observație: ați căutat primul n care îl dă pe pi cu confidența impusă (ceea ce e ce trebuie pentru problemă), dar dacă veți afișa o listă cu confidențele care ies la n-uri mai mari decît cel găsit veți observa că acele confidențe nu cresc monoton, ci au fluctuații. Există un alt n după care toate confidențele sînt mai mari de 90%, dar între cele două n-uri e un interval în care confidențele sînt cînd mai mici, cînd mai mari decît cea impusă. Asta se întîmplă din jocul celor două valori ale lui k. Este, dacă vreți, un fel de zgomot digital.
0 0
Nu stiam ca Octave si Matlab implementeaza sintaxe diferite. Credeam ca creatorii Octave au dorit sa copieze intocmai functiunile din Matlab, dar inteleg, citind in plus, ca MathWorks e un mastodont. Nu prea ai cum sa te pui cu el din postura de entuziast creator de software Open Source.

Intr-adevar, folosind constanta pi am obtinut valorile de mai jos:

n =  706
jos =  537
sus =  572
sum =  0.90126

Una peste alta, multumesc pentru "experienta". Am avut ocazia sa patrund in cateva microuniversuri ce-mi erau anterior complet straine.

 

Later edit:

Daca sunteti cumva curios, iata la adresa de mai jos implementarea din Octave a lui binopdf (nu stiu sigur daca este chiar ultima versiune, dar, oricum, codul sursa al versiunii curente este simplu de accesat). Eu unul mai am de citit multa programare pana la a intelege toata sintaxa de aici:

http://code.metager.de/source/xref/gnu/octave/scripts/statistics/distributions/binopdf.m
0 0
De-asta v-am felicitat. Ați învățat lucruri noi foarte repede. Problema de față a fost doar un pretext, ca de altfel mult probleme pe care le dau aici.

Păcat că ați scris răspunsul sub formă de comentarii. Vi l-aș fi selectat ca cel mai bun.

1 Raspuns

1 plus 0 minusuri

trebuie remarcat ca avem o lege de ditributie de tip Bernoulli(binomiala).Este schema clasica a bilei revenite cu sansa p sa iasa si q sa nu iasa.Sansa unei sageti aruncate sa atinga zona cercului este de p=pi/4 si sa nu iasa este q=1-pi/4.Dispersia unei distrubutii de acest tip este npq unde n reprezinta numarul de incercari si media M(X) este np.VOm aplica teorema lui Cebisev si anume

P(|X-M(X)|<a)>=1-D2(X)/a^2 unde D2(X) este dispersia variabilei X.

Teorema lui Cebisev afirma in fapt ca avem probabilitatea de cel putin 

1-D2(X)/a^2  pentru care variabila X ia valori in intervalul (M(X)-a,M(X)+a)

O sa continui cum trebuie folosita teorema in aceasta situatie.Revin.

Ok continuarea .Deci X se considera ca fiind realizarea a m trageri in cerc .Astfel vom avea |X-M(X)|=|m-np|<a ,deoarece p=Pi/4 si vrem sa evaluam pi putem considera n=4k si se transforma in |m-k*pi|<a impartind cu k obtnem |m/k -pi|<a/k practic a/k este evaluarea dorita pentru pi punanda a/k=1/10^t obtin a=k/10^t.

Acuma calculam evaluarea 1-D2(X)/a^2=1-4kpq/(k^2/10^2t)=

=1-4*(10^2t)pq/k punand conditia >=0,9  trebuie ca 4*(10^2t)pq/k <=1/10 de unde k>=4*102t+1pq..Pentru calcul pq=0,168547.. daca vrem o eroare de o sutime obtinem k>=67419 de unde n=269676.Valorile sunt destul de mari totusi.

Experimentat (2.3k puncte)
editat de
0 0
Pare rezonabil răspunsul. Eu am rezolvat problema numeric pentru abaterea maximă de 0,1 din enunț și mi-a ieșit undeva aproximativ de 100 de ori mai mică decît acel 67419, pe care l-ați calculat pentru abaterea maximă de 0,01. Este firesc ca pentru a obține o precizie de 10 ori mai bună să fie nevoie de 100 de ori mai multe măsurători.

Teorema lui Cebîșev n-o știam. E drept că nici acum n-o înțeleg bine, dar e mai mult decît nimic. Mulțumesc.
...