model fit.lineare;

const
   N  = 8, # numero di misure (da 3 a 10 dischetti) 
           # [per i primi due non c'e' allungamento]
   Nmin = 3,
   pi2 = 9.869604;   

var 
   l[N], t[N],        # dati
   m.disco, m.molla,  # dati 'costanti'
   c.l, m.l,          # parametri retta allungamento
   tau.l, sigma.l,
   c.t, m.t,          # parametri retta periodi
   tau.t, sigma.t,
   mu.l[N], mu.t[N],  # valori legati deterministicamente alle masse
   k, g;              # costante molla e accelerazione gravita'

data in "molla.dat.S";
inits in "molla.in";

{
   # l Vs m
   for (i in 1:N) {
      mu.l[i] <- c.l + m.l * (m.molla + (Nmin-1 + i) * m.disco);
      l[i] ~dnorm(mu.l[i], tau.l);
   }
   c.l ~ dnorm(0.0, 1.0E-4);
   m.l ~ dnorm(0.0, 1.0E-4);

   tau.l ~ dgamma(1.0E-3, 1.0E-6);
   sigma.l <- 1/sqrt(tau.l);

   # t vs sqrt(m)
   for (i in 1:N) {
      mu.t[i] <- c.t + m.t * sqrt(m.molla + (Nmin-1 + i) * m.disco);
      t[i] ~dnorm(mu.t[i], tau.t);
   }
   c.t ~ dnorm(0.0, 1.0E-4);
   m.t ~ dnorm(0.0, 1.0E-4);

   tau.t ~ dgamma(1.0E-3, 1.0E-5);
   sigma.t <- 1/sqrt(tau.t);

   # k e g
   k <- 4*pi2 / (m.t*m.t)
   g <- m.l * k 
}  
