next up previous
Next: Un altro algoritmo instabile Up: Gli errori Previous: Equazioni differenziali

Radici di un polinomio

Anche calcolare le radici di un polinomio può essere un problema fortemente malcondizionato. Ad esempio il polinomio

x10-10x9+45x8-120x7+210x6-252x5+210x4-120x3+45x2-10x+1

ha dieci radici coincidenti in x=1. Tuttavia basta perturbare il termine noto 1 con un piccolissimo 10-10 perché le radici si spostino di circa 0.1 ciascuna, quindi di un fattore un miliardo rispetto alla pertubazione!

Bisogna anche stare attenti alla stabilità degli algoritmi utilizzati. Per il caso semplice dell'equazione di secondo grado ax2+bx+c=0, la classica formula $x_{1,2}=(-b\pm\sqrt\Delta)/2a$ può provocare cancellazione, quando $b^2 \approx b^2-4ac$. In questo caso va ricavata la radice che non crea cancellazione, e trovare l'altra in base alla relazione ax1x2=c. Vedere per un esempio il sorgente quadratic.c.



Daniele Finocchiaro
1998-11-13