(* [Autor]: Martin Všetička, 2008 *)
(* [Slovníček]: Dot product (Skalar product) - skalární součin *)
(* [POZN.]: Pro Gram-Schmidta je možné použít příkaz: Orthogonalize[{{1,-2,2,0},{1,-2,2,3},{-1,1,0,0}], od Mathematicy verze 6.0 *)
(* [FUNKCE SKRIPTU]: Skript vypočítá ze zadaných vektorů ortonormální bázi, zobrazí normalizované i nenormalizované vektory *)
(* ------------------------------------------------------------------------------------------------------------ *)




(* [VSTUP]: Bázové vektory vektorového prostoru *)
matrix:={ {(1/3),-(2/3),(2/3),0},{0,0,0,3},{-(2/3),(1/3),(2/3),0},  {0,0,1,0} };





(* ------------------------------------------------------------------------------------------------------------ *)
(* [TELO SKRIPTU] *)
Print["Gram-Schmidttova ortogonalizace\n================================"];
data={{"Nenormalizovaný tvar","Normalizovaný tvar"}};
For[i=1,i≤Length[matrix],i++,  

v[i]=Part[matrix,i];
tmp=v[i]- (∑_(j=1)^(i-1))Dot[v[i],y[j]]*y[j];
y[i]=Normalize[tmp];
data=Append[data,{tmp,y[i]}];

];

Text@Grid[data,
Background->{None,{Lighter[Yellow,.9],{White,Lighter[Blend[{Blue,Green}],.8]}}},Dividers->{{Darker[Gray,.6],{Lighter[Gray,.5]},Darker[Gray,.6]},{Darker[Gray,.6],Darker[Gray,.6],{False},Darker[Gray,.6]}},
Alignment->{{Left,Right,{Left}}},
ItemSize->15,
Frame->Darker[Gray,.6],
ItemStyle->12,Spacings->{Automatic,.8}]

(* [KONEC TELA SKRIPTU] *)
(* ------------------------------------------------------------------------------------------------------------ *)