clc
disp(' Az 5 demó eljárás helpje:')
input(' *** A folytatáshoz nyomja le az ENTER billentyűt!');
help Jacobi_iteracio_egyszeru
input(' *** A folytatáshoz nyomja le az ENTER billentyűt!');
help Jacobi_iteracio
input(' *** A folytatáshoz nyomja le az ENTER billentyűt!');
help Jacobi_iteracio_hibabecsles
input(' *** A folytatáshoz nyomja le az ENTER billentyűt!');
help Jacobi_iteracio_ciklus
input(' *** A folytatáshoz nyomja le az ENTER billentyűt!');
help Jacobi_iteracio_reszletes
input(' *** A folytatáshoz nyomja le az ENTER billentyűt!');

clc
disp('A megoldandó egyenletrendszer A mátrixa:');
A = [10  1  2  1 
      1  5  1  0 
      1  2 -5  1
      1  1  1 10]

disp('A jobboldali b konstans vektor:');
b = A*xpontos      % b = [22; 14; -6; 46]

disp('Az egyenletrendszer pontos x megoldása:');
xpontos = [1; 2; 3; 4]

disp('A megoldás közelítése Jacobi-iterációval:')
k_max = 10                   % Legföljebb 10 iterációs lépést végzünk
[x_koz]= Jacobi_iteracio_egyszeru(A, b, k_max)

disp('A közelítő megoldás tényleges hibája:');
hibanorma_2   = norm(xpontos-x_koz)
hibanorma_inf = norm(xpontos-x_koz, 'inf')

disp('A behelyettesítés hibája:');
r = A*x_koz -b
behelyhiba_2   = norm(r)
behelyhiba_inf = norm(r, 'inf')

disp('Konvergál-e az iteráció? Elfogadható-e a kapott közelítés?');
input(' *** A folytatáshoz nyomja le az ENTER billentyűt!');

clc
disp('Közelítés a részeredményeket kiíró Jacobi-iterációval, új x0 kezdővektorral:');
x0 = ones(4,1)
k_max = 10
d_max = 10^(-16)

[x_koz,k,hiba1]= Jacobi_iteracio_reszletes(A, b, x0, k_max, d_max)

disp('A közelítő megoldás tényleges hibája:');
hibanorma_2   = norm(xpontos-x_koz)
hibanorma_inf = norm(xpontos-x_koz, 'inf')

disp('A behelyettesítés hibája:');
r = A*x_koz -b
behelyhiba_2   = norm(r)
behelyhiba_inf = norm(r, 'inf')

disp('Konvergál-e az iteráció? Elfogadható-e a kapott közelítés?');
input(' *** A folytatáshoz nyomja le az ENTER billentyűt!');

clc
disp('Közelítés a hibabecslést végző Jacobi-iterációval:');
k_max = 10^4
hiba_max = 10^(-8)

[x_koz,k,]= Jacobi_iteracio_hibabecsles(A, b, k_max, hiba_max)

disp('A közelítő megoldás tényleges hibája:');
hibanorma_2   = norm(xpontos-x_koz)
hibanorma_inf = norm(xpontos-x_koz, 'inf')

disp('A behelyettesítés hibája:');
r = A*x_koz -b
behelyhiba_2   = norm(r)
behelyhiba_inf = norm(r, 'inf')

disp('Konvergál-e az iteráció? Elfogadható-e a kapott közelítés?');
input(' *** A folytatáshoz nyomja le az ENTER billentyűt!');
disp('Teszteljük az algoritmust más egyenletrendszerekkel is!');
