Interpolazione polinomiale a tratti

L’interpolazione polinomiale a tratti è una tecnica utilizzata per approssimare una funzione mediante polinomi definiti su intervalli specifici del dominio. A differenza dell’interpolazione polinomiale globale, che utilizza un singolo polinomio per l’intero intervallo, l’interpolazione a tratti suddivide l’intervallo in sottointervalli e utilizza polinomi di grado inferiore in ciascun sottointervallo.

§ Definizione. Sia t : [a, b] \to \mathbb{R} e siano i nodi a = x_0 < x_1 < \dots < x_n = b. Diciamo che t è un polinomio a tratti di grado k \in \mathbb{N} rispetto alla partizione \{x_i\} se la restrizione di t a ciascun intervallo [x_i, x_{i+1}], indicata con t|_{[x_i, x_{i+1}]}, coincide con una funzione polinomiale di grado al più k.

Interpolazione lineare a tratti

Consideriamo il caso più semplice di interpolazione lineare a tratti (k=1). Useremo la notazione f_i := f(x_i) e h_i := x_{i+1} - x_i. L’interpolante lineare a tratti t(x) nell’intervallo [x_i, x_{i+1}] è definito come:

t_i(x) := t(x)|_{[x_i, x_{i+1}]} = \frac{f_{i+1} - f_i}{h_i}(x - x_i) + f_i

Convergenza

Ricordiamo la seguente proposizione riguardante il resto dell’interpolazione polinomiale:

§ Proposizione. Sia f \in C^{n+1}[a, b] and p_n il polinomio di interpolazione di grado n. Allora per ogni x \in [a, b] esiste \xi \in (a, b) tale che:

r(x) = f(x) - p_n(x) = \prod_{i=0}^n (x - x_i) \frac{f^{(n+1)}(\xi)}{(n+1)!}

Per n=1 (interpolazione lineare), la formula diventa:

r_1(x) = (x - x_0)(x - x_1) \frac{f''(\xi)}{2}

Stima di della norma infinito dell’errore

Supponiamo f \in C^2[a, b] e consideriamo x \in [x_i, x_{i+1}]. Allora:

|f(x) - t(x)| = |(x - x_i)(x - x_{i+1})| \frac{|f''(\xi)|}{2}

con \xi \in (x_i, x_{i+1}) \subseteq [a, b]. Sia M := \max_{x \in [a, b]} |f''(x)|. Allora:

|f(x) - t(x)| \le \frac{M}{2} |(x - x_i)(x - x_{i+1})|

Esprimiamo x come combinazione convessa degli estremi: x = (1 - \theta)x_i + \theta x_{i+1} con \theta \in [0, 1].

  • x - x_i = \theta(x_{i+1} - x_i) = \theta h_i
  • x - x_{i+1} = (1 - \theta)(x_i - x_{i+1}) = -(1 - \theta)h_i

Quindi:

|f(x) - t(x)| \le \frac{M}{2} |\theta(1 - \theta)| h_i^2

Poiché il valore massimo di \theta(1 - \theta) su [0, 1] è 1/4 (raggiunto in \theta = 1/2), abbiamo:

|f(x) - t(x)| \le \frac{M}{8} h_i^2 \le \frac{1}{8} M H^2

dove H := \max_i h_i. Concludiamo che \|f - t\|_\infty \le \frac{1}{8} M H^2.

Convergenza delle derivate prime

Nei nodi (punti angolosi) la derivata t' non è definita. Tuttavia, vogliamo analizzare se \|f' - t'\|_\infty \to 0 per H \to 0 negli intervalli aperti.

Sia x \in (x_i, x_{i+1}). Allora t'_i(x) = \frac{f_{i+1} - f_i}{h_i}. Per determinare f'(x) usiamo lo sviluppo di Taylor centrato in x:

  • f_i = f(x) + (x_i - x) f'(x) + \frac{1}{2}(x_i - x)^2 f''(\xi_i) per \xi_i \in (x_i, x)
  • f_{i+1} = f(x) + (x_{i+1} - x) f'(x) + \frac{1}{2}(x_{i+1} - x)^2 f''(\eta_i) per \eta_i \in (x, x_{i+1})

