Usa in R ("a scatola nera") i seguenti comandi per generare un'equazione polinomiale
# Ricopia la riga set.seed(35); .. e metti al posto di 35 un numero intero qualunque. # Ottieni 3 numeri a[1],a[2],a[3] e le soluzioni di a[1] + a[2]*x + a[3]*x^2 = 0 sol <- function(a) if(Im(polyroot(a)[1])!=0) print("senza soluzioni") else Re(polyroot(a)) set.seed(150); a <- floor(runif(3)*40-20); a; sol(a) [1] -18 -3 -2 [1] "senza soluzioni" set.seed(35); a <- floor(runif(3)*40-20); a; sol(a) [1] 14 -20 2 [1] 0.7573593 9.2426407
L'insegnante può assegnare esercizi diversi ai vari alunni dando a ciascuno di essi un N particolare con cui battere set.seed(N).
Per commenti: fuzioni polinomiali neGli Oggetti Matematici.
Le soluzioni dell'ultima equazione a ← c(14,-20,2) verificate graficamente:
f <- function(x) a[1] + a[2]*x + a[3]*x^2 plot(f,-1,10); abline(v=axTicks(1), h=axTicks(2),lty=3); abline(h=0) # Il calcolo richiesto "a mano" realizzato automaticamente: D <- a[2]^2-4*a[1]*a[3]; if(a[3]==0) print(-a[1]/a[2]) else {if(D>0) print(( -a[2]+c(-1,1)*sqrt(D))/(2*a[3]) ) else print ("0 sol.")} [1] 0.7573593 9.2426407 # Per la prima equazione esemplificata, a <- c(-18,-3,-2): set.seed(150); a <- floor(runif(3)*40-20) D <- a[2]^2-4*a[1]*a[3]; if(a[3]==0) print(-a[1]/a[2]) else {if(D>0) print(( -a[2]+c(-1,1)*sqrt(D))/(2*a[3]) ) else print ("0 sol.")} [1] "0 sol." # nel caso in cui a <- c(-18, -3, 0) a[3] <- 0 D <- a[2]^2-4*a[1]*a[3]; if(a[3]==0) print(-a[1]/a[2]) else {if(D>0) print(( -a[2]+c(-1,1)*sqrt(D))/(2*a[3]) ) else print ("0 sol.")} [1] -6