Metodo delle tangenti

In matematica, e in particolare in analisi numerica, il metodo delle tangenti, chiamato anche metodo di Newton o metodo di Newton-Raphson, è uno dei metodi per il calcolo approssimato di una soluzione di un'equazione della forma f ( x ) = 0 {\displaystyle f(x)=0} . Esso si applica dopo avere determinato un intervallo [ a , b ] {\displaystyle [a,b]} che contiene una sola radice.

Esempio di applicazione del metodo delle tangenti

Il metodo consiste nel sostituire alla curva y = f ( x ) {\displaystyle y=f(x)} la tangente alla curva stessa, partendo da un qualsiasi punto; per semplicità si può iniziare da uno dei due punti che hanno come ascissa gli estremi dell'intervallo [ a , b ] {\displaystyle [a,b]} e assumere, come valore approssimato della radice, l'ascissa x t {\displaystyle x_{t}} del punto in cui la tangente interseca l'asse delle x {\displaystyle x} internamente all'intervallo [ a , b ] {\displaystyle [a,b]} .

Procedendo in modo iterativo si dimostra che la relazione di ricorrenza del metodo è

x n + 1 = x n f ( x n ) f ( x n ) , {\displaystyle x_{n+1}=x_{n}-{\frac {f(x_{n})}{f'(x_{n})}},}

che permette di determinare successive approssimazioni della radice dell'equazione y = f ( x ) = 0 {\displaystyle y=f(x)=0} . Con le ipotesi poste, si dimostra che la successione delle x n {\displaystyle x_{n}} converge alla radice piuttosto rapidamente.

Più in dettaglio, si dimostra che se f C 2 ( I ) {\displaystyle f\in C^{2}(I)} dove I {\displaystyle I} è un opportuno intorno dello zero α {\displaystyle \alpha } con f ( α ) 0 {\displaystyle f'(\alpha )\neq 0} e se x 0 I , {\displaystyle x_{0}\in I,} allora

lim n + α x n + 1 ( α x n ) 2 = f ( α ) 2 f ( α ) , {\displaystyle \lim _{n\to +\infty }{\frac {\alpha -x_{n+1}}{(\alpha -x_{n})^{2}}}=-{\frac {f''(\alpha )}{2f'(\alpha )}},}

cioè la convergenza è quadratica (il numero di cifre significative approssimativamente raddoppia ad ogni iterazione; mentre col metodo di bisezione cresce linearmente), benché locale (cioè non vale per ogni I {\displaystyle I} ). Se invece la radice è multipla, cioè f ( α ) = 0 {\displaystyle f'(\alpha )=0} allora la convergenza è lineare (più lenta). Nella pratica, fissata la tolleranza di approssimazione consentita τ {\displaystyle \tau } , il procedimento iterativo si fa terminare quando | x n + 1 x n | < τ | x n + 1 | . {\displaystyle \left|x_{n+1}-x_{n}\right|<\tau \cdot |x_{n+1}|.}

Il problema di questo metodo è che la convergenza non è garantita, in particolare quando f ( x ) {\displaystyle f'(x)} varia notevolmente in prossimità dello zero. Inoltre, il metodo assume che f ( x ) {\displaystyle f'(x)} sia disponibile direttamente per un dato x {\displaystyle x} . Nei casi in cui questo non si verifichi e risultasse necessario calcolare la derivata attraverso una differenza finita, è consigliabile usare il metodo della secante.

Storia

Il matematico francese François Viète presentò nel 1600[1] un metodo, già noto nel 1427 da al-Kashi, per la ricerca degli zeri di un polinomio attraverso una perturbazione di una sua soluzione approssimata. Quattro anni dopo Newton venne a conoscenza del metodo di Viète e nel 1669 scoprí autonomamente un metodo per la ricerca degli zeri di un polinomio.

Come esempio mostra la seguente equazione f ( x ) = x 3 2 x 5 = 0 {\displaystyle f(x)=x^{3}-2x-5=0} una cui soluzione ha parte intera x 0 = 2 {\displaystyle x_{0}=2} . Applicando la sostituzione x = 2 + p {\displaystyle x=2+p} si ricava il polinomio p 3 + 6 p 2 + 10 p 1 = 0 {\displaystyle p^{3}+6p^{2}+10p-1=0} e trascurando i monomi di grado superiore al primo, ossia linearizzando il polinomio, si ottiene p = 0 , 1 {\displaystyle p=0{,}1} . Per cui si applica la sostituzione p = 0 , 1 + q {\displaystyle p=0{,}1+q} e si arriva a q 3 + 6 , 3 q 2 + 11 , 23 q + 0,061 = 0 {\displaystyle q^{3}+6{,}3q^{2}+11{,}23q+0{,}061=0} e per linearizzazione q = 0,005 4 {\displaystyle q=-0{,}0054} . Sostituendo q = 0,005 4 + r {\displaystyle q=0{,}0054+r} e facendo lo stesso ragionamento si ricava r = 0,000 04853 {\displaystyle r=0{,}00004853} . Da cui x 3 = x 0 + p + q + r = 2,094 55147. {\displaystyle x_{3}=x_{0}+p+q+r=2{,}09455147.}

Si possono fare due osservazioni relative al metodo proposto:

  1. p = x 1 x 0 = f ( x 0 ) f ( x 0 ) {\displaystyle p=x_{1}-x_{0}=-{\frac {f(x_{0})}{f'(x_{0})}}} e q = x 2 x 1 = f ( x 1 ) f ( x 1 ) {\displaystyle q=x_{2}-x_{1}=-{\frac {f(x_{1})}{f'(x_{1})}}} per cui il metodo trovato da Newton corrisponde al moderno metodo delle tangenti;
  2. osservando i valori di p {\displaystyle p} , q {\displaystyle q} e r {\displaystyle r} si può notare che il numero di zeri dopo la virgola raddoppia ad ogni passo, allora nell'esempio si ha convergenza quadratica.

Nel 1687, nel Philosophiae Naturalis Principia Mathematica Newton applica per la prima volta il metodo ad un'equazione non polinomiale. È il caso dell'equazione x e sin ( x ) = M {\displaystyle x-e\sin(x)=M} dove M {\displaystyle M} indica l'anomalia media e x {\displaystyle x} l'anomalia eccentrica. In questo caso approssimando il seno come somma troncata del suo sviluppo in serie di Taylor Newton ricavava un polinomio e quindi poteva applicare il metodo da lui trovato.

Nel 1690 il matematico Joseph Raphson riuscì a ricavare un metodo iterativo per aggiornare la soluzione approssimata x k {\displaystyle x_{k}} senza dover calcolare la potenza del monomio completa e nel 1740 Thomas Simpson, nel libro Essays on Several Curious and Useful Subjects in Speculative and Mix's Mathematicks, Illustrated by a variey of Examples ricavò il moderno metodo delle tangenti riconoscendo il ruolo delle derivate prime nell'aggiornamento della soluzione.

Caso unidimensionale

Consideriamo una funzione undimensionale f C 2 [ a , b ] {\displaystyle f\in C^{2}[a,b]} , e quindi per il teorema di Weierstrass la funzione ammette un minimo x {\displaystyle x} da determinare.

Per cui, preso un punto x 0 {\displaystyle x_{0}} nell'intervallo, sfruttando la serie di Taylor di f {\displaystyle f} , si trova che

f ( x ) = f ( x 0 ) + ( x x 0 ) f ( x 0 ) + ( x x 0 ) 2 2 f ( r ( x ) ) {\displaystyle f(x)=f(x_{0})+(x-x_{0})f'(x_{0})+{\frac {(x-x_{0})^{2}}{2}}f''(r(x))}

con r ( x ) {\displaystyle r(x)} compreso tra x {\displaystyle x} e x 0 . {\displaystyle x_{0}.}

Per cui, se | x x 0 | {\displaystyle |x-x_{0}|} è sufficientemente piccolo, ossia ( x x 0 ) 2 0 {\displaystyle (x-x_{0})^{2}\approx 0} , ponendo f ( x ) = 0 {\displaystyle f(x)=0} per trovare l'intersezione della retta tangente nel punto ( x 0 , f ( x 0 ) ) {\displaystyle (x_{0},f(x_{0}))} con l'asse delle x {\displaystyle x} , si ricava x x 0 f ( x 0 ) f ( x 0 ) = x 1 {\displaystyle x\approx x_{0}-{\frac {f(x_{0})}{f'(x_{0})}}=x_{1}} . Osservare che l'ultima relazione ha senso solo se f ( x 0 ) {\displaystyle f'(x_{0})} non è nullo. Una volta trovato x 1 {\displaystyle x_{1}} si reitera il procedimento. Si è trovato così il seguente algoritmo:

Metodo di Newton Unidimensionale
* Passo 0: Si sceglie un punto 
  
    
      
        
          x
          
            0
          
        
      
    
    {\displaystyle x_{0}}
  
 nell'intervallo 
  
    
      
        [
        a
        ,
        b
        ]
      
    
    {\displaystyle [a,b]}
  
. Si pone 
  
    
      
        k
        =
        0.
      
    
    {\displaystyle k=0.}
  

 Per 
  
    
      
        k
        =
        0
        ,
        1
        ,
        
      
    
    {\displaystyle k=0,1,\ldots }
  
 
* Passo 1: Si determina 
  
    
      
        
          x
          
            k
            +
            1
          
        
        =
        
          x
          
            k
          
        
        
        
          
            
              f
              (
              
                x
                
                  k
                
              
              )
            
            
              
                f
                
              
              (
              
                x
                
                  k
                
              
              )
            
          
        
      
    
    {\displaystyle x_{k+1}=x_{k}-{\frac {f(x_{k})}{f'(x_{k})}}}
  
. 
* Passo 2: Poni 
  
    
      
        k
        =
        k
        +
        1
      
    
    {\displaystyle k=k+1}
  
 e torna al Passo 1.

Come si è visto, condizione necessaria affinché il metodo sia applicabile è che esista un intervallo I = [ a , b ] {\displaystyle I=[a,b]} in cui x 0 I {\displaystyle x_{0}\in I} è tale che f ( x 0 ) 0 {\displaystyle f'(x_{0})\neq 0} e f ( x 0 ) 0 {\displaystyle f''(x_{0})\neq 0} . Per il teorema degli zeri tale intervallo esiste se e solo se f ( x 0 ) 0 {\displaystyle f'(x_{0})\neq 0} e f ( x 0 ) 0 {\displaystyle f''(x_{0})\neq 0} .

Caso multidimensionale

Consideriamo una funzione f C 2 ( R n ) {\displaystyle f\in C^{2}(\mathbb {R} ^{n})} e sia x R n {\displaystyle x\in \mathbb {R} ^{n}} lo zero da determinare. Sfruttando lo sviluppo in serie di Taylor si ha che, preso un generico vettore h R n {\displaystyle h\in \mathbb {R} ^{n}} :

f ( x + h ) = f ( x ) + J ( x ) h + O ( h 2 ) {\displaystyle f(x+h)=f(x)+J(x)h+O(\|h\|^{2})}

dove J ( x ) {\displaystyle J(x)} indica la matrice jacobiana di f {\displaystyle f} calcolata nel punto x {\displaystyle x} .

Per cui, se J ( x ) {\displaystyle J(x)} non è singolare si ottiene un nuovo punto y = x + h 1 {\displaystyle y=x+h_{1}} dove h 1 {\displaystyle h_{1}} è la soluzione del sistema lineare J ( x ) h = f ( x ) {\displaystyle J(x)h=-f(x)} .

Si è trovato così il seguente algoritmo:

Metodo di Newton multidimensionale
* Passo 0: Si sceglie un punto 
  
    
      
        
          x
          
            0
          
        
      
    
    {\displaystyle x_{0}}
  
 . Si pone 
  
    
      
        k
        =
        0
      
    
    {\displaystyle k=0}
  
.
 Per 
  
    
      
        k
        =
        0
        ,
        1
        ,
        .
        .
        .
      
    
    {\displaystyle k=0,1,...}
  
 
* Passo 1: Si risolve 
  
    
      
        J
        (
        
          x
          
            k
          
        
        )
        h
        =
        
        f
        (
        
          x
          
            k
          
        
        )
      
    
    {\displaystyle J(x_{k})h=-f(x_{k})}
  
 ottenendo il vettore 
  
    
      
        h
      
    
    {\displaystyle h}
  
. 
* Passo 2: Si determina 
  
    
      
        
          x
          
            k
            +
            1
          
        
        =
        
          x
          
            k
          
        
        +
        h
      
    
    {\displaystyle x_{k+1}=x_{k}+h}
  
.
* Passo 3: Si pone 
  
    
      
        k
        =
        k
        +
        1
      
    
    {\displaystyle k=k+1}
  
 e si torna al Passo 1.

f C 2 ( I ) {\displaystyle f\in C^{2}(I)} dove I {\displaystyle I} è un opportuno intorno della radice α {\displaystyle \alpha } con f ( α ) 0 {\displaystyle f'(\alpha )\neq 0} e se x 0 I , {\displaystyle x_{0}\in I,}

Note

  1. ^ (EN) Peter Deuflhard, A Short History of Newton’s Method (PDF), su math.uiuc.edu. URL consultato il 1* giugno 2019 (archiviato dall'url originale il 4 marzo 2016).

Voci correlate

Altri progetti

Altri progetti

  • Wikiversità
  • Wikimedia Commons
  • Collabora a Wikiversità Wikiversità contiene risorse sul metodo delle tangenti
  • Collabora a Wikimedia Commons Wikimedia Commons contiene immagini o altri file sul metodo delle tangenti

Collegamenti esterni

  • (EN) Newton’s iterative method, su Enciclopedia Britannica, Encyclopædia Britannica, Inc. Modifica su Wikidata
  • (EN) Eric W. Weisstein, Newton's Method, su MathWorld, Wolfram Research. Modifica su Wikidata
  • Presentazione: usare il metodo delle tangenti con Turbo Pascal, da matsoftware.it
  • Applet Geogebra per applicare il metodo
Controllo di autoritàLCCN (EN) sh92005466 · J9U (ENHE) 987007536791105171
  Portale Matematica: accedi alle voci di Wikipedia che trattano di matematica