TSVDUnfoldExample.C: Data unfolding using Singular Value Decomposition | Math tutorials | chi2test.C: Example to use chi2 test for comparing two histograms |
// tutorial illustrating the use of TMath::Binomial // can be run with: // root > .x binomial.C // root > .x binomial.C+ with ACLIC //Author: Federico Carminati #include <TMath.h> #include <TRandom.h> void binomialSimple() { // // Simple test for the binomial distribution // printf("\nTMath::Binomial simple test\n"); printf("Build the Tartaglia triangle\n"); printf("============================\n"); const Int_t max=13; Int_t j; for(Int_t i=0;i<max;i++) { printf("n=%2d",i); for(j=0;j<(max-i);j++) printf(" "); for(j=0;j<i+1;j++) printf("%4d",TMath::Nint(TMath::Binomial(i,j))); printf("\n"); } } void binomialFancy() { Double_t x; Double_t y; Double_t res1; Double_t res2; Double_t err; Double_t serr=0; const Int_t nmax=10000; printf("\nTMath::Binomial fancy test\n"); printf("Verify Newton formula for (x+y)^n\n"); printf("x,y in [-2,2] and n from 0 to 9 \n"); printf("=================================\n"); TRandom r; for(Int_t i=0; i<nmax; i++) { do { x=2*(1-2*r.Rndm()); y=2*(1-2*r.Rndm()); } while (TMath::Abs(x+y)<0.75); //Avoid large cancellations for(Int_t j=0; j<10; j++) { res1=TMath::Power(x+y,j); res2=0; for(Int_t k=0; k<=j; k++) res2+=TMath::Power(x,k)*TMath::Power(y,j-k)*TMath::Binomial(j,k); if((err=TMath::Abs(res1-res2)/TMath::Abs(res1))>1e-10) printf("res1=%e res2=%e x=%e y=%e err=%e j=%d\n",res1,res2,x,y,err,j); serr +=err; } } printf("Average Error = %e\n",serr/nmax); } void binomial () { binomialSimple(); binomialFancy(); } binomial.C:1 binomial.C:2 binomial.C:3 binomial.C:4 binomial.C:5 binomial.C:6 binomial.C:7 binomial.C:8 binomial.C:9 binomial.C:10 binomial.C:11 binomial.C:12 binomial.C:13 binomial.C:14 binomial.C:15 binomial.C:16 binomial.C:17 binomial.C:18 binomial.C:19 binomial.C:20 binomial.C:21 binomial.C:22 binomial.C:23 binomial.C:24 binomial.C:25 binomial.C:26 binomial.C:27 binomial.C:28 binomial.C:29 binomial.C:30 binomial.C:31 binomial.C:32 binomial.C:33 binomial.C:34 binomial.C:35 binomial.C:36 binomial.C:37 binomial.C:38 binomial.C:39 binomial.C:40 binomial.C:41 binomial.C:42 binomial.C:43 binomial.C:44 binomial.C:45 binomial.C:46 binomial.C:47 binomial.C:48 binomial.C:49 binomial.C:50 binomial.C:51 binomial.C:52 binomial.C:53 binomial.C:54 binomial.C:55 binomial.C:56 binomial.C:57 binomial.C:58 binomial.C:59 binomial.C:60 binomial.C:61 binomial.C:62 binomial.C:63 |
|