Sei sulla pagina 1di 1

Applicazioni delle derivate: metodo delle

tangenti
Applicazioni numeriche delle derivate: soluzione numerica delle equazioni
Una soluzione di un’equazione

f(x) = 0

è un numero x tale che f(x) = 0.

Si parla di soluzione numerica di un’equazione f(x) = 0 approssimata alla n-esima cifra decimale
quando con qualche metodo si conoscono le prime n cifre decimali di una soluzione x
dell’equazione data.

Fra i metodi più usati per il calcolo delle soluzioni numeriche citiamo il metodo delle tangenti.

Metodo delle tangenti


Il metodo delle tangenti si basa sul principio fondamentale di tutta la teoria delle derivate: la
sostituzione di una curva con una linea retta, la tangente, nelle immediate vicinanze del punto di
contatto.

Supponiamo di conoscere un’approssimazione


iniziale x 0 della soluzione x = x ⋆ di f(x) = 0,
magari individuata visualmente, disegnando con
R il grafico di f e valutando x 0 a occhio, come
ascissa del punto di intersezione del grafico con
l’asse X .

Poiché x 0 non è esattamente x ⋆ , ma gli è vicino, i due punti (x 0 , f(x 0 )) e (x ⋆ , f(x ⋆ )) = (x ⋆ , 0)


del grafico di f sono vicini, e in questa piccola zona possiamo sostituire al grafico di f la retta
tangente r 1 nel punto (x 0 , f(x 0 ))

La retta ha equazione

y = r 1 (x) = f(x 0 ) + f ′ (x 0 ) (x − x 0 )

Possiamo sostituire all’equazione f(x) = 0 l’equazione

r 1 (x) = f(x 0 ) + f ′ (x 0 ) (x − x 0 ) = 0

La soluzione (supposto f ′ (x 0 ) ≠ 0) è

f(x 0 )
x1 = x0 − ′
f (x 0 )

Il valore x 1 sarà di norma una (prima) approssimazione di x ⋆ migliore dell’iniziale x 0 .

Si può poi procedere calcolando una seconda approssimazione

f(x 1 )
x2 = x1 − ′
f (x 1 )

(dove si suppone f ′ (x 1 ) ≠ 0) e una terza ancora e così via (supponendo f ′ (…) ≠ 0 ogni volta
che serve) fino ad ottenere la precisione desiderata.

Osserviamo che se definiamo una funzione ausiliaria

f(u)
φ(u) = u − ′
f (u)

le approssimazioni successive sono x 0 , x 1 = φ(x 0 ), x 2 = φ(x 1 ), x 3 = φ(x 2 ), …, e quindi


ognuna di esse si ottiene semplicemente calcolando la φ della precedente.

Esempio
Consideriamo l’equazione f(x) = x 2 − 7 = 0 che sappiamo avere due soluzioni formali,
x ⋆I = −√ 7 e x ⋆II = √ 7.

Per calcolare la soluzione numerica positiva, cioè √ 7, partiamo da x 0 = 3 (visto che sappiamo che
2 < √ 7 < 3).

La funzione φ è

x2 − 7 x2 + 7
φ(x) = x − =
2x 2x

Un breve script con 5 iterazioni potrebbe essere

x = 3
phi = function(x)(x^2+7)/(2*x)
for (k in 1:5) x[k+1] = phi(x[k])
x

[1] 3.000000 2.666667 2.645833 2.645751 2.645751 2.645751

e già alla quinta approssimazione abbiamo 7 cifre esatte di √ 7 = 2.645751

Esempio
Consideriamo l’equazione f(x) = x 3 − 3 ∗ x + 1 = 0.

Dal grafico di f nell’intervallo [−3, 3] vediamo che ci dovrebbero essere tre soluzioni, prossime a
−1, 3 e 5.

La funzione φ è

x3 − 3 ∗ x + 1
φ(x) = x −
3 ∗ x2 − 3

Calcolando (con 12 cifre dopo il separatore) tre liste del tipo (x 1 , x 2 = φ(x 1 ), x 3 = φ(x 2 ), …) a
partire da tre diverse scelte iniziali

x 0 = −2, x 0 = 0, x 0 = 3, otteniamo la tabella seguente

