#---- bozza programma 

l <- 1.998 - 0.085  # lunghezza piano in m

t.disc1 <- function(alpha, g, mu.d) sqrt (2*l / (g*( sin(alpha) -mu.d*cos(alpha))  ) )

dati <- read.table("file_dati_senza_header.txt")
summary(dati)

b <- dati$V1
if(b[1] > 2) b <- b/100      # convertiamo in metri se erano cm
h <- dati$V2
if(h[1] > 2) h <- h/100      # convertiamo in metri se erano cm
td <- dati$V3

alpha <- atan(h/b)

# un primo sguardo:
plot(alpha, td)


vf <- l/td*2    # vf = 2 * v_media, assumendo moto accelerato
mu.d.dato.g <- trovarsi.la.formula.di.mu.d.in.funzione.di.g.vf.etc
print(mu.d.dato.g)


print(alpha*180/pi)

plot(alpha, td, xlim=c(0.4,pi/2), ylim=c(0.5,2.0))

plot(alpha, td, xlim=c(0.4,pi/2), ylim=c(0.5,2.0))
# curva senza attrito
alphas <- seq(min(alpha)*0.9, pi/2, len=50) 
points(alphas, t.disc1(alphas, 9.8, 0), ty='l')
#ipotizziamo alcuni coefficienti di attrito
points(alphas, t.disc1(alphas, 9.8, 0.1), ty='l', col='yellow')
points(alphas, t.disc1(alphas, 9.8, 0.2), ty='l', col='orange')
points(alphas, t.disc1(alphas, 9.8, 0.3), ty='l', col='red')
points(alphas, t.disc1(alphas, 9.8, 0.4), ty='l', col='brown')


# somma dei quadrati degli scarti fra
# dati sperimentali e andamento teorico
sq <- function(x) {
   return(sum(
              (td - t.disc1(alpha, x[1], x[2]))^2
             )
         )
}

# troviamo i parametri che minimizzano la somma dei quadrati
fit.mq <-  nlm(sq, c(10., 0.))
g.mq    <- fit.mq$estimate[1]
mu.d.mq <- fit.mq$estimate[2]

plot(alpha, td, main='Piano inclinato con attrito',
     xlim=c(min(alpha)*0.95, max(alpha)*1.1), xlab='alpha', ylab='t')
alpha.th <- seq(min(alpha)*0.95,  max(alpha)*1.1, len=50)
points(alpha.th, t.disc1(alpha.th, g.mq, mu.d.mq),ty='l', col='blue')
legend("topright", c("punti sperimentali","fit"),
           lty=c(0,1), pch=c(1,-1), col=c("black","blue"))

# Per prendere, eventualmente, un sottinsieme dei dati:
alpha.min <- 0     # sostituire con valori che interessano
alpha.max <- pi/2  # idem
sel <- (alpha > alpha.min) & (alpha < alpha.max)
alpha.sel <- alpha[sel]
td.sel    <- td[sel]

# etc., quindi rifare le analisi con i dati selezionati
