| 
 | |||||||
| 
 | 
|  | 
|  | 
|  | Strumenti | 
|  18-10-2002, 02:06 | #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 | 
|   |   | 
|  18-10-2002, 10:02 | #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.... | 
|   |   | 
|  18-10-2002, 15:45 | #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 | 
|   |   | 
|  18-10-2002, 17:02 | #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... | 
|   |   | 
|  18-10-2002, 18:26 | #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 | 
|   |   | 
|  18-10-2002, 21:38 | #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...   ), comunque cionci ti ha dato le stesse indicazioni. 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  ) | 
|   |   | 
|  01-11-2002, 05:59 | #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   | 
|   |   | 
|  02-11-2002, 13:51 | #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:38.









 
		 
		 
		 
		









 
  
 



 
                        
                        










