Salve a tutti,
Vista l'estrema competenza degli utenti di questo forum, volevo porvi questo altro quesito.
Devo risolvere in maniera numerica la "classica" equazione delle onde
$ (d^2\varphi)/dt^2 = a^2(d^2\varphi)/dx^2 $
Un piccolo appunto (tutto quello che ho di questo argomento...) suggerisce la seguente sostituzione
$ { ( u=\varphi ),( v = (d\varphi)/dt):} $
e dunque
$ { ( (du)/dt=v ),( (dv)/dt = a^2(d^2u)/dx^2):} $
con le seguenti I.C.
$ { ( u(x,0) = u_o(x) = \varphi_o(x) ),( v(x,0) = v_o(x) =(d\varphi_o)/dt):} $
e le seguenti B.C.
$ { ( \varphi(0,t) = \varphi(L,t) = 0 ),((d\varphi)/dt(0,t) = (d\varphi)/dt(L,t) = 0 ):} $
che diventano (e qui nasce il primo dubbio; perche $x_b$ ?)
$ { ( u(x_b,t) = 0 ),( v(x_b,t) = 0):} $
A questo punto si ha un vettore $\omega = [u,v]^T$ tale che
$ ( dul(\omega))/dt = ul(A)*ul(\omega) $
dove A dovrebbe essere una matrice a blocchi fatta così
$ [ ( 0 , I ),( a^2d^2/dx^2 , 0 ) ] $.
Nella pratica, ho capito che si discretizza la derivata spaziale con, ad esempio, un metodo alle differenze finite del secondo ordine centrato e lo si "mette" nel bocco corrispondente della matrice A.
Dopodiché si utilizza il pacchetto ODE di MatLab e si risolve, appunto, la ODE così ricavata passandogli A come variabile globale.
La mia difficoltà sta nell'implementare le B.C. e le I.C. nella matrice A.
Vi è solo un codice svolto senza commento di cui mi sono sforzato di capire qualcosa ma non ho appurato granché.
Se poteste darmi una mano, un suggerimento sarebbe davvero grandioso. Grazie!