% harjutustund nr. 6, ülesanne 1
% joonis, alglähendid
ezplot('x=y^2-1')
hold on
ezplot('y=x^2')
hold off
grid on
% jooniselt on näha, et alglähenditeks võime võtta
% punktid (-0.7,0.5) ja (1.25,1.5)
% avaldame esialgsest võrrandisüsteemist suurused x ja y.
% g_1(x,y)=y ja g_2(x,y)=x
% kusjuures g_1(x,y)=+/-ruutjuur(x+1) ja g_2(x,y)=+/-ruutjuur(y).

% uurime alglähendite korral koonduvust, ||G'(x,y)||<1 (üksnorm <1)
% a) alglähendi (-0.7,0.5) korral
x=-0.7;
y=0.5;
Gtuletis=[1/(2*sqrt(x+1)) 0
    0 1/(2*sqrt(y))];  % tuletise maatriks ehk Jacobi maatriks
norm(Gtuletis,1) % sobib
% b) alglähendi (1.25,1.5) korral
x=1.25;
y=1.5;
Gtuletis=[1/(2*sqrt(x+1)) 0
    0 1/(2*sqrt(y))];  % tuletise maatriks ehk Jacobi maatriks
norm(Gtuletis,1) % sobib

% lahendame võrrandisüsteemi hariliku iteratsioonimeetodiga

% defineerime vektorfunktsiooni F(x,y)=(f_1(x,y),f_2(x,y)).
% tähistame, vektor z=(x,y)
% vektorfunktsioon F omab siis kuju F(z)=(f_1(z),f_2(z)).
% tähistame x=z(1) ja y=z(2)
F=@(z) [z(1)-z(2).^2+1,z(2)-z(1).^2];

% defineerime vektorfunktsiooni G
G=@(z) [-sqrt(z(2)),sqrt(z(1)+1)];

% a) alglähendi (-0.7,0.5) korral
z=[-0.7,0.5]; % alglähend reavektori kujul
i=0;
while (norm(F(z),1))>10^-6
      z=G(z);
      i=i+1;
end
lahend1=z
sammud1=i

% leiame lahendi modifitseeritud hariliku iteratsioonimeetodiga ehk 
% Seideli meetodiga
z=[-0.7,0.5]; % alglähend reavektori kujul
i=0;
while (norm(F(z),1))>10^-6
      z(1)=-sqrt(z(2));
      z(2)=sqrt(z(1)+1);
      i=i+1;
end
lahend11=z
sammud11=i

% defineerime vektorfunktsiooni G
uusG=@(z) [sqrt(z(2)),sqrt(z(1)+1)];

% b) alglähendi (1.25,1.5) korral
z=[1.25,1.5]; % alglähend reavektori kujul
i=0;
while (norm(F(z),1))>10^-6
      z=uusG(z);
      i=i+1;
end
lahend2=z
sammud2=i