Sottraendo le due equazioni:

f_{i+1} - f_i = (x_{i+1} - x_i) f'(x) + \frac{1}{2} \left[ (x_{i+1} - x)^2 f''(\eta_i) - (x_i - x)^2 f''(\xi_i) \right]
f'(x) = \frac{f_{i+1} - f_i}{h_i} + \frac{1}{2h_i} \left[ (x_i - x)^2 f''(\xi_i) - (x_{i+1} - x)^2 f''(\eta_i) \right]

Allora:

\begin{aligned}
|f'(x) - t'_i(x)| &\le \frac{1}{2} \frac{M}{h_i} |(x_i - x)^2 - (x_{i+1} - x)^2| \\
&= \frac{1}{2} \frac{M}{h_i} |\theta^2 h_i^2 - (1 - \theta)^2 h_i^2| \\
&= \frac{1}{2} M h_i |\theta^2 - (1 - \theta)^2|
\end{aligned}

Poiché |\theta^2 - (1 - \theta)^2| = |2\theta - 1| \le 1 per \theta \in [0, 1], abbiamo:

|f'(x) - t'_i(x)| \le \frac{1}{2} M h_i

Quindi l’errore sulla derivata prima va come O(H) per H \to 0.

Interpolazione di Hermite

Data f \in C^k[a, b] e nodi fissati, cerchiamo una funzione g(x) \in C^k[a, b] “semplice” tale che:

\forall j = 0, \dots, k, \quad g^{(j)}(x_i) = f^{(j)}(x_i)

Nel caso dell’interpolazione polinomiale di Hermite con k=1 e \{x_i\}_{i=0}^n nodi, cerchiamo un polinomio di grado \le 2n+1 tale che:

p(x_i) = f(x_i), \quad p'(x_i) = f'(x_i)

Il resto dell’interpolazione polinomiale di Hermite per k=1 è:

r^{(H)}(x) = f(x) - p_{2n+1}(x) = \prod_{i=0}^n (x - x_i)^2 \frac{f^{(2n+2)}(\eta)}{(2n+2)!}

In particolare, per n=1 (un solo intervallo [x_0, x_1]):

r^{(H)}(x) = (x - x_0)^2 (x - x_1)^2 \frac{f^{(4)}(\eta)}{4!}

Interpolazione di Hermite cubica a tratti

Siano f \in C^2[a, b] e una partizione a = x_0 < x_1 < \dots < x_n = b. Cerchiamo g \in C^1[a, b] tale che per ogni i:

  1. g|_{[x_i, x_{i+1}]} = g_i sia un polinomio di grado al più 3.
  2. g(x_i) = f(x_i).
  3. g'(x_i) = f'(x_i).

La soluzione è unica. Per determinare g_i su [x_i, x_{i+1}], consideriamo la forma:

g_i(x) = a_i (x - x_i)^3 + b_i (x - x_i)^2 + c_i (x - x_i) + d_i

e imponiamo le condizioni:

  • g_i(x_i) = f_i, \quad g_i(x_{i+1}) = f_{i+1} (garantisce g \in C^0)
  • g_i'(x_i) = f_i', \quad g_i'(x_{i+1}) = f_{i+1}' (garantisce g \in C^1)

La soluzione del sistema lineare 4 \times 4 fornisce i coefficienti:

\begin{aligned}
g_i(x) = &[2(f_i - f_{i+1}) + h_i(f_i' + f_{i+1}')] \frac{(x - x_i)^3}{h_i^3} \\
&- [3(f_i - f_{i+1}) + h_i(2f_i' + f_{i+1}')] \frac{(x - x_i)^2}{h_i^2} \\
&+ f_i' (x - x_i) + f_i
\end{aligned}

Convergenza

Usiamo la formula del resto. Supponiamo f \in C^4[a, b], allora per x \in [x_i, x_{i+1}]:

