Salta al contenuto
Note per Studenti Esercizio - Eulero implicito e Crank-Nicolson per un'equazione non lineare con Newton

Esercizio - Eulero implicito e Crank-Nicolson per un'equazione non lineare con Newton

Teoria: Metodi di Eulero esplicito, implicito e Crank-NicolsonProblema di Cauchy $y'=f(t,y)$, $y(t_0)=y_0$, con $f$ lipschitziana in $y$ (costante $L$): ben posto. Nodi $t_n=t_0+nh$, $u_n\approx y(t_n)$. Eulero esplicito $u_{n+1}=u_n+h,f(t_n,u_n)$; Eulero implicito $u_{n+1}=u_n+h,f(t_{n+1},u_{n+1})$ (equazione da risolvere a ogni passo: punto fisso se $hL<1$, Newton, o formula chiusa se $f$ è lineare); Crank-Nicolson $u_{n+1}=u_n+\frac h2[f(t_n,u_n)+f(t_{n+1},u_{n+1})]$ (regola dei trapezi). Errore di troncamento locale $\tau_n=\frac{y(t_{n+1})-y(t_n)}h-\Phi$: $\frac h2y''$ (EE), $-\frac h2y''$ (EI), $-\frac{h^2}{12}y'''$ (CN). Consistenza + stabilità $\Rightarrow$ convergenza: ordine 1 per EE e EI, ordine 2 per CN, cioè errore globale $O(h)$ e $O(h^2)$; per EE $|e_n|\le\frac{Mh}{2L}\big(e^{L(t_n-t_0)}-1\big)$ con $M=\max|y''|$ (D). Dimezzando $h$ l'errore si divide per 2 (EE, EI) o per 4 (CN).Metodi di Eulero esplicito, implicito e Crank-Nicolson →, Metodo di Newton, metodo delle secanti e ordine di convergenzaOrdine di convergenza p: |e_{k+1}| ≈ C|e_k|^p (p = 1 lineare, p = 2 quadratica: le cifre corrette raddoppiano a ogni passo). Newton x_{k+1} = x_k − f(x_k)/f'(x_k): zero della tangente, ordine 2 per radici semplici con e_{k+1} ≈ f''(α)/(2f'(α)) e_k²; per radici di molteplicità m è solo lineare con tasso (m−1)/m (si recupera con x − m f/f'). Secanti: sostituisce f' con un rapporto incrementale, ordine (1+√5)/2 ≈ 1,618, una sola valutazione di f per passo. Newton richiede un x_0 abbastanza vicino: può ciclare o divergere.Metodo di Newton, metodo delle secanti e ordine di convergenza →.

Testo. Un corpo in moto in un fluido con resistenza quadratica, senza forze motrici, ha velocità adimensionale yy che obbedisce a y′=−y2,y(0)=1,y(t)=11+t (esatta).y'=-y^2,\qquad y(0)=1,\qquad y(t)=\frac1{1+t}\ \text{(esatta)}. Si usa h=0,5h=0{,}5.

  1. Eseguire due passi di Eulero esplicito.
  2. Eseguire due passi di Eulero implicito: l'equazione di ogni passo è di secondo grado, la si risolva in forma chiusa. Poi, per il primo passo, mostrare un passo di Newton partendo da u=1u=1 e le iterazioni di punto fisso.
  3. Eseguire due passi di Crank-Nicolson.
  4. Confrontare gli errori in t=1t=1 (y(1)=0,5y(1)=0{,}5) e commentare la condizione hL<1hL<1.

Soluzione

1. EE. un+1=un−h un2u_{n+1}=u_n-h\,u_n^2: u1=1−0,5⋅1=0,5u_1=1-0{,}5\cdot1=0{,}5; u2=0,5−0,5⋅0,25=0,375u_2=0{,}5-0{,}5\cdot0{,}25=0{,}375. Errore in t=1t=1: 0,5−0,375=0,1250{,}5-0{,}375=0{,}125.

2. EI. L'equazione è un+1=un−h un+12u_{n+1}=u_n-h\,u_{n+1}^2, cioè h u2+u−un=0h\,u^2+u-u_n=0, con radice positiva (la soluzione fisica è positiva) un+1=−1+1+4h un2hu_{n+1}=\dfrac{-1+\sqrt{1+4h\,u_n}}{2h}. Con h=0,5h=0{,}5: un+1=−1+1+2unu_{n+1}=-1+\sqrt{1+2u_n}.

  • u1=−1+3=0,732051u_1=-1+\sqrt{3}=0{,}732051;
  • u2=−1+1+2⋅0,732051=−1+2,464102=−1+1,569746=0,569746u_2=-1+\sqrt{1+2\cdot0{,}732051}=-1+\sqrt{2{,}464102}=-1+1{,}569746=0{,}569746. Errore in t=1t=1: 0,5−0,569746=−0,06970{,}5-0{,}569746=-0{,}0697.

