Metodo di Raphson-Newton

Prima di postare leggi le regole del Forum. Puoi anche leggere le ultime discussioni.
Questa sezione è un contenitore temporaneo per i topic speciali a pagamento (One-Shot).
#102072
avt
charly72
Punto

Ciao, sono alle prese con la seguente formula di Raphson Newton:

la mia variabile indipendente la chiamo y

y_(i+1) = y_(i)−(f(y_(i)))/(f'(y_i))

La funzione f(y_i) è l'esponenziale: e^(−y); la derivata: −e^(−y).

Partendo dal valore iniziale y_i = 0.1 non riesco a ottenere coerenti variazioni di y_i dato che il rapporto (e^(−y))/(−e^(−y)) restituisce sempre −1.

Dove commetto un errore?

#102073
avt
Amministratore

Ciao Charly72,

ho modificato il corpo della domanda per inserire i tag per le formule. Puoi confermare che sia tutto ok?

Grazie mille!

#102075
avt
charly72
Punto

si mi sembra sia tutto ok,

grazie

#102076
avt
Ifrit
Amministratore

Risposta secca: il metodo di Raphson-Newton non può essere applicato alla funzione f(y) = e^(−y) perché l'equazione esponenziale

f(y) = 0 → e^(−y) = 0

non ammette soluzioni.

Il metodo di Raphson-Newton, detto anche metodo delle tangenti, è un processo iterativo che consente di costruire una successione numerica che converge alla soluzione di un'equazione della forma f(y) = 0 dove f è una funzione che deve soddisfare alcune ipotesi di regolarità.

Metodo di Raphson-Newton

Proponiamo una formulazione del metodo di Raphson-Newton (ne esistono diverse).

Consideriamo una funzione f definita in un intervallo chiuso e limitato [a,b] tale che:

- esiste un solo numero reale α∈ (a,b) che annulla la funzione, vale a dire f(α) = 0;

• f è una funzione continua in [a,b];

• f è una funzione due volte derivabile con continuità in [a,b] (significa che la derivata prima e la derivata seconda di f devono essere a loro volta funzioni continue in [a,b]).

Supponiamo inoltre che per ogni y∈ [a,b] sussistano le seguenti condizioni:

1) la derivata prima deve essere diversa da 0, (f'(y) ne 0);

2) la derivata seconda deve essere a segno costante (f''(y) < 0 oppure f''(y) > 0).

Se le ipotesi sono rispettate, allora fissato il punto iniziale

 y_0 = a se f(a)f''(a) > 0 ; oppure ; y_0 = b se f(b)f''(b) < 0

la successione numerica