\begin{aligned}
|f(x) - g_i(x)| &= \left| (x - x_i)^2 (x - x_{i+1})^2 \frac{f^{(4)}(\eta)}{4!} \right| \\
&\le \frac{1}{4!} K |(x - x_i)^2 (x - x_{i+1})^2| \\
&\le \frac{1}{4!} K \frac{1}{16} h_i^4 = \frac{1}{384} K h_i^4 \\
&\le \frac{1}{384} K H^4
\end{aligned}

dove K = \|f^{(4)}\|_\infty. Quindi \|f - g\|_\infty \le \frac{1}{384} K H^4, ovvero l’errore decade come O(H^4).

Spline

Sia f : [a, b] \to \mathbb{R}, k \ge 2 e nodi a = x_0 < x_1 < \dots < x_n = b.

§ Definizione. Una funzione s(x) : [a, b] \to \mathbb{R} è una funzione spline di ordine k per f rispetto ai nodi \{x_i\} se valgono le seguenti condizioni:

  • s_i := s|_{[x_i, x_{i+1}]} è un polinomio di grado < k.
  • s(x_i) = f(x_i) per ogni i.
  • s \in C^{k-2}[a, b].

Spline cubiche

Sia s(x) una spline cubica (k=4) per f sui nodi \{x_i\}. Su ogni intervallo [x_i, x_{i+1}] abbiamo:

s_i(x) = a_i (x - x_i)^3 + b_i (x - x_i)^2 + c_i (x - x_i) + d_i

Vogliamo ricavare i coefficienti a_i, b_i, c_i, d_i. Le condizioni imposte sono:

  • s_i(x_i) = f_i per i = 0, \dots, n-1 (interpolazione e continuità C^0).

  • s_i(x_{i+1}) = f_{i+1} per i = 0, \dots, n-1 (interpolazione e continuità C^0).

  • s_{i-1}'(x_i) = s_i'(x_i) per i = 1, \dots, n-1 (continuità delle derivate prime C^1).

  • s_{i-1}''(x_i) = s_i''(x_i) per i = 1, \dots, n-1 (continuità delle derivate seconde C^2).

In totale abbiamo 4n coefficienti e 2n + 2(n-1) = 4n - 2 equazioni. Il sistema risultante è sottodeterminato, quindi la soluzione non è unica. Vediamo le possibili condizioni al contorno che si possono imporre per ottenere l’unicità.

§ Definizione. Le condizioni aggiuntive per ottenere l’unicità della spline cubica sono dette condizioni al contorno. Le più comuni sono:

  • Spline naturali: s''(a) = 0 e s''(b) = 0.

  • Spline complete: s'(a) = f'(a) e s'(b) = f'(b).

  • Spline not-a-knot: s_0'''(x_1) = s_1'''(x_1) e s_{n-2}'''(x_{n-1}) = s_{n-1}'''(x_{n-1}).

  • Spline periodiche: s'(a) = s'(b) e s''(a) = s''(b).

Costruzione della spline tramite i momenti

Uno dei modi per trovare s(x) è scrivere il sistema in a_i, b_i, c_i, d_i e risolverlo. Un altro metodo più efficiente è quello dei momenti.

§ Definizione. Sia s(x) : [a, b] \to \mathbb{R} una spline cubica. I momenti di s(x) sono i valori della derivata seconda nei nodi:

\mu_i := s''(x_i), \quad i = 0, \dots, n

Caratterizziamo s attraverso i momenti. Per x \in [x_i, x_{i+1}], la derivata seconda s_i''(x) è un polinomio di primo grado. Supponendo che i momenti siano noti, possiamo scrivere s_i''(x) per interpolazione lineare:

s_i''(x) = \mu_{i+1} \frac{x - x_i}{h_i} - \mu_i \frac{x - x_{i+1}}{h_i}

Integrando successivamente rispetto a x, otteniamo:

