title: Metodo di Eulero semi-implicito
text: # Metodo di Eulero semi-implicito
  
  In matematica il metodo di Eulero semi-implicito, detto anche Eulero simplettico, Eulero semi-esplicito, Eulero-Cromer, e Newton-Størmer-Verlet (NSV), è una variante del metodo di Eulero usato per risolvere equazioni di Hamilton. È un integratore simplettico, pertanto consente di ottenere risultati migliori rispetto al metodo di Eulero semplice.
  
  ## Impostazione del problema
  
  Il metodo può essere applicato ad una coppia di equazioni differenziali nella forma
  
      ${dx \over dt}=f(t,v)$
      ${dv \over dt}=g(t,x)$
  
  dove $f$ e $g$ sono funzioni date e $x$ e $v$ possono essere vettori o scalari. Le equazioni di Hamilton assumono questa forma se la funzione hamiltoniana ha la forma
  
      $H=T(t,v)+V(t,x)$
  
  Inoltre le condizioni iniziali devono essere note:
  
      $x(t_{0})=x_{0}$
      $v(t_{0})=v_{0}$
  
  ## Formulazione del metodo
  
  Il metodo produce una soluzione discreta approssimata iterando le seguenti funzioni:
  
      $v_{n+1}=v_{n}+g(t_{n},x_{n})\Delta t$
      $x_{n+1}=x_{n}+f(t_{n},v_{n+1})\Delta t$
  
  dove $\Delta t$ è l'intervallo di tempo e $t_{n}=t_{0}+n\Delta t$ è il tempo dopo $n$ iterazioni.
  
  La differenza con il metodo di Eulero classico consiste nel fatto che il metodo semi-implicito usa $v_{n+1}$ nell'equazione per $x_{n+1}$, mentre il metodo classico usa $v_{n}$.
  
  Utilizzando il metodo con un intervallo di tempo negativo per calcolare $(x_{n},v_{n})$ da $(x_{n+1},v_{n+1})$ consente di ottenere la seconda variante del metodo di Eulero semi-implicito:
  
      $x_{n+1}=x_{n}+f(t_{n},v_{n})\Delta t$
      $v_{n+1}=v_{n}+g(t_{n},x_{n+1})\Delta t$
  
  la quale presenta simili proprietà.
  
  Il metodo di Eulero semi-implicito, come quello classico, è un integratore del primo ordine: ciò significa che produce un errore dell'ordine di Δt. Tuttavia, a differenza del metodo classico, quello semi-implicito è un integratore simplettico, perciò conserva quasi inalterata l'energia (se la funzione hamiltoniana è indipendente dal tempo), mentre nel metodo classico essa aumenta costantemente.
  
  Alternare le due varianti del metodo semi-implicito conduce, in una forma semplificata, all'integrazione di Størmer-Verlet e in un'altra forma semplificata al metodo del salto della rana, aumentando sia l'ordine dell'errore che quello della conservazione dell'energia.
  
  Il metodo di Eulero semi-implicito rappresenta correttamente il sistema simulato se le radici complesse dell'equazione caratteristica si trovano all'interno di questa circonferenza:
  
  Come si può vedere, il metodo è in grado di simulare correttamente sia sistemi stabili che instabili. Ciò costituisce un vantaggio rispetto al metodo classico e a quello implicito.
  
  ## Esempio
  
  Il moto di una molla, seguendo la legge di Hooke, si può rappresentare come:
  
      ${\frac {dx}{dt}}=v(t)$
      ${\frac {dv}{dt}}=-{\frac {k}{m}}x=-\omega ^{2}x$
  
  Il metodo di Eulero semi-implicito in questo caso è:
  
      $v_{n+1}=v_{n}-\omega ^{2}x_{n}\Delta t$
      $x_{n+1}=x_{n}+v_{n+1}\Delta t$
  
  Sostituendo $v_{n+1}$ nella seconda equazione con l'espressione data dalla prima equazione, l'iterazione può essere espressa nella seguente forma matriciale:
  
      ${\begin{bmatrix}x_{n+1}\\v_{n+1}\end{bmatrix}}={\begin{bmatrix}1-\omega ^{2}\Delta t^{2}&\Delta t\\-\omega ^{2}\Delta t&1\end{bmatrix}}{\begin{bmatrix}x_{n}\\v_{n}\end{bmatrix}}$
  