Usa in R ("a scatola nera") i seguenti comandi per generare un'equazione polinomiale  a[1] + a[2]·x + a[3]·x² = 0  e ottenerne le soluzioni. Prova a risolvere la stessa equazione "a mano" e controlla se ottieni le stesse soluzioni. Sotto sono presentati anche due esempi d'uso (per -18-3x-2x² si ottiene che non ha soluzioni).

# 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