Loading web-font TeX/Main/Regular

Blog personale che tratta argomenti tecnico-scientifici e dei miei hobby.

martedì 3 gennaio 2017

Equazioni differenziali con MatLab


Risolvere equazioni differenziali con MatLab

Sintassi generale per un file-M per la soluzione di un problema di cauchy:
function F=nomefunzione(t,y)
dove la funzione F, F=F(t,y) vale per il seguente problema di Cauchy => \begin{cases} y'=F(t,y)\\ y(t_0)=y_0 \end{cases}
se abbiamo il seguente problema di Cauchy:
\begin{cases} y'=F(t,y)\\ y(t_0)=y_0 \end{cases}
la risoluzione del problema è:
[t,y]=ode45('nomefunzione',tstan,y0)
dove t0 è l'estremo sinistro dell'intervallo.

Esempio 1:
Consideriamo il caso banale:
\begin{cases} y'=t\\ y(0)=1 \end{cases}
La soluzione cercata è y= \frac {t^2}{2} +1
Per risolvere il problema con matlab:
  1. Definisco una funzione di due variabili in un M-File come  qui sotto:
  2. Definisco un intervallo di integrazione. In questo esempio cerchiamo una soluzione nell'intervallo [0,10]:
  3. L'istruzione usata , ode 23 è basata sul metodo di Runge-Kutta del 2 e 3 ordine:
  4. L’istruzione usata, ode45, è bastata sul metodo di Runge-Kutta del 4 e 5 ordine:
  5. Sono mostrati a schermo i valori di t e di y (soluzione numerica dell'equazione). Il programma non fornisce l'espressione della soluzione del problema di Cauchy ma un insieme di valori numerici da essa assunti.
  6. Plottiamo la soluzione trovata:
    plot(t,y)
  7. Poi troviamo  il polinomio interpolante di secondo grado:
    $ polyfit(t,y,2)
Esempio 2:
Studiamo il seguente problema di Cauchy:
\begin{cases}  y'=y-t \\ y(0)=1 \end{cases0}

Si tratta di un'equazione differenziale  del primo ordine.
L'integrale generale è y=c e^x +x + 1
L'integrale particolare è y=x+1.

  1. Creo un file M che lo salvo con il nome: funzionesempiouno.m
  2. Ricerca della soluzione: (si preferisce l'ode45 perchè ha una maggiore precisione anche se fa un calcolo più complesso e lungo anche se con i processori moderno non si nota la differenza)

Esempio 3:
Questa volta prendiamo un'equazione differenziale del secondo ordine:
\begin{cases} y''+y=t^3 -2 \\ y(0)=0 \\ y'(0)=0 \end{cases}
Per risolverla occorre trasformarla in un sistema di due equazioni del primo ordine ne seguente modo:
\begin{cases} y_1'=y_2 \\ y_2'=-y_1+t^3-2 \\ y_1(0)=0\\ y_2(0)=0 \end{cases}

Dove abbaimo posto y_1=y e y_2=y'
L'integrale generale è:
y(t)=A cos(t) + sin(t) + t_3 -6t-2.

Risoluzione:
  1. e risolviamo come abbiamo fatto sopra...
Share:

Related Posts:

0 commenti:

Posta un commento

Benvenuti

Benvenuti sul mio blog
Powered by Blogger.

Blogger templates