Proiezione ortogonale su un sottospazio finito-dimensionale

Riferimento : Matematica per l' Ingegneria dell' Informazione, par. 1.4

Clear["Global`"]

Spazio ambiente: (L^(2 )) sull'intervallo [0, 1]. Sottospazio: polinomi di grado ≤ 2. Prima base (base costituita dai monomi):

x[i_,t_]:= t^(i-1)

Prodotto scalare :

a[i_,j_]:=Integrate[x[i,t] * x[j,t], {t,0,1}]

Costruiamo la matrice di Gram:

G = Table[Table[a[i,j],{i,1,3}],{j,1,3}]

G//MatrixForm

Funzione da approssimare:

f[t_]:=Sin[π t]

Vettore dei termini noti:

b = Table[Integrate[f[t]*x[i,t], {t,0,1}], {i,1,3}]

LinearSolve[G,b]

N[%]

Polinomio di approssimazione ottima (proiezione ortogonale di f su (Subscript[P, 2])):

%.{x[1,t], x[2,t], x[3,t]}

Mostriamo la funzione approssimante (in rosso) e la funzione approssimata (in grigio).

Plot[{%,Sin[π t]},{t,0,1},PlotStyle->{{Thickness[0.005],RGBColor[1,0,0]},{}}]

Altra base del medesimo sottospazio:

x[1,t_]:=(1-t)^2

x[2,t_]:= t(1-t)

x[3,t_]:=t^2

Costruiamo la nuova matrice di Gram

G = Table[Table[a[i,j],{i,1,3}],{j,1,3}]

b = Table[Integrate[f[t]*x[i,t], {t,0,1}], {i,1,3}]

LinearSolve[G,b]//N

%.{x[1,t], x[2,t], x[3,t]}

Expand[%]

Mostriamo ancorfa il grafico funzione approssimante/funzione approssimata :

Plot[{%,Sin[π t]},{t,0,1},PlotStyle->{{Thickness[0.005],RGBColor[1,0,0]},{}}]

Torniamo alla base iniziale (quella dei monomi), che ribattezziamo xv:

xv[i_,t_]:= t^(i-1)

Verifica:

Table[xv[i,t],{i,1,3}]

Costruiamo il processo di ortogonalizzazione:

z[1,t_]:=xv[1,t]

z[k_,t_] := xv[k,t]- Sum[Integrate[xv[k,t] z[h,t],{t,0,1}]/Integrate[z[h,t]^2,{t,0,1}] z[h,t],{h,1,k-1}]

Verifica:

z[2,t]

z[3,t]

Scriviamo la proiezione ortogonale di  f  sulla base z[k, t ] appena costruita:

Sum[(Integrate[f[t] z[h,t],{t,0,1}]/Integrate[z[h,t]^2,{t,0,1}]) z[h,t], {h,1,3}]

Collect[%,t]

N[%]

Ancora una voolta il grafico funzione approssimante/funzione approssimata :

Plot[{%,Sin[π t]},{t,0,1},PlotStyle->{{Thickness[0.005],RGBColor[1,0,0]},{}}]