Cardano, verso la metà del sedicesimo secolo, quando era ormai nota la soluzione dell’equazione di grado tre, pubblica una soluzione dell’equazione del quarto grado, scrivendo che fu elaborata, dietro sua richiesta, da Luigi Ferrari.
x^4 + a*x^3 + b*x^2 + c*x +d=0
Tale equazione,eguagliata ad y, corrisponde alla parabola di grado quattro, nella forma piana. La parabola cubica può presentare due flessi, ed ha una forma analoga alla parabola comune, ovvero ricorda una collina con un eventuale avvallamento. Può pertanto presentare due massimi relativi, di altezza uguale oppure disuguale, con un minimo relativo compreso tra i due. Oppure può presentare un unico massimo, senza flessi. O ancora un unico massimo più un flesso orizzontale.
Di conseguenza, nel primo caso, può non avere alcuna intersezione con l’asse x, se si trova tutta al di sotto (4 radici complesse), oppure può avere un unico punto di contatto, con asse x tangente (2 radici reali coincidenti e 2 complesse), oppure può presentare due punti di tangenza (nel caso le cime abbiano la stessa altezza: 2 coppie di radici reali coincidenti). Altrimenti può essere tangente all’asse x nel picco più basso, tagliando l’altro, oppure l’asse x può tagliare entrambi i picchi (4 radici reali), ancora può essere tangente al minimo relativo (2 radici reali coincidenti e 2 reali distinte). Ovvero oppure l’asse x può trovarsi sotto l’avvallamento (2 radici reali coincidenti e 2 complesse).
Nel secondo e terzo caso o non ci saranno soluzioni reali, o ve ne saranno al massimo due; con l’asse x coincidente con la tangente sul colmo si avranno 4 radici reali coincidenti.
In particolare nel terzo caso, se l’asse x coincide con la tangente del flesso, si avranno due soluzioni reali, consistenti in una radice più tre radici coincidenti.
La formula generale della parabola cubica è:
y= a4*x^4+a3*x^3+a2*x^2+a1*x+a0
Se il coefficiente di quarto grado è negativo, risulta rovesciata.
Consideriamo l’equazione, supponendo di conoscerne le radici x1,x2,x3,x4:
x^4 + a*x^3 + b*x^2 + c*x +d=0
potremmo allora riscrivere l’equazione come:
(x-x1)*(x-x2)*(x-x3)*(x-x4)=0
Dal confronto si ricava:
a=-(x1+x2+x3+x4)
b= x1*x2+x1*x3+x1*x4+x2*x3+x2*x4+x3*x4
c=-(x1*x2*x3+x2*x3*x4+x3*x4*x1+x4*x1*x2)
d= x1*x2*x3*x4
La soluzione presentata da Cardano nel suo trattato è piuttosto laboriosa.
Innanzitutto viene ridotta l’equazione alla forma:
xx^4 + p*xx^2 + q*xx + r = 0
dove xx = x+l :
(x+l)^4 + p*(x+l)^2 + q*(x+l) + r = 0
che sviluppata diventa:
x^4 + 4*l*x^3 + (6*l^2+p)*x^2 + (4*l^3+2*p*l+q)*x + l^4+p*l^2+q*l+r=0
confrontiamola con:
x^4 + a*x^3 + b*x^2 + c*x +d=0
risulta:
l=a/4
p=b-6*l^2
q=c-4*l^3-2*p*l
r=d-l^4-p*l^2-q*l
Ritorniamo all’equazione semplificata:
xx^4 + p*xx^2 + q*xx + r = 0
Se q=0 l’equazione diventa di secondo grado in xx^2.
Se r=0, una radice è xx=0 e il problema si riduce all’equazione di grado 3:
xx^3 + p*xx+ q = 0
Altrimenti, per procedere oltre, si deve costruire a sinistra un quadrato perfetto:
xx^4 + 2*(p /2)*xx^2= - q*xx - r
xx^4 + 2*(p /2)*xx^2 + (p/2)^2= - q*xx - r + p^2/4
(xx^2 + p/2)^2= - q*xx - r + p^2/4
A questo punto occorre calcolare come variano i membri introducendo la variabile y:
(xx^2 + p/2+ y )^2 = (xx^2 + p/2)^2+y^2+2*y*(xx^2 + p/2)
(xx^2 + p/2+ y )^2 =y^2+2*y*(xx^2 + p/2) - q*xx - r + p^2/4
(xx^2 + p/2+ y )^2 = 2*y*xx^2 - q*xx - r+p^2/4+p*y+y^2
Vogliamo ora prefissare y in modo che il membro di destra sia pure un quadrato perfetto: per averlo basta imporre che il delta dell’equazione di secondo grado in xx sia nullo:
2*y*xx^2 - q*xx - r+p^2/4+p*y+y^2=0 ha radici coincidenti per:
delta = q^2-8* y*( - r+p^2/4+p*y+y^2) = 0
y^3+p*y^2+( p^2/4-r )*y -q^2/8 = 0
La soluzione y dell’equazione di terzo grado è fornita da:
by=p^2/4-r
cy=-q^2/8
py= by-p^2/3
qy= cy-by*p/3+2*p^3/27
dy=(py/3)^3+(qy/2)^2
y=2*sqr(-py/3)*cos(acs(-qy/2/sqr(-py^3/27))/3)-p/3 se dy<0
y=sgn(sqr(dy)-qy/2)*abs(sqr(dy)-qy/2)^(1/3)-sgn(sqr(dy)+qy/2)*abs(sqr(dy)+qy/2)^(1/3)-p/3 se dy>=0
Nota: si è applicata la formula valida per y^3+ay*y^2+by*y+cy=0
py= by-ay^2/3
qy= cy-by*ay/3+2*ay^3/27
dy=(py/3)^3+(qy/2)^2
y0=2*sqr(-py/3)*cos(acs(-qy/2/sqr(-py^3/27))/3)-ay/3 !dy<0
y0=sgn(sqr(dy)-qy/2)*abs(sqr(dy)-qy/2)^(1/3)-sgn(sqr(dy)+qy/2)*abs(sqr(dy)+qy/2)^(1/3)-ay/3 !dy>=0
Con il valore di y così calcolato, il polinomio di destra può essere allora scomposto:
2*y*xx^2 - q*xx - r+p^2/4+p*y+y^2=(v*xx-u)^2=v^2*xx^2-2*v*u*xx+uu^2
Per cui
deve risultare:
2*y= v^2
- q=-2*v*u
- r+p^2/4+p*y+y^2= uu^2
Una delle tre eguaglianze è vincolata alle altre due per la condizione imposta a y. Sr ne desume:
v=sqr(2*y) se y positivo
Se y è negativo, v è immaginario: si suppone che con y negativo non ci siano soluzioni reali.
Nota: y non può essere nullo se q non è nullo
u=q/2/v=q/sqr(8*y)
Consideriamo ancora l’equazione di grado quarto:
(xx^2 + p/2+ y )^2=(v*xx-u)^2
(xx^2 + p/2+ y )^2=( sqr(2*y)*xx - q/sqr(8*y) )^2
Applicando la radice ai due membri avremo due casi:
xx^2 + p/2 + y =-sqr(2*y)*xx + q/sqr(8*y)
xx^2 + sqr(2*y)*xx + p/2+y-q/sqr(8*y) = 0 delta=2*y-4*( p/2+y-q/sqr(8*y) )
dx1= y/2 - p/2-y+q/sqr(8*y) >0 per avere soluzioni reali distinte
x1=-sqr(2*y)/2-sqr(dx1)
x2=-sqr(2*y)/2+sqr(dx1)
oppure:
xx^2 + p/2+ y = sqr(2*y)*xx - q/sqr(8*y)
xx^2 - sqr(2*y)*xx + p/2+y+q/sqr(8*y) = 0 delta=2*y-4*( p/2+y+q/sqr(8*y) )
dx2= y/2 - p/2-y-q/sqr(8*y) >=0 per avere soluzioni reali
x3= sqr(2*y)/2-sqr(dx1)
x4= sqr(2*y)/2+sqr(dx1)
A questi valori occorre poi sottrarre a/4.
In conclusione, nel caso generale, le radici del polinomio:
x^4 + a*x^3 + b*x^2 + c*x +d
sono fornite dalla formula:
p=b-3*a^2/8
q=c-a^3/16-p*a/2
by=p^2/4-d+a^4/256+p*a^2/16+q*a/4
cy=-q^2/8
py= by-p^2/3
qy= cy-by*p/3+2*p^3/27
dy= (py/3)^3+(qy/2)^2
if dy<0 then y=2*sqr(-py/3)*cos(acs(-qy/2/sqr(-py^3/27))/3)-p/3
if dy>=0 then y=sgn(sqr(dy)-qy/2)*abs(sqr(dy)-qy/2)^(1/3)-sgn(sqr(dy)+qy/2)*abs(sqr(dy)+qy/2)^(1/3)-p/3
dx1= y/2-p/2-y+q/sqr(8*y)
dx2= y/2 - p/2-y-q/sqr(8*y)
if dx1>=0 then x1=-sqr(2*y)/2-sqr(dx1)-a/4
if dx1>=0 then x2=-sqr(2*y)/2+sqr(dx1)-a/4
if dx2>=0 then x3= sqr(2*y)/2-sqr(dx1)-a/4
if dx2>=0 then x4= sqr(2*y)/2+sqr(dx1)-a/4
La formula può essere riscritta:
by=(b-3*a^2/8)^2/4-d+a^4/256+(b-3*a^2/8)*a^2/16+(c-a^3/16-(b-3*a^2/8)*a/2)*a/4
cy=-(c-a^3/16-(b-3*a^2/8)*a/2)^2/8
py= by-(b-3*a^2/8)^2/3
qy= cy-by*(b-3*a^2/8)/3+2*(b-3*a^2/8)^3/27
dy= (py/3)^3+(qy/2)^2
if dy<0 then y=2*sqr(-py/3)*cos(acs(-qy/2/sqr(-py^3/27))/3)-(b-3*a^2/8)/3
if dy>=0 then y=sgn(sqr(dy)-qy/2)*abs(sqr(dy)-qy/2)^(1/3)-sgn(sqr(dy)+qy/2)*abs(sqr(dy)+qy/2)^(1/3)-(b-3*a^2/8)/3
dx1= y/2-(b-3*a^2/8)/2-y+(c-a^3/16-(b-3*a^2/8)*a/2)/sqr(8*y)
dx2= y/2-(b-3*a^2/8)/2-y-(c-a^3/16-(b-3*a^2/8)*a/2)/sqr(8*y)
if dx1>=0 then x1=-sqr(2*y)/2-sqr(dx1)-a/4
if dx1>=0 then x2=-sqr(2*y)/2+sqr(dx1)-a/4
if dx2>=0 then x3= sqr(2*y)/2-sqr(dx1)-a/4
if dx2>=0 then x4= sqr(2*y)/2+sqr(dx1)-a/4
Nel 1500 i calcoli erano fatti a mano con carta e penna (d’oca) e questa scoperta fa più una applicazione della logica fine a se stessa, che una tecnica volta a fini pratici. Tuttavia, senza l’opera di questi algebristi, sarebbe stato impensabile il trattato sulla geometria che poi elaborò Cartesio.
L’algebra e la geometria sono strettamente connesse, per questo i programmi di design che permettono di intervenire anche sfruttando l’algebra, come il linguaggio GDL, sono più ricchi di applicazioni, rispetto quelli che utilizzano soltanto l’interfaccia intuitiva.
Per studiare la forma di una parabola di grado 4 occorre ricercarne i punti notevoli:
y= a4*x^4+a3*x^3+a2*x^2+a1*x+a0
La derivata prima eguagliata a zero fornisce la posizione di massimi e minimi relativi:
dy/dx= 4*a4*x^3+3*a3*x^2+2*a2*x+a1=0
x^3+3*a3/4/a4*x^2+2*a2/4/a4*x+a1/4/a4=0
ax=3*a3/4/a4
bx=2*a2/4/a4
cx=a1/4/a4
px= bx-ax^2/3
qx= cx-bx*ax/3+2*ax^3/27
dx=(px/3)^3+(qx/2)^2
x0=2*sqr(-px/3)*cos(acs(-qx/2/sqr(-px^3/27))/3)-ax/3 !dx<0
x0=sgn(sqr(dx)-qx/2)*abs(sqr(dx)-qx/2)^(1/3)-sgn(sqr(dx)+qx/2)*abs(sqr(dx)+qx/2)^(1/3)-ax/3 !dx>=0
bbx= ax+x0
ccx=-cx/x0
ddx=bbx^2/4-ccx
if ddx>0 then x1=-bbx/2-sqr(ddx)
if ddx>=0 then x2=-bbx/2+sqr(ddx)
Una soluzione x0 esiste sempre.
La derivata seconda permette di trovare i due flessi (se esistono):
y”= 12*a4*x^2+6*a3*x^2+2*a2 = 0
df = 9*a3^2-24*a4*a2
if df>=0 then xf1=-a3/a4/4-sqr(df)/12/a4
if df>=0 then xf2=-a3/a4/4+sqr(df)/12/a4