F.Beukers, 12 jun 2012

Gram-Schmidt in Mathematica

Gram-Schmidt, initialisatie (deze cel eerst openklikken).

Eerst leren we Mathematica wat ons inwendig product zal zijn. Bijvoorbeeld (R^5)met dotproduct.

inproduct[v_,w_]:=v.w

Het inproduct van (1,2,0,3,-1) en (1,1,1,-1,0) wordt nu

inproduct[{1,2,0,3,-1},{1,1,1,-1,0}]

Met behulp van de functie inproduct kunnen we het Gram-Schmidt procede invoeren. De invoer bestaat uit een lijst van vectoren. De uitvoer bestaat uit een lijst van dezelfde lengte met als elementen een orthogonaal stelsel vectoren.

gramschmidt[v_]:=Module[{w,k,l,n=Length[v]},
w=v;
For[k=2,k<=n,k++,
w[[k]]=w[[k]]-Sum[inproduct[w[[k]],w[[l]]]*w[[l]]/inproduct[w[[l]],w[[l]]],{l,k-1}];
];
Return[w]
]

normedgramschmidt[v_]:=Module[{g,w},
g=gramschmidt[v];
w=Map[Function[Sqrt[inproduct[#,#]]*#],g];
Return[w]
]

Evenzo goed kunnen stelsels in (R^n)(met dotproduct) georthogonaliseerd worden. dan moeten we eerst ons inproduct goed definieren:

inproduct[v_,w_]:=v.w

Vervolgens kunnen we Gram-Schmidt toepassen. Bijvoorbeeld in (R^5):

gramschmidt[{{1,0,-1,2,1},{2,1,1,-1,0},{-1,1,3,0,1}}]

normedgramschmidt[{{1,0,-1,2,1},{2,1,1,-1,0},{-1,1,3,0,1}}]

Legendre polynomen

Een tweede voorbeeld is de ruimte van polynomen in de variabele x met inproduct
<p,q> = (∫_0^1)p(x)q(x)dx

inproduct[p_,q_]:=Integrate[p*q,{x,0,1}]

Het inproduct van x-(1/2) en (x^2) wordt nu

inproduct[x-1/2,x^2]

We kunnen nu stelsels polynomen orthogonaliseren. Bijvoorbeeld:

gramschmidt[{1,x,x^2,x^3,x^4,x^5,x^6,x^7,x^8,x^9,x^10}]//Expand//TableForm

Hermite polynomen

Een derde voorbeeld is de ruimte van polynomen in de variabele x met inproduct
<p,q> = (1/(Sqrt[π]))(∫_(-∞)^∞)p(x)q(x)(e^(-(x^2)))dx

inproduct[p_,q_]:=(1/(Sqrt[π]))*Integrate[p*q*Exp[-(x^2)],{x,-∞,∞}]

Het inproduct van x-(1/2) en (x^2) wordt nu

inproduct[x-1/2,x^2]

We kunnen nu stelsels polynomen orthogonaliseren. Bijvoorbeeld:

gs=gramschmidt[{1,x,x^2,x^3,x^4,x^5}]//Expand;
gs//TableForm

Fouriersommen, deel 1

We kunnen ook orthogonale projecties uitvoeren. Op het college hebben we gezien dat 
sin(x), sin(2x), sin(3x), ...
een orthonormaal stelsel vormen ten aanzien van het inproduct

<f,g>=(1/π)(∫_(-π)^π)f(x)g(x)dx

We definieren nu dit inproduct in Mathematica

inproduct[p_,q_]:=(1/Pi)*Integrate[p*q,{x,-Pi,Pi}]

Tevens spannen de functies sin(nx) een ruimte op van oneven functies op het interval [-π,π]. Laten we nu zo'n functie nemen , bijvoorbeeld x/2. We bepalen nu de inproducten van x/2 met sin(nx) voor n=1,2,3,...,25.

in=Table[inproduct[x/2,Sin[n*x]],{n,1,50}]//Expand

Plot[{Sum[in[[k]]*Sin[k*x],{k,1,50}],x/2},{x,-Pi,Pi}]

Fouriersommen, deel 2

Op het college hebben we gezien dat 
1/(Sqrt[2]), cos(x), cos(2x), cos(3x), ...
een orthonormaal stelsel vormen ten aanzien van het inproduct

<f,g>=(1/π)(∫_(-π)^π)f(x)g(x)dx

We definieren dit inproduct in Mathematica

inproduct[p_,q_]:=(1/Pi)*Integrate[p*q,{x,-Pi,Pi}]

Tevens spannen de functies cos(nx) een ruimte op van oneven functies op het interval [-π,π]. Laten we nu zo'n functie nemen , bijvoorbeeld (x^2). We bepalen nu de inproducten van (x^2) met cos(nx) voor n=1,2,3,...,25.

in=Table[inproduct[(x^2),Cos[n*x]],{n,1,25}]//Expand

Plot[{Pi^2/3+Sum[in[[k]]*Cos[k*x],{k,1,5}],x^2},{x,-Pi,Pi}]

2) Met de zojuist geleerde commando's kun je nu aan de slag:

Beantwoord de vragen in deze cel (eerst openklikken) en lever de antwoorden op papier bij je practicumleider in.

Opdracht 1. 
Allereerst beschouwen we (R^3)met het inwendig product

<((Subscript[x, 1]), (Subscript[x, 2]), (Subscript[x, 3])) , ((Subscript[y, 1]), (Subscript[y, 2]), (Subscript[y, 3])) > =2( (Subscript[x, 1])(Subscript[y, 1]) + (Subscript[x, 2])(Subscript[y, 2])+ (Subscript[x, 3])(Subscript[y, 3])) + (Subscript[x, 1 ])(Subscript[y, 2]) + (Subscript[x, 2])(Subscript[y, 1])+ (Subscript[x, 1])(Subscript[y, 3])+ (Subscript[x, 3])(Subscript[y, 1]) + (Subscript[x, 2])(Subscript[y, 3 ])+ (Subscript[x, 3])(Subscript[y, 2])

Pas het Gram-Schmidt procede toe op de startvectoren (1,0,0), (0,1,0),  (0,0,1) in (R^3).

Opdracht 2.
We beschouwen de ruimte van polynomen R[x] met als inproduct

< p , q > = (1/(Sqrt[π]))(∫_(-∞)^∞)  p(x)q(x) (e^(-(x^2)))dx

a) Beredeneer dat < (x^k), (x^l)> = 0 als k+l oneven is. Laat nu zien dat de deelruimte voortgebracht door de even machten van x en de deelruimte voortgebracht door de oneven machten van x, elkaars orthogonaal complement zijn. 

b) Laat het Gram-Schmidt procede los op het stelsel vectoren 1, x, (x^2), (x^3), ... , (x^5), p(x)
waarin p(x) het polynoom (Subscript[p, 6])(x^6)+ (Subscript[p, 5])(x^5) + (Subscript[p, 4])(x^4)+ (Subscript[p, 3])(x^3)+ (Subscript[p, 2])(x^2)+ (Subscript[p, 1])x + (Subscript[p, 0]) is met 
(Subscript[p, 0])(Subscript[p, 1])(Subscript[p, 2])(Subscript[p, 3])(Subscript[p, 4])(Subscript[p, 5])(Subscript[p, 6]) de achtereenvolgende cijfers ((Subscript[p, 0])is dus het eerste (=linkse) cijfer) van je collegekaartnummer.