function b=Gramschmidt(v) %%%% Das Programm funktioniert nur wenn die Spalten von d linear %%% unabhaengig sind und wenn die Vektoren reelle Komponenten haben. Die %%% Spalten der Matrix v sind die Vektoren v_1,...v_m [n,m]=size(v); b(1:n,1)=v(1:n,1)/((sum(v(1:n,1).^2))^(1/2));%%%%% Der erste Vektor wird %%%%normiert (dividiert durch seine Laenge damit der Vektor b Laenge 1 hat) for k=2:m, d=zeros(n,1); %%% d ist am Anfang Null for j=1:k-1, d=d+sum(v(1:n,k).*b(1:n,j))*b(1:n,j), end; %%%% d ist hier die Projektion %%% von v_k auf dem linearen Aufspann von b_1,...,b_{k-1} c=v(1:n,k)-d; %%%% Die Projektion wird abgezogen und c ist Orthogonal zu lin{b_1,...,b_{k-1}} b(1:n,k)=c/((sum(c.^2))^(1/2)); %%%% Der Vektor c wird normiert und der neue Vektor b_k hat Laenge 1. end;