s_i'(x) = \mu_{i+1} \frac{(x - x_i)^2}{2h_i} - \mu_i \frac{(x - x_{i+1})^2}{2h_i} + \alpha_i
s_i(x) = \mu_{i+1} \frac{(x - x_i)^3}{6h_i} - \mu_i \frac{(x - x_{i+1})^3}{6h_i} + \alpha_i(x - x_i) + \beta_i

Le costanti di integrazione \alpha_i e \beta_i vengono determinate imponendo le condizioni di interpolazione s_i(x_i) = f_i e s_i(x_{i+1}) = f_{i+1}:

\left\{ \begin{aligned}
\alpha_i &= \frac{f_{i+1} - f_i}{h_i} - \frac{h_i}{6}(\mu_{i+1} - \mu_i) \\
\beta_i &= f_i - \frac{h_i^2}{6} \mu_i
\end{aligned} \right.

§ Teorema. Sia f : [a, b] \to \mathbb{R} con a = x_0 < x_1 < \dots < x_n = b e s(x) una spline cubica per f con nodi \{x_i\}. Allora vale:

\begin{aligned}
s_i(x) = &\mu_{i+1} \frac{(x - x_i)^3}{6h_i} - \mu_i \frac{(x - x_{i+1})^3}{6h_i} \\
&+ \left[ \frac{f_{i+1} - f_i}{h_i} - \frac{h_i}{6}(\mu_{i+1} - \mu_i) \right](x - x_i) + f_i - \mu_i \frac{h_i^2}{6}
\end{aligned}

Osservazione. La condizione sulle derivate seconde è implicita in quanto consideriamo i momenti come dati (punti di interpolazione per la derivata seconda).

Equazioni dei momenti

Imponiamo la condizione di continuità della derivata prima nei nodi interni: s_{i-1}'(x_i) = s_i'(x_i) per i = 1, \dots, n-1.

Dalla formula per s_i'(x), calcoliamo il valore nel nodo sinistro x_i:

s_i'(x_i) = - \mu_i \frac{h_i}{2} + \alpha_i = - \mu_i \frac{h_i}{2} + \frac{f_{i+1} - f_i}{h_i} - \frac{h_i}{6}(\mu_{i+1} - \mu_i)

E il valore nel nodo destro dell’intervallo precedente x_i:

s_{i-1}'(x_i) = \mu_i \frac{h_{i-1}}{2} + \alpha_{i-1} = \mu_i \frac{h_{i-1}}{2} + \frac{f_i - f_{i-1}}{h_{i-1}} - \frac{h_{i-1}}{6}(\mu_i - \mu_{i-1})

Eguagliando e riordinando i termini otteniamo l’equazione lineare per i momenti:

h_{i-1}\mu_{i-1} + 2(h_{i-1} + h_i)\mu_i + h_i\mu_{i+1} = 6 \underbrace{\left( \frac{f_{i+1} - f_i}{h_i} - \frac{f_i - f_{i-1}}{h_{i-1}} \right)}_{f_{i-1, i, i+1}}

Ovvero:

h_{i-1}\mu_{i-1} + 2(h_{i-1} + h_i)\mu_i + h_i\mu_{i+1} = 6 f_{i-1, i, i+1}

§ Teorema. Sia f : [a, b] \to \mathbb{R} e \{x_i\} una partizione. La funzione s(x) è una spline cubica per f se e solo se i momenti \mu_i soddisfano il sistema lineare sopra definito per ogni i = 1, \dots, n-1, con l’aggiunta delle opportune condizioni al contorno.

Rappresentazione matriciale

A seconda delle condizioni al contorno scelte, il sistema assume forme diverse.

Spline naturali

Imponendo \mu_0 = \mu_n = 0, abbiamo (n-1) equazioni:

\begin{bmatrix}
2(h_0+h_1) & h_1 & 0 & \\
h_1 & 2(h_1+h_2) & h_2 & \\
& \ddots & \ddots & \ddots \\
& 0 & h_{n-2} & 2(h_{n-2}+h_{n-1})
\end{bmatrix}
\begin{bmatrix}
\mu_1 \\ \mu_2 \\ \vdots \\ \mu_{n-1}
\end{bmatrix}
= 6
\begin{bmatrix}
f_{0, 1, 2} \\
f_{1, 2, 3} \\
\vdots \\
f_{n-2, n-1, n}
\end{bmatrix}

Spline complete

Sia s'(x_0) = f_0' e s'(x_n) = f_n'. Le equazioni aggiuntive ai bordi portano a un sistema (n+1) \times (n+1):

\begin{bmatrix}
2h_0 & h_0 & 0 & \\
h_0 & 2(h_0+h_1) & h_1 & \\
& \ddots & \ddots & \ddots \\
& 0 & h_{n-1} & 2h_{n-1}
\end{bmatrix}
\begin{bmatrix}
\mu_0 \\ \mu_1 \\ \vdots \\ \mu_n
\end{bmatrix}
= 6
\begin{bmatrix}
f_{0, 1} - f_0' \\
f_{0, 1, 2} \\
\vdots \\
f_n' - f_{n-1, n}
\end{bmatrix}

Nodi equispaziati

Per nodi equispaziati (h_i = h), le matrici si semplificano dividendo per h:

  • Naturali:
\begin{bmatrix}
4 & 1 & 0 & \\
1 & 4 & 1 & \\
& \ddots & \ddots & \ddots \\
& 0 & 1 & 4
\end{bmatrix}
\begin{bmatrix}
\mu_0 \\ \mu_1 \\ \vdots \\ \mu_n
\end{bmatrix}
= \frac{6}{h}
\begin{bmatrix}
f_{0, 1, 2} \\
f_{1, 2, 3} \\
\vdots \\
f_{n-2, n-1, n}
\end{bmatrix}
  • Complete:
\begin{bmatrix}
2 & 1 & 0 & \\
1 & 4 & 1 & \\
& \ddots & \ddots & \ddots \\
& 0 & 1 & 2
\end{bmatrix}
\begin{bmatrix}
\mu_0 \\ \mu_1 \\ \vdots \\ \mu_n
\end{bmatrix}
= \frac{6}{h}
\begin{bmatrix}
f_{0, 1} - f_0' \\
f_{0, 1, 2} \\
\vdots \\
f_n' - f_{n-1, n}
\end{bmatrix}

Convergenza

Consideriamo le spline complete con nodi equispaziati. Sia M la matrice del sistema.

§ Proposizione. Sia M la matrice associata al sistema delle spline complete. Allora:

  1. M è invertibile e a predominanza diagonale in senso stretto.
  2. \|M^{-1}\|_\infty \le 1.
  3. Utilizzando la notazione (|A|)_{ij} := |A_{ij}|, si ha |M^{-1}| [1, 2, \dots, 2, 1]^T = [1, \dots, 1]^T.

Osservazione. Il numero di condizionamento in norma infinito soddisfa \kappa_\infty(M) = \|M\|_\infty \|M^{-1}\|_\infty \le 6 \cdot 1 = 6, e non dipende dal numero di nodi n. Questo garantisce un’ottima stabilità numerica nel calcolo dei momenti.

Lemma di Neumann

Per dimostrare la convergenza, utilizzeremo il seguente risultato di analisi matriciale.

§ Lemma (Neumann). Sia A \in \mathbb{R}^{n \times n} con \|A\| < 1 (dove \|\cdot\| è la norma indotta). Allora:

  1. (I - A) è invertibile.
  2. La serie \sum_{j=0}^\infty A^j converge a (I - A)^{-1}.
  3. \|(I - A)^{-1}\| \le \dfrac{1}{1 - \|A\|}.

Dimostrazione. Osserviamo i seguenti punti:

Poiché \|A\| < 1, la serie geometrica di matrici \sum_{j=0}^\infty A^j converge assolutamente in quanto \sum \|A^j\| \le \sum \|A\|^j < \infty.

L’operatore (I - A) è invertibile. Infatti, se esistesse v \ne 0 tale che (I - A)v = 0, allora Av = v, il che implicherebbe che 1 è un autovalore di A. Ma sappiamo che il raggio spettrale \rho(A) \le \|A\| < 1, quindi 1 non può essere un autovalore.

Verifichiamo l’identità dell’inversa:

(I - A) \sum_{j=0}^m A^j = I - A^{m+1}

Poiché \|A\| < 1, allora A^{m+1} \to 0 per m \to \infty. Quindi (I - A) \sum_{j=0}^\infty A^j = I.

Passando alla norma, otteniamo:

\|(I - A)^{-1}\| = \left\| \sum_{j=0}^\infty A^j \right\| \le \sum_{j=0}^\infty \|A\|^j = \frac{1}{1 - \|A\|}

§ Teorema. Siano f \in C^4[a, b] e s(x) la spline cubica completa su nodi equispaziati con passo h. Siano \mu_i i momenti di s e sia M := \|f^{(4)}\|_\infty. Allora:

\max_{i=0, \dots, n} |f''(x_i) - \mu_i| \le \frac{3}{4} M h^2

Risultati di convergenza

Il seguente teorema riassume la velocità di convergenza della spline cubica e delle sue derivate verso la funzione originaria al diminuire del passo h.

§ Teorema. Nelle ipotesi del teorema precedente, si hanno le seguenti stime di errore in norma infinito:

  1. \|f'''(x) - s'''(x)\|_{\infty, [x_i, x_{i+1}]} \le 2 M h

  2. \|f''(x) - s''(x)\|_{\infty, [a, b]} \le \frac{7}{4} M h^2

  3. \|f'(x) - s'(x)\|_\infty \le \frac{7}{4} M h^3

  4. \|f(x) - s(x)\|_\infty \le \frac{7}{8} M h^4

Dimostrazione.

  1. Analizziamo l’errore sulla derivata terza. Sia x \in [x_i, x_{i+1}]. Poiché s_i''' è costante:

    s_i'''(x) = \frac{\mu_{i+1} - \mu_i}{h}

    L’errore è:

    \begin{aligned}
    & f'''(x) - s_i'''(x) = \\[0.5em]
    &= f'''(x) - \frac{\mu_{i+1} - \mu_i}{h} \\
    &= f'''(x) - \frac{(\mu_{i+1} - f''(x_{i+1})) - (\mu_i - f''(x_i)) + f''(x_{i+1}) - f''(x_i)}{h}
    \end{aligned}

    dove abbiamo aggiunto e tolto a numeratore i termini f''(x_{i+1}), f''(x_i) e f''(x).

    Ora ricordiamo che

    • \max_i |\mu_i - f''(x_i)| \le \dfrac{3}{4} M h^2

    • Usando Taylor per f'' in x e valutando in x_{i+1} e x_i otteniamo:

      \begin{aligned}
          f''(x_{i+1}) &=
          f''(x) + f'''(x)(x_{i+1} - x) + \frac{1}{2} f^{(4)}(\xi_2)(x_{i+1} - x)^2 \\
          f''(x_i) &=
          f''(x) + f'''(x)(x_i - x) + \frac{1}{2} f^{(4)}(\xi_1)(x_i - x)^2
      \end{aligned}

      Sottraendo la prima dalla seconda otteniamo che il termine f'''(x) si elimina:

      \begin{aligned}
      & f'''(x) (x_{i+1} - x) - f'''(x)(x_{i} - x) = \\
      &= f'''(x) (x_{i+1} - \cancel{x} - x_{i} + \cancel{x}) = \\
      &= f'''(x) (x_{i+1} - x_i) \\
      &= f'''(x) h
      \end{aligned}

      dunque moltiplicando per 1/h si ricava:

      f''(x_{i+1}) - f''(x_i) = f'''(x) h + \frac{1}{2} \left[ f^{(4)}(\xi_2)(x_{i+1} - x)^2 - f^{(4)}(\xi_1)(x_i - x)^2 \right]

      ora osserviamo che x \in [x_i, x_{i+1}], dunque per t \in [0, 1] possiamo scrivere x = t x_i + (1 - t) x_{i+1}. Quindi:

      (x_{i+1} - x)^2 + (x_i - x)^2 = (t^2 + (1 - t)^2) (x_{i+1} - x_i)^2 \le (1) h^2 = h^2

    Sostituendo nella formula dell’errore otteniamo:

    \begin{aligned}
    f&'''(x) - s_i'''(x) = \\[0.5em]
    = & f'''(x) - \frac{(\mu_{i+1} - f''(x_{i+1})) - (\mu_i - f''(x_i)) + f''(x_{i+1}) - f''(x_i)}{h} \\[0.5em]
    = & \frac{(\mu_i - f''(x_i)) - (\mu_{i+1} - f''(x_{i+1}))}{h} + \\
    - & \frac{1}{2h} \left[ f^{(4)}(\xi_2)(x_{i+1} - x)^2 - f^{(4)}(\xi_1)(x_i - x)^2 \right]
    \end{aligned}

    Applicando la stima sui momenti |f''(x_i) - \mu_i| \le \dfrac{3}{4} M h^2 e la stima |f^{(4)}| \le M:

    \begin{aligned}
    & |f'''(x) - s_i'''(x)| \le \\[0.5em]
    & \le \frac{1}{h} \left( \frac{3}{4} M h^2 + \frac{3}{4} M h^2 \right) + \frac{M}{2h} \underbrace{((x - x_i)^2 + (x_{i+1} - x)^2)}_{\le h^2} \\
    &= \frac{3}{2} M h + \frac{1}{2} M h = 2 M h
    \end{aligned}
  2. Sia x \in [a, b]. Se x è un nodo, dalla stima dei momenti sappiamo già che:

    |f''(x_i) - s''(x_i)| = |f''(x_i) - \mu_i| \le \frac{3}{4} M h^2 \le \frac{7}{4} M h^2

    Se x non è un nodo, sia x_i il nodo più vicino a x e j tale che x \in [x_j, x_{j+1}]. Allora:

    \int_{x_i}^x (f'''(t) - s_j'''(t)) \mathrm dt = (f''(x) - s_j''(x)) - (f''(x_i) - s_j''(x_i))

    Da cui:

    \begin{aligned}
    |f''(x) - s_j''(x)| &\le \int_{x_i}^x |f'''(t) - s_j'''(t)| \mathrm dt + |f''(x_i) - \mu_i| \\
    &\le |x - x_i| \cdot \max_{t \in [x_i, x]} |f'''(t) - s_j'''(t)| + \frac{3}{4} M h^2 \\
    &\le \frac{h}{2} (2 M h) + \frac{3}{4} M h^2 = \frac{7}{4} M h^2
    \end{aligned}

    Questo vale per ogni x \in [a, b], quindi \|f'' - s''\|_\infty \le \dfrac{7}{4} M h^2.

  3. Consideriamo la funzione e(x) := f(x) - s(x). Poiché s interpola f, e(x_i) = 0 per ogni i. Per il teorema di Rolle, in ogni intervallo (x_i, x_{i+1}) esiste almeno un punto \xi_i in cui la derivata si annulla: e'(\xi_i) = f'(\xi_i) - s'(\xi_i) = 0.

    Procedendo come nel punto precedente:

    \int_{\xi_i}^x (f''(t) - s''(t)) \mathrm dt = f'(x) - s'(x)

    Allora:

    |f'(x) - s'(x)| \le |x - \xi_i| \cdot \max |f'' - s''| \le h \left( \frac{7}{4} M h^2 \right) = \frac{7}{4} M h^3

    Quindi \|f' - s'\|_\infty \le \dfrac{7}{4} M h^3.

  4. Sia x \in [a, b] e sia x_i il nodo più vicino a x. Poiché f(x_i) - s(x_i) = 0, abbiamo:

    \int_{x_i}^x (f'(t) - s'(t)) \mathrm dt = f(x) - s(x)

    Quindi:

    |f(x) - s(x)| \le |x - x_i| \cdot \max_{t \in [x_i, x]} |f' - s'| \le \frac{h}{2} \left( \frac{7}{4} M h^3 \right) = \frac{7}{8} M h^4

    Concludiamo che \|f - s\|_\infty \le \dfrac{7}{8} M h^4.

Proprietà di minima curvatura

Le spline naturali godono di una proprietà di ottimalità legata all’energia di curvatura.

§ Teorema (Proprietà di minima curvatura). Sia f : [a, b] \to \mathbb{R} con nodi \{x_i\}. Allora la spline naturale s(x) \in C^2[a, b] minimizza la quantità

\int_a^b [g''(x)]^2 \mathrm dx

per ogni g \in C^2[a, b] con g(x_i) = f(x_i) per ogni i.

Dimostrazione.

Sia g \in C^2[a, b] con g(x_i) = f(x_i) per ogni i. Dimostriamo che:

\int_a^b (s''(x))^2 \mathrm dx \le \int_a^b (g''(x))^2 \mathrm dx

Consideriamo:

\begin{aligned}
0 &\le \int_a^b (s''(x) - g''(x))^2 \mathrm dx \\
&= \int_a^b (s''(x))^2 \mathrm dx + \int_a^b (g''(x))^2 \mathrm dx - 2 \int_a^b s''(x) g''(x) \mathrm dx \\
&= \int_a^b (g'')^2 - \int_a^b (s'')^2 + 2 \int_a^b s'' [s'' - g'']
\end{aligned}

Mostriamo che 2 \int_a^b s'' [s'' - g''] \mathrm dx = 0. Analizziamo l’integrale su ogni intervallo [x_i, x_{i+1}] integrando per parti due volte:

\begin{aligned}
    & \int_{x_i}^{x_{i+1}} s_i'' \cdot (s_i - g)'' \mathrm dx = \\
    & = \big[ (s_i' - g') \cdot s_i'' \big]_{x_i}^{x_{i+1}} - \underbrace{\big[ (s_i - g) s_i''' \big]_{x_i}^{x_{i+1}}}_{=0} + \int_{x_i}^{x_{i+1}} (s_i - g) \underbrace{s_i^{(4)}}_{=0} \mathrm dx
\end{aligned}

dove il secondo termine si annulla poiché s(x_i) = g(x_i) = f(x_i) nei nodi, e il terzo termine si annulla poiché s_i è un polinomio di grado al più 3.

\begin{aligned}
    & \int_a^b s'' [s'' - g''] \mathrm dx \\
    &= \sum_{i=0}^{n-1} \big[ (s_i' - g') \cdot s_i'' \big]_{x_i}^{x_{i+1}} \\
    &= (s'(x_n) - g'(x_n)) s''(x_n) - (s'(x_0) - g'(x_0)) s''(x_0) \\
    &= 0
\end{aligned}

poiché s''(x_n) = s''(x_0) = 0 in quanto per le spline naturali. Segue che:

0 \le \int_a^b (g'')^2 - \int_a^b (s'')^2 \implies \int_a^b (s''(x))^2 \mathrm dx \le \int_a^b (g''(x))^2 \mathrm dx

§ Teorema (Proprietà di minima curvatura per spline complete). Sia f: [a, b] \to \mathbb{R} di classe C^1[a, b] con nodi \{x_i\}. Allora la spline completa s(x) \in C^2[a, b] minimizza la quantità

\int_a^b (g''(x))^2 \mathrm dx

al variare di g \in C^2[a, b] tale che g(x_i) = f(x_i) per ogni i, e che soddisfa le condizioni al contorno g'(a) = f'(a) e g'(b) = f'(b).

Dimostrazione.

Si procede come nella dimostrazione precedente, ma in questo caso non si annullano necessariamente s''(x_0) e s''(x_n). Tuttavia, si annullano i termini

s'(x_n) - g'(x_n) \quad \text{e} \quad s'(x_0) - g'(x_0)

per le proprietà delle spline complete

s'(a) = f'(a), \quad s'(b) = f'(b)

e per le ipotesi su g

g'(a) = f'(a), \quad g'(b) = f'(b)

Dunque l’integrale di bordo è nullo e la tesi segue come nel caso delle spline naturali.