|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Sep 2001
Città: COMO, sul maestoso LARIO
Messaggi: 248
|
C++: calcolo numerico e funzioni statistiche
Ciao gente!
Qualche tempo fa vi avevo chiesto una mano per il calcolo dell'area sottesa dalla distribuzione normale standardizzata di probabilità, qui: http://forum.hwupgrade.it/showthread...hreadid=328371 Risolto quel problema, se ne presentano altri più incasinati, ma simili: sevo sempre trovare una formula di approssimazione per le probabilità delle distribuzioni t-Student, F-Fischer, Chi-quadro... il problema è che ognuna è una FAMIGLIA di distribuzioni che dipende da 1 o da 2 parametri (i gradi di libertà)... e il guaio è proprio trovare un sistema (magari analogo a quello che ho usato nel thread di sopra) per coprire la più ampia casistica possibile col minor numero di righe di codice (ossia senza costringermi a ricopiare le matrici coi valori numerici già calcolati......) Grazie!!!!
__________________
Athlon FX-53 / MSI K8N Neo2 Platinum / Corsair TwinX 1024 XL / 2 x WesternDigital Raptor 74GB - RAID 0 / Gainward PowerPack! 2200 GeF. 6800 256MB / Pioneer DVR-108 / LiteOn LTR-52327S / Enermax 550W / HP P1100 21" CRT |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Se devi trovare l'area sottesa (l'integrale del modulo) da quelle formule ci sono tanti modi...
Sicuramente esistono metodi di integrazione numerica che permettono di calcolare il risultato... E' questo che ti serve...fammi sapere che ti spiego 3 metodi.... |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Sep 2001
Città: COMO, sul maestoso LARIO
Messaggi: 248
|
Per il calcolo dell'ERF standardizzata ho utilizzato il teorema di integrazione per serie applicato all'equazione della gaussiana, che è un'esponenziale. Ma l'espressione delle distribuzioni che ho citato prima dovrebbero richiedere la conoscenza delle trasformate, che in analisi B non ho fatto.
Se aggiungi il "dettaglio" che non ho l'esame di calcolo numerico, l'unico metodo di approssimazione che conosco (x gli integrali definiti) è proprio l'integrazione per serie. Ti sarei grato se mi dicessi almeno qualche altra strategia d'integrazione numerica implementabile in C++. tnx
__________________
Athlon FX-53 / MSI K8N Neo2 Platinum / Corsair TwinX 1024 XL / 2 x WesternDigital Raptor 74GB - RAID 0 / Gainward PowerPack! 2200 GeF. 6800 256MB / Pioneer DVR-108 / LiteOn LTR-52327S / Enermax 550W / HP P1100 21" CRT |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Si basano tutti e 3 sullo stesso principio...
Ciò partizionare una porzione dell'asse X in N parti... Supponiamo di voler calcolare l'integrale fra 10 e -15 di una gaussiana centrata in 0 (che d'ora in poi chiamerò f)... I tre metodi che conosco (più probabile dire che mi ricordo) danno 3 approssimazioni sempre migliori... - metodo dei rettangoli - metodo dei trapezi - metodo delle parabole Metodo dei rettangoli s = -15 Suddividi l'asse X in parti di ampiezza a = (10+15)/N... Somma per i che va da 0 a N-1 di (f(s + i*a)*a)... Immaginati di congiungere di tracciare una parallela all'asse Y in ogni punto della suddivisione dell'asse X... Quando incontri la curva tracci un segmento di retta fino a quando non raggiungi la parallela successiva... Ecco...in pratica non si fa altro che calcolarsi l'area dei rettangoli che ottieni in qesto modo... E' un'approssimazione grossolana, ma per N che tende ad infinito tende all'integrale... Metodo dei trapezi Come prima, ma traccia una retta fra il punto di incorntro di una parallela con la retta ed il punto di incontro con la retta della parallela successiva... In pratica ottieni dei trapezi... Somma per i che va da 0 a N-1 di ((f(s + i*a) + f(s + (i+1)*a))*a/2)...che è la sommatoria dell'area di quei trapezi... Metodo delle parabole Questo me lo ricordo meno, ma si tratta di calcolare l'aria sottesa dalla parabola che passa per tre punti di incontro successivi di parallele e curva... C'è una formula ben precisa per trovarsi la parabola che passa per tre punti, ma non me la ricordo...stessa cosa per l'area sottesa da una parabola... Ovviamente il più preciso è il emtodo delle parabole...ma se N è abbastanza grande allora sono pressochè equivalenti... |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Sep 2001
Città: COMO, sul maestoso LARIO
Messaggi: 248
|
Ok, provo a fare qualche tentativo in questa direzione.
Nel frattempo, più semplicemente, non sai se posso trovare su qualche sito una libreria apposita (C++) con le funzioni di probabilità già implementate (finora non ho trovato nulla del genere)?
__________________
Athlon FX-53 / MSI K8N Neo2 Platinum / Corsair TwinX 1024 XL / 2 x WesternDigital Raptor 74GB - RAID 0 / Gainward PowerPack! 2200 GeF. 6800 256MB / Pioneer DVR-108 / LiteOn LTR-52327S / Enermax 550W / HP P1100 21" CRT |
|
|
|
|
|
#6 |
|
Bannato
Iscritto dal: Jul 2000
Città: Malo (VI)
Messaggi: 1000
|
Purtroppo non sono piu' riuscito a trovare il libro di cui parlavo nell'altro thread (ma porc...
Se non hai trovato niente e' perche' sei pigro Prova a cercare numerical integration c++ library con google... Io ho trovato "Numerical Recipes", c'e' anche una versione on-line (http://www.ulib.org/webRoot/Books/Nu.../bookcpdf.html) il quarto capitolo (scaricabile in pdf) e' quello che riguarda l'integrazione. Se non sbaglio e' possibile scaricare anche del codice gia' pronto ( in C pero', la versione C++ la puoi solo comperare |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Jan 2000
Messaggi: 551
|
Qui c'è esattamente quello che cerchi,ma non so quanto il tutto sia compatibile con il tuo compilatore.
http://netlib.org/cephes/ Un saluto a Cionci e Marco |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Sep 2001
Città: COMO, sul maestoso LARIO
Messaggi: 248
|
Grazie a tutti per l'aiuto. Ora devo dare la precedenza a qualche altro esame... appena ho tempo per rimettermi sotto con quel programma di statistica ci risentiamo!
bye
__________________
Athlon FX-53 / MSI K8N Neo2 Platinum / Corsair TwinX 1024 XL / 2 x WesternDigital Raptor 74GB - RAID 0 / Gainward PowerPack! 2200 GeF. 6800 256MB / Pioneer DVR-108 / LiteOn LTR-52327S / Enermax 550W / HP P1100 21" CRT |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 10:02.



