Newton sul primo passo. G(u)=u−1+0,5u2G(u)=u-1+0{,}5u^2, G′(u)=1+uG'(u)=1+u. Da u(0)=1u^{(0)}=1: G=0,5G=0{,}5, G′=2G'=2, u(1)=1−0,25=0,75u^{(1)}=1-0{,}25=0{,}75. Poi G(0,75)=0,75−1+0,28125=0,03125G(0{,}75)=0{,}75-1+0{,}28125=0{,}03125, G′=1,75G'=1{,}75, u(2)=0,75−0,017857=0,732143u^{(2)}=0{,}75-0{,}017857=0{,}732143. Valore esatto della radice 0,7320510{,}732051: bastano due iterazioni (errore 9⋅10−59\cdot10^{-5}), perché la convergenza di Newton è quadratica.

Punto fisso u(k+1)=1−0,5 (u(k))2u^{(k+1)}=1-0{,}5\,\big(u^{(k)}\big)^2, partendo da u(0)=1u^{(0)}=1: 0,5; 0,875; 0,6172; 0,8095; 0,6723; 0,7740;…0{,}5;\ 0{,}875;\ 0{,}6172;\ 0{,}8095;\ 0{,}6723;\ 0{,}7740;\dots L'iterazione oscilla attorno alla radice 0,7320{,}732 e converge lentamente: il fattore di contrazione è ∣φ′(u)∣=∣−u∣=0,73|\varphi'(u)|=|{-}u|=0{,}73 vicino alla radice. Qui L=max⁡∣∂yf∣=2∣y∣=2L=\max|\partial_yf|=2|y|=2 e hL=1hL=1: siamo al limite della condizione hL<1hL<1 che garantisce la contrazione, e infatti la convergenza è lenta.

3. CN. un+1=un+h2(−un2−un+12)=un−h2un2−h2un+12u_{n+1}=u_n+\frac h2\big(-u_n^2-u_{n+1}^2\big)=u_n-\frac h2u_n^2-\frac h2u_{n+1}^2, con h2=0,25\frac h2=0{,}25: 0,25 u2+u−(un−0,25 un2)=00{,}25\,u^2+u-\big(u_n-0{,}25\,u_n^2\big)=0, un+1=−1+1+rn0,5u_{n+1}=\dfrac{-1+\sqrt{1+r_n}}{0{,}5} con rn=un−0,25un2r_n=u_n-0{,}25u_n^2.

  • u1u_1: r0=1−0,25=0,75r_0=1-0{,}25=0{,}75, u1=−1+1,750,5=−1+1,3228760,5=0,645751u_1=\frac{-1+\sqrt{1{,}75}}{0{,}5}=\frac{-1+1{,}322876}{0{,}5}=0{,}645751.
  • u2u_2: r1=0,645751−0,25⋅0,416995=0,541502r_1=0{,}645751-0{,}25\cdot0{,}416995=0{,}541502, u2=−1+1,5415020,5=−1+1,2415730,5=0,483145u_2=\frac{-1+\sqrt{1{,}541502}}{0{,}5}=\frac{-1+1{,}241573}{0{,}5}=0{,}483145. Errore in t=1t=1: 0,5−0,483145=+0,01690{,}5-0{,}483145=+0{,}0169.

4. Confronto in t=0,5t=0{,}5 e t=1t=1. (y(0,5)=0,666667y(0{,}5)=0{,}666667.)

metodo u1u_1 (t=0,5t=0{,}5) errore u2u_2 (t=1t=1) errore
EE 0,5 +0,167+0{,}167 0,375 +0,125+0{,}125
EI 0,732051 −0,065-0{,}065 0,569746 −0,070-0{,}070
CN 0,645751 +0,021+0{,}021 0,483145 +0,017+0{,}017
CN è la più precisa (errore ≈4\approx4–77 volte minore); EE e EI sbagliano in verso opposto. La condizione hL<1hL<1 è necessaria soltanto per usare il punto fisso nei metodi impliciti; Newton non ha questo limite (converge se la stima iniziale è abbastanza vicina, che con unu_n come punto di partenza è vero per hh piccolo).

