Premetto che non ho un forte background in analisi numerica, per cui potrei commettere degli errori grossolani.
Motivato da alcuni problemi di elaborazione dei segnali, vorrei risolvere numericamente un ODE lineare di ordine $m$ del tipo:
\begin{equation*}
y(t)+ a_1(t) y'(t) + \dots + a_m(t) y^{(m)}(t) = b_0(t) x(t) + b_1(t) x'(t) + \dots + b_m(t) x^{(m)}(t),
\end{equation*}
dove $x$ è nota (input) e $y$ è incognita (output). Sia $f_s > 0$ la frequenza di campionamento e $y[n] = y(n/f_s)$ la soluzione approssimata da calcolare. Per brevità, possiamo porre:
\begin{equation*}
f(t) := b_0(t) x(t) + \dots + b_m(t) x^{(m)}(t).
\end{equation*}
Finora ho fatto così. Prima di tutto, ho ridotto l'equazione a un sistema differenziale lineare del primo ordine al solito modo:
\begin{equation*}
\begin{cases}
y_0(t) + a_1(t) y_1(t) + \dots + a_m(t) y_m(t) = f(t) \\
y'_0 (t) = y_1(t) \\
\dots \\
y'_{m-1}(t) = y_m(t). \\
\end{cases}
\end{equation*}
Poi ho usato il seguente metodo lineare 1-step:
\begin{equation} \label{eq:method}
y'[n] \simeq (\alpha+1) f_s \ y[n] - (\alpha+1) f_s \ y[n-1] - \alpha \ y'[n-1],
\end{equation}
dove $\alpha \in [0,1]$. Si ottiene così il sistema lineare
\begin{cases}
y_0[n] + a_1[n] y_1[n] + \dots + a_m[n] y_m[n] = f[n] \\
y_{i+1}[n] = (\alpha+1) f_s \ y_i[n] - (\alpha+1) f_s \ y_i[n-1] - \alpha \ y_{i+1}[n-1], \hspace{1 cm} i = 0, \dots, m-1 \\
\end{cases}
e la soluzione è data ricorsivamente da:
\begin{cases}
y_0[n] = \dfrac{f[n] + \sum_{i=1}^m \{ a_i[n] \sum_{j=1}^i (\alpha+1)^{i-j} f_s^{i-j}((\alpha+1) f_s \ y_i[n-1] + \alpha \ y_{i+1}[n-1])\}}{1 + \sum_{i=1}^m a_i[n] (\alpha+1)^i f_s^i} \\
y_{i+1}[n] = (\alpha+1) f_s \ y_i[n] - (\alpha+1) f_s \ y_i[n-1] - \alpha \ y_{i+1}[n-1], \hspace{1 cm} i = 0, \dots, m-1 \end{cases}
Ora vi espongo i miei dubbi.
1) Il procedimento è corretto?
2) La riduzione a un sistema di equazioni del primo ordine può inficiare la qualità della soluzione? Quali sono le alternative? Ad esempio, come si comportano i metodi multistep?
3) Il metodo lineare 1-step più generale è:
\begin{equation*}
y'[n] \simeq k_1 y[n] + k_2 y[n-1] + k_3 y'[n-1],
\end{equation*}
dove $k_1, k_2, k_3 \in \mathbb R$. L'espressione (\ref{eq:method}) si ottiene imponendo che il metodo sia almeno del primo ordine, mentre la condizione $\alpha \in [0,1]$ serve ad evitare problemi di stabilità. Per $\alpha = 0$ si ottiene Eulero all'indietro, per $\alpha = 1$ il metodo del trapezio (per $y'$) e per $\alpha \to \infty$ Eulero in avanti. Questo metodo è citato in alcuni articoli del campo applicativo su cui sto lavorando, ma non ne ho trovato traccia nella letteratura matematica. Conoscete qualche referenza? Come si comporta, a livello di efficienza e accuratezza, rispetto a metodi più usuali?
4) In generale, quali referenze mi consigliate per metodi numerici per ODE, in particolare lineari?
Grazie in anticipo.