phi = function(x) x -(x^3-3*x+1)/(3*x^2-3)


x1 = -2 ## approssimazione iniziale
for (k in 1:10) x1[k+1] = phi(x1[k])
x2=0

-2.000000000000.000000000003.00000000000
-1.88888888889 0.33333333333 2.20833333333
-1.87945156695 0.34722222222 1.76599741255
-1.87938524484 0.34729635316 1.57567946696
-1.87938524157 0.34729635533 1.53408947205
-1.87938524157 0.34729635533 1.53209342085
-1.87938524157 0.34729635533 1.53208888626
-1.87938524157 0.34729635533 1.53208888624
-1.87938524157 0.34729635533 1.53208888624
-1.87938524157 0.34729635533 1.53208888624
-1.87938524157 0.34729635533 1.53208888624

Esempio
Consideriamo l’equazione f(x) = 20 + 6 x − 7 x 2 + x 3 = 0. Dal grafico di f nell’intervallo
[−2, 6] vediamo che ci dovrebbero essere tre soluzioni, prossime a −1, 3 e 5.

La funzione φ è

20 + 6 u − 7 x 2 + x 3
φ(x) = x −
6 − 14 x + 3 x 2

Calcolando (con 12 cifre dopo il separatore) tre liste del tipo (x 1 , x 2 = φ(x 1 ), x 3 = φ(x 2 ), …) a
partire da tre diverse scelte iniziali x 0 = −1, x 0 = 3, x 0 = 4.5, otteniamo la tabella seguente

-1.000000000003.000000000004.50000000000
-1.26086956522 3.22222222222 5.46666666667
-1.23630080537 3.23600344531 5.10175112351
-1.23606799831 3.23606797607 5.00670927599
-1.23606797750 3.23606797750 5.00003247532
-1.23606797750 3.23606797750 5.00000000077
-1.23606797750 3.23606797750 5.00000000000
-1.23606797750 3.23606797750 5.00000000000

Data la natura particolare del caso esaminato possiamo anche ricavare una soluzione formale del
problema: x 1 = 1 − √ 5, x 2 = 1 + √ 5, x 3 = 5. Provare! x ⋆III = 5.

Osservazione

Quando l’equazione f(x) = 0 non ha una soluzione unica, il metodo delle tangenti può scegliere
una o l’altra delle soluzioni in modo anche piuttosto instabile.

Ad esempio, per f(x) = 20 + 6 x − 7 x 2 + x 3 = 0 si va sulla seconda radice 3.23607 se si


parte da 4.05, si va sulla terza radice 5 se si parte da 4.07, e sulla prima radice −1.23607 se si
parte da 4.09, con differenze cioè dell’ordine dell’approssimazione iniziale, mentre se si parte da
4.19 si ritorna sulla terza. (Si va su 5, ma dopo un lungo viaggio: infatti se l’approssimazione iniziale
è 4.19, le approssimazioni successive sono 509.327, 340.334, 227.674, …, e solo la 18-esima è
5.000). Questo dipende dal fatto che 4.19 è molto vicino all’ascissa
x c = (7 + √ 31)/3 = 4.18925 … dove f ′ (x c ) = 0 (tangente orizzontale): tangenti quasi
orizzontali intersecano l’asse X in luoghi molto lontani, e se si è sfortunati non si torna indietro.

Problemi
Nel metodo delle tangenti devono essere evitati con cura punti dove la derivata è ≈ 0.

Il metodo delle tangenti può fallire anche in altre situazioni. Per esempio, sia f(x) = √x per x ≥ 0
ed f(x) = −√−x per x < 0. L’equazione f(x) = 0 ha l’unica soluzione x = 0, ma il metodo
delle tangenti, con punto iniziale x 0 = a > 0 arbitrario, produce x 1 = a − 1/(2∗√a) = −a, e
√a

= a, cosicché il metodo oscilla continuamente fra i valori a e −a, e non


−√−a
x 2 = −a − −1/(−2∗√−a)
produce risultati.

Si ricordi f(x) = a equivale a f(x) − a = 0 e quindi il metodo delle tangenti può essere utilizzato
anche per trovare i punti a quota a di un grafico, basta usare la funzione f(x) − a.

Potrebbero piacerti anche