y_(i+1) = y_(i)−(f(y_(i)))/(f'(x_(i)))

converge ad α per i → +∞.

Risoluzione del problema

Consideriamo la funzione f(y) = e^(−y). Essa è una funzione esponenziale derivabile infinite volte sull'intero asse reale.

Il calcolo della sua derivata prima è immediato

f'(y) = (d)/(dy)[e^(−y)] = e^(−y)·(d)/(dy)[−y] = −e^(−y)

così come è immediato il calcolo della derivata seconda

 f''(y) = (d)/(dy)[f'(y)] = (d)/(dy)[−e^(−y)] = −e^(−y)·(d)/(dy)[−y] = e^(−y)

Sottolineiamo che:

• f è una funzione continua su tutto l'asse reale perché composizione di funzioni continue;

• f è derivabile infinite volte su tutto l'asse reale, e inoltre:

- la derivata prima è sempre diversa da zero;

- la derivata prima è sempre positiva.

La funzione rispetta quasi tutte le ipotesi del metodo tranne una: l'equazione

f(y) = 0 → e^(−y) = 0

non ammette soluzioni.

Tra l'altro, se inneschiamo il metodo iterativo, la relazione

y_(i+1) = y_(i)−(f(y_i))/(f'(y_i))

diventa

y_(i+1) = y_(i)−(e^(−y_(i)))/(−e^(−y_(i)))

da cui ricaviamo la successione ricorsiva a un passo

y_(i+1) = y_(i)+1 ∀ i∈N

che possiamo esplicitare con un semplice ragionamento ricorsivo.

Se sostituiamo y_(i) = y_(i−1)+1 nella formula

y_(i+1) = y_(i)+1

otteniamo

y_(i+1) = (y_(i−1)+1)+1 = y_(i−1)+2

Se sostituiamo y_(i−1) = y_(i−2)+1 ricaviamo invece

y_(i+1) = y_(i−1)+2 = (y_(i−2)+1)+2 = y_(i−2)+3

Iterando questo processo, troviamo la seguente espressione

y_(i+1) = y_(0)+i+1 = 0,1+1+i = 1,1+i

In altri termini l'espressione esplicita della successione ricorsiva è

y_(i+1) = 1.1+i

che per i → +∞ diverge positivamente.

#102077
avt
charly72
Punto

3e^(−y·0.5)+3e^(−y·1)+3e^(−y·1.5)+103·e^(−y·2) = 98.39

Il mio manuale di finanza ricava il valore y = 6.76 % applicando il metodo Raphson Newton:

y_(i+1) = y_i−(f(y_i))/(f'(y_i))

Grazie.

#102078
avt
Ifrit
Amministratore

Ora l'esercizio può essere risolto: il problema di fondo è che f(y) = e^(−y) non è la funzione da usare per sfruttare il metodo.

Consideriamo l'equazione

3e^(−y·0.5)+3e^(−y·1)+3e^(−y·1.5)+103·e^(−y·2) = 98.39

Il nostro obiettivo consiste nel ricavare la funzione che svolge il ruolo di f nell'equazione

f(y) = 0

(Nota: al secondo membro c'è zero.)

In termini molto semplici, per ricavare f(y) bisogna portare 98.39 al primo membro: bisogna passare cioè da

3e^(−y·0.5)+3e^(−y·1)+3e^(−y·1.5)+103·e^(−y·2) = 98.39

all'equazione equivalente

3e^(−y·0.5)+3e^(−y·1)+3e^(−y·1.5)+103·e^(−y·2)−98.39 (f(y)) = 0

Il primo membro è esattamente l'espressione analitica di f(y)

 f(y) = 3e^(−y·0.5)+3e^(−y)+3e^(−y·1.5)+103·e^(−y·2)−98.39 = 3e^(−0.5y)+3e^(−y)+3e^(−1.5y)+103·e^(−2y)−98.39

A questo punto calcoliamone la derivata prima

 f'(y) = (d)/(dy)[3e^(−0.5y)+3e^(−y)+3e^(−1.5y)+103·e^(−2y)−98.39] =

ricordando che:

- la derivata della somma è uguale alla somma delle derivate;

- la derivata del prodotto di una funzione per una costante è uguale al prodotto della costante per la derivata della funzione

= 3·(d)/(dy)[e^(−0.5y)]+3·(d)/(dy)[e^(−y)]+3(d)/(dy)[e^(−1.5y)]+103·(d)/(dy)[e^(−2y)]−(d)/(dy)[98.39] =

La derivata rispetto a y di 98.39 è zero per la regola della derivata di una costante

= 3·(d)/(dy)[e^(−0.5y)]+3·(d)/(dy)[e^(−y)]+3·(d)/(dy)[e^(−1.5y)]+103·(d)/(dy)[e^(−2y)] =

A questo punto deriviamo le funzioni esponenziali e semplifichiamo l'espressione che otterremo

 = 3·(−0.5)e^(−0.5 y)+3·(−1)e^(−y)+3·(−1.5)e^(−1.5y)+103·(−2)e^(−2y) = −1.5e^(−0.5 y)−3e^(−y)−4.5e^(−1.5y)−206e^(−2y)

Avendo a disposizione sia l'espressione di f(y) che quella della sua derivata, possiamo finalmente applicare il metodo di Newton, usando come punto iniziale y_0 = 0.1.

Aiutandoci con una calcolatrice, valutiamo sia la funzione che la sua derivata in y_0 = 0.1. Ricaviamo le seguenti approssimazioni:

 • f(y_0) = f(0.1) ≃ −5.91041 ; • f'(y_0) = f'(0.1) ≃ −176.673

grazie alle quali otteniamo y_1: basta sostituirli nella formula

 y_1 = y_0−(f(y_0))/(f'(y_0)) ≃ ; ≃ 0.1−(−5.91041)/(−176.673) ≃ 0.066546

Valutiamo f e la sua derivata in y_1 ≃ 0.066546

 • f(y_1) ≃ f(0.066546) ≃ 0.198296 ; • f'(y_1) ≃ f'(0.066546) ≃ −188.659

e usiamoli per calcolare (l'approssimazione di) y_(2)

 y_(2) = y_1−(f(y_1))/(f'(y_1)) ≃ ; ≃ 0.066546−(0.198296)/(−188.659) ≃ 0.0675971 ≃ 6.76 %

Per i lettori che non hanno famigliarità con le percentuali esplicito i passaggi per passare da 0.0675971 alla sua approssimazione in percentuale

0.0675971 ≃ (6.75971)/(100) ≃ 6.76 %

Abbiamo finito.

#102083
avt
charly72
Punto

grazie intervento eccellente;)

Ringraziano: Ifrit
  • Pagina:
  • 1