% Harjutustund 7, ylesanne 11
% algl2hendid jooniselt
ezplot('x^2+2*y-8=0')
hold on
ezplot('x+y^2-y-3=0')
hold off
yline(0)
grid on
% algl2hendid: (-3.5,-2.1), (-1.5,2.6), (2.2,1.5) ja (2.9,-0.2)
% defineerime vektorfunktsiooni:
F=@(z) [z(1)^2+2*z(2)-8,z(1)+z(2)^2-z(2)-3];
% 1) Newtoni meetodiga lahendamine
Ftuletis=@(z) [2*z(1) 2
    1 2*z(2)-1];
z=[-3.5;-2.1]; % veeruvektor
sammud=0;
while norm(F(z),1)>10^(-4)
    z=z-inv(Ftuletis(z))*F(z)';
    sammud=sammud+1;
end
lahend1newton=z
sammud1newton=sammud

z=[-1.5;2.6]; % veeruvektor
sammud=0;
while norm(F(z),1)>10^(-4)
    z=z-inv(Ftuletis(z))*F(z)';
    sammud=sammud+1;
end
lahend2newton=z
sammud2newton=sammud

z=[2.2;1.5]; % veeruvektor
sammud=0;
while norm(F(z),1)>10^(-4)
    z=z-inv(Ftuletis(z))*F(z)';
    sammud=sammud+1;
end
lahend3newton=z
sammud3newton=sammud

z=[2.9;-0.2]; % veeruvektor
sammud=0;
while norm(F(z),1)>10^(-4)
    z=z-inv(Ftuletis(z))*F(z)';
    sammud=sammud+1;
end
lahend4newton=z
sammud4newton=sammud

% 2) hariliku iteratsioonimeetodiga
% uurime koondumise tingimust
x=-3.5;
y=-2.1;
Gtuletis=[0 -1/sqrt(8-2*y)
    -1/(2*sqrt(y-x+3)) 1/(2*sqrt(y-x+3))];
norm(Gtuletis,1) % <1 sobib

x=-1.5;
y=2.6;
Gtuletis=[0 -1/sqrt(8-2*y)
    -1/(2*sqrt(y-x+3)) 1/(2*sqrt(y-x+3))];
norm(Gtuletis,1) % <1 sobib

x=2.2;
y=1.5;
Gtuletis=[0 -1/sqrt(8-2*y)
    -1/(2*sqrt(y-x+3)) 1/(2*sqrt(y-x+3))];
norm(Gtuletis,1) % <1 sobib

x=2.9;
y=-0.2;
Gtuletis=[0 -1/sqrt(8-2*y)
    -1/(2*sqrt(y-x+3)) 1/(2*sqrt(y-x+3))];
norm(Gtuletis,1) % >1 ei sobi

% leiame kolmele esimesele algl2hendile vastavad lahendid
z=[-3.5,-2.1];
sammud=0;
while norm(F(z),1)>10^(-4)
  z(1)=-sqrt(8-2*z(2));
  z(2)=-sqrt(z(2)+3-z(1));
  sammud=sammud+1;
end
lahend1harilik=z
sammud1harilik=sammud

z=[-1.5,2.6];
sammud=0;
while norm(F(z),1)>10^(-4)
  z(1)=-sqrt(8-2*z(2));
  z(2)=sqrt(z(2)+3-z(1));
  sammud=sammud+1;
end
lahend2harilik=z
sammud2harilik=sammud

z=[2.2,1.5];
sammud=0;
while norm(F(z),1)>10^(-4)
  z(1)=sqrt(8-2*z(2));
  z(2)=sqrt(z(2)+3-z(1));
  sammud=sammud+1;
end
lahend3harilik=z
sammud3harilik=sammud

x=2.9;
y=-0.2;
uusGtuletis=[0 -1/sqrt(8-2*y)
    1 2*y];
norm(uusGtuletis,1) % ligikaudu 1, arvestame <1

z=[2.9,-0.2];
sammud=0;
while norm(F(z),1)>10^(-4)
  z(1)=sqrt(8-2*z(2));
  z(2)=z(1)+z(2)^2-3;
  sammud=sammud+1;
end
lahend4harilik=z
sammud4harilik=sammud

% vordleme sammude arvu
[sammud1newton sammud2newton sammud3newton sammud4newton
    sammud1harilik sammud2harilik sammud3harilik sammud4harilik]