% Harjutustund nr. 6, ülesanne 1
% lahendame mittelineaarse võrrandisüsteemi
% teeme joonise alglähendite leidmiseks
g=ezplot('x=y^2-1',[-2,2,-2,2])
set(g,'color','b')
hold on
h=ezplot('y=x^2',[-2,2,-2,2])
set(h,'color','r')
hold on
grid on
% alglähenditeks võime võtta (-0.7,0.5) ja (1.2,1.5)
% võrrandisüsteemist avaldame x-i ja y-i
% x=g_1(x,y)=y^2-1 ja y=g_2(x,y)=x^2
% uurime koondumise tingimust ||G'(x,y)||<1 ehk vaatleme Jacobi maatriksi
% ehk tuletiste maatriksi normi (üksnormi)

% a) alglähendi (-0.7,0.5) korral
x=-0.7;
y=0.5;
Gtuletis=[0,2*y;2*x,0];
% või 
% Gtuletis(1,1)=0;
% Gtuletis(1,2)=2*y;
% Gtuletis(2,1)=2*x;
% Gtuletis(2,2)=0;
% uurime üksnormi 
norm(Gtuletis,1) % ei sobi

% b) alglähendi (1.2,1.5) korral
x=1.2;
y=1.5;
Gtuletis=[0,2*y;2*x,0];
% uurime üksnormi 
norm(Gtuletis,1) % ei sobi

% kuna ühegi alglähendi korral ei sobinud valitud g_1 ja g_2,
% siis valime uue g_1 ja g_2
% uued g_1 ja g_2 on järgmised g_1(x,y)=+/-ruutjuur(x+1) ja
% g_2(x,y)=+/-ruutjuur(y)
% x=g_2(x,y) ja y=g_1(x,y)
% uurime üksnorme alglähendite korral

% a) alglähendi (-0.7,0.5) korral
x=-0.7;
y=0.5;
uusGtuletis=[1/(2*sqrt(x+1)),0;0,1/(2*sqrt(y))];
norm(uusGtuletis,1) % ~0.9129<1 sobib

% b) alglähendi (1.2,1.5) korral
x=1.2;
y=1.5;
uusGtuletis=[1/(2*sqrt(x+1)),0;0,1/(2*sqrt(y))];
norm(uusGtuletis,1) % sobib

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

% a) lahendame alglähendi (-0.7,0.5) korral
z=[-0.7,0.5]; % alglähend vektorkujul - reavektor
i=0;
while (norm(F(z),1))>10^-6
    z(1)=-sqrt(z(2));
    z(2)=sqrt(z(1)+1);
    i=i+1;    
end
lahend1=z
sammud1=i
% b) alglähendi (1.2,1.5)
z=[1.2,1.5];
i=0;
while (norm(F(z),1))>10^-6
    z(1)=sqrt(z(2));
    z(2)=sqrt(z(1)+1);
    i=i+1;    
end
lahend2=z
sammud2=i

