Dall’ortogonalità alla ricorrenza
Sia \{\phi_k\}_{k\ge0} una famiglia ortonormale, con coefficiente principale positivo, rispetto a un peso positivo su un intervallo reale. Ortonormale significa
\langle\phi_j,\phi_k\rangle_w=
\begin{cases}
1 & \text{se } j=k,\\
0 & \text{se } j\ne k,
\end{cases}
\tag{16.1}
e \deg\phi_k=k, cosicché \phi_0,\ldots,\phi_m è una base ortonormale di \mathcal P_m per ogni m.
La moltiplicazione per x ha allora una rappresentazione tridiagonale
x\,\phi_k(x)=a_{k+1}\phi_{k+1}(x)+b_k\phi_k(x)+a_k\phi_{k-1}(x),
\qquad a_k>0,
\tag{16.2}
con la convenzione a_0=0, \phi_{-1}=0. Vale la pena vedere perché, in tre righe. Il polinomio x\phi_k ha grado k+1, dunque si scrive in modo unico nella base \phi_0,\ldots,\phi_{k+1}:
x\,\phi_k=\sum_{j=0}^{k+1}c_{kj}\,\phi_j,
\qquad
c_{kj}=\langle x\phi_k,\phi_j\rangle_w .
La chiave è che il fattore x può essere spostato da una parte all’altra del prodotto scalare, perché moltiplicare per x non tocca il peso:
\langle x\phi_k,\phi_j\rangle_w
=\int_a^b x\,\phi_k(x)\,\phi_j(x)\,w(x)\,\mathrm dx
=\langle\phi_k,x\phi_j\rangle_w .
Se j\le k-2 il polinomio x\phi_j ha grado j+1\le k-1<k, quindi è combinazione di \phi_0,\ldots,\phi_{k-1} e il prodotto scalare con \phi_k è nullo: c_{kj}=0. Sopravvivono solo tre coefficienti,
b_k=\langle x\phi_k,\phi_k\rangle_w,\qquad
a_k=\langle x\phi_{k-1},\phi_k\rangle_w=\langle x\phi_k,\phi_{k-1}\rangle_w,
e lo stesso scambio mostra che il coefficiente di \phi_{k-1} in x\phi_k coincide con quello di \phi_{k+1} in x\phi_{k-1}: è questo che rende la rappresentazione simmetrica. Infine a_k>0 perché, confrontando i coefficienti principali in 16.2, a_{k+1}=\kappa_k/\kappa_{k+1}>0, avendo indicato con \kappa_k>0 il coefficiente principale di \phi_k.
Il teorema di Favard
A questo punto è importante distinguere l’implicazione diretta da quella inversa: la prima è quanto appena visto, la seconda è un risultato profondo.
Teorema 16.1 (Ricorrenza a tre termini e teorema di Favard) (Verso diretto.) Sia \{\phi_k\}_{k\ge0} ortonormale rispetto a un peso positivo w, con \deg\phi_k=k e coefficiente principale positivo. Allora esistono numeri reali b_k e numeri a_k>0 tali che valga 16.2 per ogni k\ge0.
(Verso inverso, teorema di Favard.) Viceversa, si scelgano in modo del tutto arbitrario numeri reali b_0,b_1,\ldots e numeri positivi a_1,a_2,\ldots, e si definiscano i polinomi \phi_k per ricorrenza tramite 16.2, partendo da \phi_{-1}=0 e \phi_0=\text{cost}>0. Allora esiste una misura positiva sulla retta reale rispetto alla quale la famiglia così costruita è ortonormale.
Il verso diretto è stato dimostrato qui sopra (e, in altra normalizzazione, in Capitolo 15): è una conseguenza immediata dell’ortogonalità e dello scambio \langle x\phi_k,\phi_j\rangle_w=\langle\phi_k,x\phi_j\rangle_w.
Il verso inverso è il risultato non banale, e la sua dimostrazione — che costruisce la misura a partire dai coefficienti — esula da questo corso; si veda [1]. Il suo significato però è semplice da enunciare: la ricorrenza a tre termini caratterizza i polinomi ortogonali. Se una successione di polinomi obbedisce a una relazione di quella forma, con a_k>0, allora è una famiglia ortogonale per un qualche peso, anche se il peso non è stato nominato. Non esistono famiglie con quella struttura che non siano ortogonali, e non esistono famiglie ortogonali che non abbiano quella struttura.
La matrice di Jacobi
Vogliamo riscrivere la ricorrenza 16.2 come un prodotto matrice–vettore. Costruiamo la matrice un pezzo alla volta, partendo dalla ricorrenza stessa.
Primo: mettere la x a destra. La ricorrenza, così com’è scritta, esprime x\phi_k in funzione di tre polinomi consecutivi. Riordiniamola mettendo a sinistra i tre polinomi e a destra la moltiplicazione per x:
a_k\,\phi_{k-1}(x)+b_k\,\phi_k(x)+a_{k+1}\,\phi_{k+1}(x)
\;=\;x\,\phi_k(x).
\tag{16.3}
Nulla è cambiato, ma ora la 16.3 ha la forma «combinazione lineare di \phi = x per un \phi»: è una riga di un sistema lineare in cui le incognite sono i valori \phi_0(x),\phi_1(x),\ldots
Secondo: scrivere le righe una sotto l’altra. Fissiamo n e scriviamo la 16.3 per k=0,1,2,\ldots,n-1, ricordando le convenzioni a_0=0 e \phi_{-1}=0, che fanno sparire il primo termine quando k=0:
\begin{aligned}
k=0:\quad & b_0\phi_0+a_1\phi_1 &&&&= x\,\phi_0,\\[2pt]
k=1:\quad & a_1\phi_0+b_1\phi_1+a_2\phi_2 &&&&= x\,\phi_1,\\[2pt]
k=2:\quad & a_2\phi_1+b_2\phi_2+a_3\phi_3 &&&&= x\,\phi_2,\\[2pt]
& \qquad\qquad\ddots &&&&\ \ \vdots\\[2pt]
k=n-2:\quad & a_{n-2}\phi_{n-3}+b_{n-2}\phi_{n-2}+a_{n-1}\phi_{n-1} &&&&= x\,\phi_{n-2},\\[2pt]
k=n-1:\quad & a_{n-1}\phi_{n-2}+b_{n-1}\phi_{n-1}+a_n\phi_n &&&&= x\,\phi_{n-1}.
\end{aligned}
\tag{16.4}
Si osservino due cose. Le prime n-1 righe coinvolgono soltanto \phi_0,\ldots,\phi_{n-1}: sono n-1 equazioni «chiuse». L’ultima riga, quella con k=n-1, fa comparire in più il polinomio \phi_n, che non è fra le incognite: lo isoliamo portandolo a destra,
a_{n-1}\phi_{n-2}+b_{n-1}\phi_{n-1}
= x\,\phi_{n-1}-a_n\,\phi_n .
Terzo: leggere i coefficienti riga per riga. Raccogliamo le incognite nel vettore colonna
\Phi(x)=\begin{pmatrix}\phi_0(x)\\ \phi_1(x)\\ \vdots\\ \phi_{n-1}(x)\end{pmatrix}
\in\Re^{n},
e numeriamo righe e colonne da 0 a n-1, come i polinomi. Nella riga k di 16.4 i coefficienti non nulli sono soltanto tre, e occupano le colonne k-1, k e k+1:
\underbrace{a_k}_{\text{colonna } k-1},\qquad
\underbrace{b_k}_{\text{colonna } k},\qquad
\underbrace{a_{k+1}}_{\text{colonna } k+1}.
Tutte le altre colonne hanno coefficiente zero. Una matrice i cui elementi non nulli stanno solo sulla diagonale e sulle due diagonali immediatamente adiacenti si dice tridiagonale.
Quarto: la matrice. Mettendo insieme i coefficienti delle n righe si ottiene la matrice di Jacobi
J_n=
\begin{pmatrix}
b_0 & a_1 & & & \\
a_1 & b_1 & a_2 & & \\
& a_2 & b_2 & \ddots & \\
& & \ddots & \ddots & a_{n-1} \\
& & & a_{n-1} & b_{n-1}
\end{pmatrix}
\in\Re^{n\times n},
\tag{16.5}
dove le caselle lasciate in bianco valgono zero. La matrice è simmetrica e non per caso: l’elemento di posto (k,k-1) vale a_k perché è il coefficiente di \phi_{k-1} nella riga k; l’elemento di posto (k-1,k) vale a_{(k-1)+1}=a_k perché è il coefficiente di \phi_k nella riga k-1. Sono lo stesso numero, ed è questa la ragione per cui conviene lavorare con i polinomi ortonormali: in un’altra normalizzazione i due coefficienti sarebbero diversi e la matrice non sarebbe simmetrica.
Con questa notazione le n equazioni 16.4 si riassumono in una sola:
J_n\,\Phi(x)=x\,\Phi(x)-a_n\,\phi_n(x)\,e_n,
\tag{16.6}
dove e_n=(0,\ldots,0,1)^T è l’ultimo vettore della base canonica: il termine di disturbo -a_n\phi_n(x) compare infatti solo nell’ultima riga. Scritta per esteso con n=4, la 16.6 è
\begin{pmatrix}
b_0 & a_1 & 0 & 0 \\
a_1 & b_1 & a_2 & 0 \\
0 & a_2 & b_2 & a_3\\
0 & 0 & a_3 & b_3
\end{pmatrix}
\begin{pmatrix}\phi_0(x)\\ \phi_1(x)\\ \phi_2(x)\\ \phi_3(x)\end{pmatrix}
=x\begin{pmatrix}\phi_0(x)\\ \phi_1(x)\\ \phi_2(x)\\ \phi_3(x)\end{pmatrix}
-a_4\,\phi_4(x)\begin{pmatrix}0\\0\\0\\1\end{pmatrix}.
Quinto: gli zeri sono autovalori. A questo punto la conclusione si legge da sola. Se x è uno zero di \phi_n, allora \phi_n(x)=0, il termine di disturbo sparisce e 16.6 diventa
J_n\,\Phi(x)=x\,\Phi(x).
Il vettore \Phi(x) non è nullo, perché la sua prima componente \phi_0 è una costante diversa da zero. Dunque \Phi(x) è un autovettore di J_n e x è il corrispondente autovalore.
Gli n zeri di \phi_n sono quindi autovalori di J_n; poiché una matrice n\times n ha esattamente n autovalori, sono tutti e soli gli autovalori di J_n. Da qui si leggono subito due proprietà:
- sono reali, perché J_n è simmetrica a elementi reali;
- sono semplici, perché una matrice tridiagonale simmetrica con tutti gli elementi extradiagonali non nulli (a_k>0) ha autovalori distinti.
La Sezione 16.2 ridimostra gli stessi fatti, e in più la localizzazione dentro l’intervallo, con un argomento di sola integrazione. Per i polinomi di Legendre ortonormali si ha
b_k=0,
\qquad
a_k=\frac{k}{\sqrt{(2k-1)(2k+1)}}=\frac{k}{\sqrt{4k^2-1}},
\tag{16.7}
i b_k essendo nulli per la simmetria del peso. È su questa matrice che si basa l’algoritmo di Golub–Welsch di Capitolo 18: calcolare i nodi di una formula gaussiana si riduce a calcolare gli autovalori di una matrice tridiagonale simmetrica, problema per cui esistono algoritmi rapidi e stabili.