#include #include #include #include main () { int rm1_max, N1, i, Nt, eps; double Veff, Veff_t, abs_rs1, abs_rs2,V_espace,xs[Nt], ys[Nt], zs[Nt], xdiff; srand(time(NULL)); Nt=100; rm1_max=10; V_espace=2.0*rm1_max*2.0*rm1_max*4.0*rm1_max; /* eps est la largeur du recouvrement; quand eps=2rm il y a recouvrement total, et pour eps=0 il ny a pas de recouvrement*/ /*eps peut varier de 0 à 2rm1_max*/ eps=0; N1=0; xdiff=4.0*rm1_max-eps; for (i=0; i<=Nt; ++i){ /* on lance les "cailloux" dans le volume totale*/ xs[i]=-2.0*rm1_max + (((double) rand() / RAND_MAX) * 4.0 * rm1_max); ys[i]=-rm1_max + (((double) rand() / RAND_MAX) * 2.0 * rm1_max); zs[i]=-rm1_max + (((double) rand() / RAND_MAX) * 2.0 * rm1_max); /* on retranche pour que le zero soit au centre du systeme*/ /* abs_rs1 est la distance entre la source et lhydrophone 1 qui se trouve initialement aux coordonnees x=-rm1_max, y=rm1_max et z=rm1_max*/ /*au fur et a mesure que eps augmente, le centre des deux hydrophones se déplace de +eps/2 pour H1 en -rm1_max et -eps/2 pour H2 en +rm1_max*/ abs_rs1=sqrt((xs[i]-(-rm1_max+(eps/2.0)))*(xs[i]-(-rm1_max+(eps/2.0)))+ys[i]*ys[i]+zs[i]*zs[i]); abs_rs2=sqrt((xs[i]-rm1_max-(eps/2.0))*(xs[i]-rm1_max-(eps/2.0))+ys[i]*ys[i]+zs[i]*zs[i]); /* Simple signal*/ /*if (abs_rs1<=rm1_max && abs_rs2<=rm1_max)*/ {N1=N1+1;} Veff=V_espace*N1/Nt; printf("N1: %d \n", N1); printf("V1eff %lf \n", Veff); } }