#!/usr/bin/octave
#Plik musi byc wykonywalny co mozna zmienic np komenda
#linuxa z linii komend:
#chmod u+x testhilb.m

#testujemy jak operator backslash 
#rozwiaze url z macierza Hilberta
#testujemy odwracanie macierzy Hilberta
#i rozwiazanie url przez mnozenie przez macierz odwrotna
N=2;
for k=1:6,
 H=hilb(N);  #tworzymy macierz Hilberta
 iH=inv(H);  #iH - macierz odwrotna do H
 x=rand(N,1);#znane rozwiazanei - wektor losowy
 b=H*x;      #liczymy prawa strone
 y=H\b;      #rozwiazanie otrzymane przez \ czyli rozklad LU
 z=iH*b;     #rozwiazanie otrzymane przez iH*b 
 printf("N=%d\t|x-y|_2=%g |Hy-b|_2=%g cond(H)=%g\n",N,norm(x-y,2),norm(H*y-b,2),cond(H));
 printf("\t|x-z|_2=%g |Hz-b|_2=%g\n",norm(x-z,2),norm(H*z-b,2),cond(H));
 printf("\t|iH*H-I|_2=%g  |H*iH-I|_2=%g \n\n",norm(H*iH-eye(N),2),norm(iH*H-eye(N),2));
 N=N+2;
endfor


