Convergenza alla radice con il Metodo di Newton

ZombieBest1
Salve! Ho il seguente esercizio che sto provando a risolvere, con qualche dubbio qua e la:

Sia $f(x)=x-e^(x-2)$. Disegna il grafico di f e Localizza gli intervalli delle due radici $\alpha$ e $\beta$.
Fin qui tutto bene, disegno velocemente in grafico e trovo i seguenti intervalli: $\alpha in(0, 1), \beta in(3, 4)$.

Adesso il problema mi chiede: studia la convergenza ad $\alpha$ del Metodo di Newton. La successione $x_0=0$ è convergente ad $alpha$? Se convergente qual'è l'ordine di convergenza?. Poi fa anche la stessa domanda per $\beta$ con $x_0=3$.

Io qui non ho ben capito come determinare se il punto converge ad $\alpha$. Mi metto a fare i conti usando la seguente formula: $x_(n+1)=x_n-(f(x_n)/f^{\prime}(x_n))$. Per $x_0$ ottengo $x_1=0.16$. La $f(x_0)=-0.14$ mentre la $f(x_1)=1.18$... si allontana? Se continuo con il calcolo del punto $x_2$ ottengo $x_2=2.24$ che addirittura è fuori dall'intervallo di $\alpha$. Posso dedurre che non converge?
Stesso dubbio con $\beta$ e $x_0=3$, $f(3)=0.28$, mentre con il punto trovato $x_1=3.16$ la $f(x_1)=-0.3$... si avvicina a zero, ma cambia segno? è giusto che lo faccia? Inoltre continuando con il punto $x_2$ ottengo $x_2=3.15$, che è più piccolo di $x_1$.

Sto facendo il ragionamento corretto? Dall'esempio della prof vedo che si limita a dire per $\beta$: "il punto $x_1 > \beta$ quindi ho la convergenza", ma non ho esattamente capito cosa intenda dato che $\beta$ è un intervallo.

Grazie a tutti!

Risposte
feddy
Ciao, da quello che so io, il metodo di Newton ha ordine di convergenza pari a $2$ normalmente.
Converge più lentamente se ci sono zeri multipli, ma non è questo il caso. Facendo un rapido studio della funzione però si vede che non ha zeri multipli.

Provando a implementare l'algoritmo con MatLab in poche iterazioni il metodo mi risulta convergere, con ordine 2 per entrambi i due guess iniziali.

ZombieBest1
Ciao! Grazie per la risposta! Come faccio quindi a capire su carta se converge? Quante iterazioni devo fare? Cosa devo vedere? :)

Grazie ancora!

feddy
Oddio, su carta è abbastanza noioso. Basta comunque applicare l'algoritmo come hai fatto te. Ossia, $x_(k+1)=x_k - f(x_k)/f'(x_k)$. A differenza tua, non capisco come possa risultarti quel $f(x_1)=1.18$. Probabilmente l'errore sta lì. A me risulta convergere (con $x0=0$, tolleranza=$1-e10$) in $4$ iterazioni.

ZombieBest1
Grazie mille, ho trovato l'errore! Effettivamente ad ogni iterazione la f diventa sempre più piccola (è questo un requisito perchè converga?). Come fai a capire quando fermarti? Ad esempio a 4 iterazioni? Io vedo che diventa sempre più piccola, mi basta provare 2/3 iterazioni e vedere se continua a rimpicciolirsi per dire che converge? :)
Grazie ancora e scusa per le domande banali!

ZombieBest1
Ad esempio per il calcolo di $\beta$ passo da $f(x_0)=0.28$, $f(x_1)=-0.3$, $f(x_2)=-0.03$, $f(x_3)=-0.00819$. Il fatto che si avvicini sempre di più allo zero mi basta per dire che converge?
Grazie!

feddy
"ZombieBest":
Io vedo che diventa sempre più piccola, mi basta provare 2/3 iterazioni e vedere se continua a rimpicciolirsi per dire che converge? :)


A dire il vero no. Che diventi più piccola non vuol dire niente. Dipende da caso a caso.

Ci sono delle condizioni sull'arresto del metodo:
    1.Innanzitutto devi fissare una tolleranza. Nel mio caso, l'ho messa a $1e-10$. Su carta è meglio metterne una che permetta di riuscire a non impazzire coi calcoli.

    2. Ad ogni iterata devi calcolare l'errore commesso, o scarto, cioè $|xk - x_(k+1)|$. Finché questo valore è maggiore della tolleranza, continua con l'iterazione. Quanto diventa minore, puoi fermarti, perché hai ottenuto la precisione voluta.
    [/list:u:3dmi0vfn]

    E' questo che ti dice quando fermarti, non il fatto che rimpicciolisca.

ZombieBest1
Nel mio caso, su carta, che tolleranza dovrei scegliere? Dato che nel testo del problema non è menzionato

feddy
Fai pure $1e-6$

ZombieBest1
"feddy":
Fai pure $1e-6$


$1-e^-6$? oppure $1*e^-6$? oppure $e^1 -6$?

feddy
Scusa, dovevo essere più chiaro. $1e-6$ è un comando di MatLab per indicare il valore $10^(-6)$.

ZombieBest1
"feddy":
Scusa, dovevo essere più chiaro. $1e-6$ è un comando di MatLab per indicare il valore $10^(-6)$.

Ah ecco, adesso quadra :D
Grazie mille!!

ZombieBest1
Ultima cosa: provando con $\beta$ arrivo alla quarta iterazione in cui lo scarto è di circa $10^-3$, e anche alla quinta è ancora di $10^-3$, posso fermarmi considerando una tolleranza di $10^-3$ invece che $10^-6$? :)

feddy
Ricorda che devi fermarti quando lo scarto è minore di $10^(-6)$ (o $10^(-3)$, dipende da cosa scegli all'inizio).

Con una tolleranza di $10^(-3)$ ci vogliono $3$ iterazioni.

Per $10^(-6)$ ne servono $4$ per arrivare a convergenza.

Raptorista1
Scusate se mi intrometto ma, se non ricordo male, ci sono dei risultati teorici che permettono di dire se il metodo di Newton converge alla soluzione nell'intervallo.

ZombieBest1
"Raptorista":
Scusate se mi intrometto ma, se non ricordo male, ci sono dei risultati teorici che permettono di dire se il metodo di Newton converge alla soluzione nell'intervallo.

Potresti essere più specifico? Grazie! :)

Raptorista1
Il tuo libro sarà di sicuro più specifico di me. Comunque Il metodo di newton risente anche della convessità della funzione: se ti avvicini da sinistra allo zero di una funzione convessa, sicuramente arrivi a segno; lo stesso vale se ti avvicini da destra ad una funzione concava.

feddy
Ciao Raptorista. Sinceramente quest'anno a calcolo numerico ho visto soltanto che per zeri multipli il metodo di Newton è mal condizionato. Non conoscevo queste nozioni sulla convessità, che comunque pensandoci mi sono chiare :)

Raptorista1
In realtà mi sono accorto che quanto ho scritto sopra è sbagliato perché manca un pezzo xD
Se arrivi dall'alto allo zero di una funzione convessa, o dal basso allo zero di una funzione concava, sei a cavallo. Gli altri casi dipendono.

Per i casi fortunati puoi dimostrare facilmente che la successione delle approssimazioni è monotona e non supera lo zero della funzione.

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.