Algoritmo di Sturm

L'algoritmo di Sturm è un algoritmo usato per calcolare il numero di radici reali di un polinomio a coefficienti reali che cadono in un determinato intervallo (a,b).

Algoritmo

Sia f(x) un polinomio di grado n, definiamo la successione di polinomi

{f1(x)=f(x)f2(x)=f′(x)fi(x)=−{fi−2(x)modfi−1(x)}∀i=3,2,...,m

dove con A(x)modB(x) si indica il polinomio resto nella divisione del polinomio A(x) per il polinomio B(x).

Il numero di distinti zeri reali di f(x) nell'intervallo [a,b], con f(a)≠0 e f(b)≠0, è uguale a V(a)−V(b), dove V(x) indica il numero di volte che gli elementi della successione f1(x),f2(x)...fm(x) cambiano di segno, ignorando gli zeri.

Dimostrazione

La successione {fi(x)}i=1,2,...,m è una sequenza di Sturm, abbiamo che

f(x)=(x−z1)μ1(x−z2)μ2...(x−zr)μrg(x)

dove zi è uno zero reale di f(x) con molteplicità μi mentre g(x) è un polinomio senza radici reali. Per cui

f′(x)f(x)=f2(x)f1(x)=∑k=1rμkx−zk+g(x)

considerando che le molteplicità sono tutte positive si ottiene

Iabf2(x)f1(x)=r

dove si è usato l'indice di Cauchy, il teorema sulle sequenze di Sturm afferma

Iabf2(x)f1(x)=V(a)−V(b)

da cui la tesi.

Collegamenti esterni

  Portale Matematica: accedi alle voci di Wikipedia che trattano di Matematica