Risultati: in t=1t=1: EE 0,3750{,}375, EI 0,56970{,}5697, CN 0,4831\mathbf{CN\ 0{,}4831} contro 0,50{,}5 esatto.

Errori tipici. Prendere la radice negativa della quadratica; usare f(un)f(u_n) al posto di f(un+1)f(u_{n+1}) nel termine implicito; derivare GG rispetto a tt invece che rispetto a uu.

Versione ripasso

(Metodi di Eulero esplicito, implicito e Crank-NicolsonProblema di Cauchy $y'=f(t,y)$, $y(t_0)=y_0$, con $f$ lipschitziana in $y$ (costante $L$): ben posto. Nodi $t_n=t_0+nh$, $u_n\approx y(t_n)$. Eulero esplicito $u_{n+1}=u_n+h,f(t_n,u_n)$; Eulero implicito $u_{n+1}=u_n+h,f(t_{n+1},u_{n+1})$ (equazione da risolvere a ogni passo: punto fisso se $hL<1$, Newton, o formula chiusa se $f$ è lineare); Crank-Nicolson $u_{n+1}=u_n+\frac h2[f(t_n,u_n)+f(t_{n+1},u_{n+1})]$ (regola dei trapezi). Errore di troncamento locale $\tau_n=\frac{y(t_{n+1})-y(t_n)}h-\Phi$: $\frac h2y''$ (EE), $-\frac h2y''$ (EI), $-\frac{h^2}{12}y'''$ (CN). Consistenza + stabilità $\Rightarrow$ convergenza: ordine 1 per EE e EI, ordine 2 per CN, cioè errore globale $O(h)$ e $O(h^2)$; per EE $|e_n|\le\frac{Mh}{2L}\big(e^{L(t_n-t_0)}-1\big)$ con $M=\max|y''|$ (D). Dimezzando $h$ l'errore si divide per 2 (EE, EI) o per 4 (CN).Metodi di Eulero esplicito, implicito e Crank-Nicolson →)

y′=−y2y'=-y^2, y(0)=1y(0)=1, y=11+ty=\frac1{1+t}, h=0,5h=0{,}5, y(0,5)=0,6667y(0{,}5)=0{,}6667, y(1)=0,5y(1)=0{,}5.

  • EE: un+1=un−hun2u_{n+1}=u_n-hu_n^2: 0,5; 0,3750{,}5;\ 0{,}375 (errore 0,1250{,}125).
  • EI: hu2+u−un=0hu^2+u-u_n=0, un+1=−1+1+2unu_{n+1}=-1+\sqrt{1+2u_n} (radice positiva): 0,732051; 0,5697460{,}732051;\ 0{,}569746 (errore −0,070-0{,}070).
  • Newton su G(u)=u−1+0,5u2G(u)=u-1+0{,}5u^2, G′=1+uG'=1+u, da 11: 0,75; 0,7321430{,}75;\ 0{,}732143. Punto fisso u↦1−0,5u2u\mapsto1-0{,}5u^2: 0,5; 0,875; 0,617; 0,810;…0{,}5;\,0{,}875;\,0{,}617;\,0{,}810;\dots lento (hL=1hL=1, contrazione 0,730{,}73).
  • CN: 0,25u2+u−(un−0,25un2)=00{,}25u^2+u-(u_n-0{,}25u_n^2)=0, un+1=2(−1+1+rn)u_{n+1}=2(-1+\sqrt{1+r_n}): 0,645751; 0,4831450{,}645751;\ 0{,}483145 (errore +0,017+0{,}017).
  • Punto fisso richiede hL<1hL<1 (L=2∣y∣L=2|y|); Newton no.
  • Errori in t=0,5t=0{,}5 (0,6666670{,}666667): EE +0,167+0{,}167, EI −0,065-0{,}065, CN +0,021+0{,}021; in t=1t=1: +0,125+0{,}125, −0,070-0{,}070, +0,017+0{,}017. CN è 44–77 volte più precisa; EE ed EI sbagliano in verso opposto.
  • Calcoli CN: r0=1−0,25=0,75r_0=1-0{,}25=0{,}75, 1,75=1,322876\sqrt{1{,}75}=1{,}322876; r1=0,645751−0,25⋅0,416995=0,541502r_1=0{,}645751-0{,}25\cdot0{,}416995=0{,}541502, 1,541502=1,241573\sqrt{1{,}541502}=1{,}241573.

Errori tipici: radice negativa; f(un)f(u_n) nel termine implicito; G′G' rispetto a tt.

Teoria collegata