clear %vahemälu puhtaks

%Joonis alglähendite leidmiseks
ezplot('20*x^2=1-2*x^3+4*y^3')
hold on
grid on
h=ezplot('2*x^3=3*y^2+10*y-5')
set(h,'color','r')
legend('20*x^2=1-2*x^3+4*y^3','2*x^3=3*y^2+10*y-5')
title('Joonis alglähendite leidmiseks')
hold off
%Joontel on 3 lõikepunkti. Loeme punktide koordinaadid alglähenditeks.
%Meile sobivad (-0.5,0.5) ja (0.5,0.5) ja (3.7,4.5)

F=@(z)[20*z(1)^2-1+2*z(1)^3-4*z(2)^3, 2*z(1)^3-3*z(2)^2-10*z(2)+5]

%Lahendame Newtoni meetodit kasutades
z=[-0.5;0.5]; %esimene alglähend veeruvektorina
i=0; %sammude arv
while norm(F(z),1)>10^-6
        Ftuletis=[40*z(1)+6*z(1)^2 -12*z(2)^2
        6*z(1)^2 -6*z(2)-10];
        z=z-inv(Ftuletis)*F(z)'; %NB! Veeruvektor
    i=i+1;
end
lahend1NM=z'
sammud1NM=i

z=[0.5;0.5]; %teine alglähend veeruvektorina
i=0; %sammude arv
while norm(F(z),1)>10^-6
    Ftuletis=[40*z(1)+6*z(1)^2 -12*z(2)^2
        6*z(1)^2 -6*z(2)-10];
    z=z-inv(Ftuletis)*F(z)'; %NB! Veeruvektor
    i=i+1;
end
lahend2NM=z'
sammud2NM=i

z=[3.7;4.5]; %kolmas alglähend veeruvektorina
i=0; %sammude arv
while norm(F(z),1)>10^-6
    Ftuletis=[40*z(1)+6*z(1)^2 -12*z(2)^2
        6*z(1)^2 -6*z(2)-10];
    z=z-inv(Ftuletis)*F(z)'; %NB! Veeruvektor
    i=i+1;
end
lahend3NM=z'
sammud3NM=i

%Kontrollime HIM jaoks koonduvust. 
%1) Avaldame esimesest võrrandist x x^2 liikmest ja y teisest võrrandist 10
%juurest.
%esimene alglähend
x=-0.5;
y=0.5; %alglähend jooniselt
A(1,1)=-3*x^2/(20*sqrt(1/20*(1-2*x^3+4*y^3)));
A(1,2)=3*y^2/(10*sqrt(1/20*(1-2*x^3+4*y^3)));
A(2,1)=3*x^2/5;
A(2,2)=-3*y/5;
tuletis1=norm(A,1) %=0.5535 SOBIB

%teine alglähend
x=0.5;
y=0.5; %alglähend jooniselt
A(1,1)=-3*x^2/(20*sqrt(1/20*(1-2*x^3+4*y^3)));
A(1,2)=3*y^2/(10*sqrt(1/20*(1-2*x^3+4*y^3)));
A(2,1)=3*x^2/5;
A(2,2)=-3*y/5;
tuletis2=norm(A,1) %=0.6 SOBIB  

%kolmas alglähend
x=3.7;
y=4.5; %alglähend jooniselt
A(1,1)=-3*x^2/(20*sqrt(1/20*(1-2*x^3+4*y^3)));
A(1,2)=3*y^2/(10*sqrt(1/20*(1-2*x^3+4*y^3)));
A(2,1)=3*x^2/5;
A(2,2)=-3*y/5;
tuletis3=norm(A,1) %=8.7790 ei sobi

%kontrollime kolmanda lahendi jaoks kuju, kus esimesest võrrandist
%avaldasime y ja teisest liikmest x (x^3 liikmest)
x=3.7;
y=4.5; %alglähend jooniselt
A(1,1)=(40*x+6*x^2)/(12*nthroot((1/4*(20*x^2-1+2*x^3))^2,3));
A(1,2)=0;
A(2,1)=0;
A(2,2)=(6*y+10)/(6*nthroot((1/2*(3*y^2+10*y-5))^2,3));
tuletis3=norm(A,1) %=0.9308 SOBIB

%lahendame süsteemi HIM kasutades
%1)lahend
z=[-0.5,0.5]; %alglähend jooniselt
i=0; %sammude arv
while norm(F(z),1)>10^-6
    z(1)=-sqrt(1/20*(1-2*z(1)^3+4*z(2)^3)); %valime märgi -, sest otsime 
    % negatiivset lahendit
    z(2)=1/10*(2*z(1)^3-3*z(2)^2+5);
    i=i+1;
end
lahend1HIM=z
sammud1HIM=i
lahend1=[lahend1HIM lahend1NM sammud1HIM sammud1NM]

%2)lahend
z=[0.5,0.5]; %alglähend jooniselt
i=0; %sammude arv
while norm(F(z),1)>10^-6
    z(1)=sqrt(1/20*(1-2*z(1)^3+4*z(2)^3)); %valime märgi +, sest otsime 
    % postiivset lahendit
    z(2)=1/10*(2*z(1)^3-3*z(2)^2+5);
    i=i+1;
end
lahend2HIM=z
sammud2HIM=i
lahend2=[lahend2HIM lahend2NM sammud2HIM sammud2NM]

%3)lahend
z=[3.7,4.5]; %alglähend jooniselt
i=0; %sammude arv
while norm(F(z),1)>10^-6
    z(1)=nthroot(0.5*(3*z(2)^2+10*z(2)-5),3);
    z(2)=nthroot(0.25*(20*z(1)^2-1+2*z(1)^3),3);
    i=i+1;
end
lahend3HIM=z
sammud3HIM=i
lahend3=[lahend3HIM lahend3NM sammud3HIM sammud3NM]