function [] = prog1main()
disp('Cholesky-Verfahren:')
A=[1 2 3 4 5 6 7 8; 2 5 8 11 14 17 20 23;3 8 14 20 26 32 38 44;4 11 20 30 40 50 60 70;5 14 26 40 55 70 85 100;6 17 32 50 70 91 112 133;7 20 38 60 85 112 140 168;8 23 44 70 100 133 168 204]

n=length(A);
  for k=1:n
     sum1=0;
     for j=1:k-1
         sum1=sum1+L(k,j)^2;
     end    
     L(k,k)=(A(k,k)-sum1)^(1/2);
     for i=k+1:n
         sum2=0;
         for j=1:k-1
         sum2=sum2+L(i,j)*L(k,j);
         end  
           L(i,k)=(A(i,k)-sum2)/L(k,k);
     end  
  end
disp('L ist')
disp(L)

disp('Jacobi Verfahren:')
A=[169 13 39 -26 52 13 -39 65; 13 226 3 13 34 -14 -33 50;39 3 333 30 66 -69 81 123;-26 13 30 109 40 -61 4 5;52 34 66 40 334 -30 -5 44;13 -14 -69 -61 -30 143 4 8;-39 -33 81 4 -5 4 164 -7;65 50 123 5 44 8 -7 227]
b=[4693 -1034 6051 -1353 3384 355 1652 3144] 
x=[0 0 0 0 0 0 0 0] ;

for k=1:1000
    N(1:8)=0;
    M(1:8)=0;
    for i=1:8
        
        N(i)=(1/A(i,i))*b(i);
        for j=1:i-1
            M(i)=M(i)+(-A(i,j))*x(j);
        end
        for j=i+1:n
            M(i)=M(i)+(-A(i,j))*x(j);
        end
        M(i)=M(i)*(1/A(i,i));
        % x(i)=M(i)+N(i);  Gauss-Seidel Verfahren
     end
     for i=1:8
     x(i)=M(i)+N(i);
     end
end 

disp('Nach 1000 Jacobi-Iterationen ist x ')
disp(x)
