% Harjutustund 6, ülesanne 6
% joonis, alglähendid
ezplot('x^2+2*y-8=0')
hold on
ezplot('x+y^2-y-3=0')
hold off
grid on
yline(0)
xline(0)
% alglähendid: (-3.5,-2.4), (-1.6,2.7), (2.2,1.5) ja (2.9,-0.2)
% 1) leiame lahendid Newtoni meetodiga
% z=(x,y), x=z(1) ja y=z(2)
F=@(z) [z(1)^2+2*z(2)-8,z(1)+z(2)^2-z(2)-3];
Ftuletis=@(z) [2*z(1) 2
    1 2*z(2)-1];
z=[-3.5;-2.4]; % veeruvektor
% täpsus 10^(-5)
sammud=0;
while norm(F(z),1)>10^(-5)
 z=z-inv(Ftuletis(z))*F(z)'; % Newtoni meetodi eeskiri
 sammud=sammud+1;
end
lahend1newton=z
sammud1newton=sammud

z=[-1.6;2.7]; % veeruvektor
sammud=0;
while norm(F(z),1)>10^(-5)
 z=z-inv(Ftuletis(z))*F(z)'; % Newtoni meetodi eeskiri
 sammud=sammud+1;
end
lahend2newton=z
sammud2newton=sammud

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

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

% 2) lahendame hariliku it. meetodiga
x=-3.5;
y=-2.4;
Gtuletis=[0 -1/sqrt(8-2*y)
    1 2*y];
norm(Gtuletis,1)

x=-1.6;
y=2.7;
Gtuletis=[0 -1/sqrt(8-2*y)
    1 2*y];
norm(Gtuletis,1)

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

x=2.9;
y=-0.2;
Gtuletis=[0 -1/sqrt(8-2*y)
    1 2*y];
norm(Gtuletis,1) % =1, loeme, et see on ~<1

% leiame lahendi vastavalt viimasele alglähendile
z=[2.9,-0.2]; % reavektor
sammud=0;
while norm(F(z),1)>10^(-5)
 z(1)=sqrt(8-2*z(2)); % hariliku it. m. x-i eeskiri
 z(2)=z(1)+z(2)^2-3;
 sammud=sammud+1;
end
lahend4harilik=z
sammud4harilik=sammud

% valisime uue y=g_2(x,y), x=g_1(x,y) jäi samaks
% uurime koondumist
x=-3.5;
y=-2.4;
Gtuletis=[0 -1/sqrt(8-2*y)
 -1/(2*sqrt(y+3-x))  1/(2*sqrt(y+3-x))];
norm(Gtuletis,1)
x=-1.6;
y=2.7;
Gtuletis=[0 -1/sqrt(8-2*y)
 -1/(2*sqrt(y+3-x))  1/(2*sqrt(y+3-x))];
norm(Gtuletis,1)
x=2.2;
y=1.5;
Gtuletis=[0 -1/sqrt(8-2*y)
 -1/(2*sqrt(y+3-x))  1/(2*sqrt(y+3-x))];
norm(Gtuletis,1)

% leiame esimesele kolmele alglähendile vastavad lahendid
z=[-3.5,-2.4]; % reavektor
sammud=0;
while norm(F(z),1)>10^(-5)
 z(1)=-sqrt(8-2*z(2)); % hariliku it. m. x-i eeskiri
 z(2)=-sqrt(z(2)+3-z(1)); % hariliku it. m. y-i eeskiri
 sammud=sammud+1;
end
lahend1harilik=z
sammud1harilik=sammud

z=[-1.6,2.7]; % reavektor
sammud=0;
while norm(F(z),1)>10^(-5)
 z(1)=-sqrt(8-2*z(2)); % hariliku it. m. x-i eeskiri
 z(2)=sqrt(z(2)+3-z(1)); % hariliku it. m. y-i eeskiri
 sammud=sammud+1;
end
lahend2harilik=z
sammud2harilik=sammud

z=[2.2,1.5]; % reavektor
sammud=0;
while norm(F(z),1)>10^(-5)
 z(1)=sqrt(8-2*z(2)); % hariliku it. m. x-i eeskiri
 z(2)=sqrt(z(2)+3-z(1)); % hariliku it. m. y-i eeskiri
 sammud=sammud+1;
end
lahend3harilik=z
sammud3harilik=sammud
% võrdlus
[sammud1newton sammud2newton sammud3newton sammud4newton
    sammud1harilik sammud2harilik sammud3harilik sammud4harilik]