clear

%Joonis alglähendite leidmiseks
ezplot('20*x^2=1-2*x^3+4*y^3',[-2,4,-2,6])
hold on 
grid on
h=ezplot('2*x^3=3*y^2+10*y-5',[-2,4,-2,6])
set(h,'color','k')
title('Joonis alglähendite leidmiseks')
legend('20*x^2=1-2*x^3+4*y^3','2*x^3=3*y^2+10*y-5')
%Jooniselt on näha, et süsteemil on 3 lahendit, st joontel on kolm
%lõikepunkti. Loeme lõikepunktide koordinaadid alglähenditeks. Meil on
%seega (-0.25;0.5) ja (0.25;0.5) ja (3.7;4.5).

%Otsime HIM jaoks sobivad koonduvad kujud
%1) Esimene lahend
x=-0.25;
y=0.5; %esimese lahendi alglähendid jooniselt
Gtuletis(1,1)=-3*x^2/sqrt(20*(1-2*x^3+4*y^3));
Gtuletis(1,2)=6*y^2/sqrt(20*(1-2*x^3+4*y^3));
Gtuletis(2,1)=3/5*x^2;
Gtuletis(2,2)=-3/5*y;
%tuletis=norm(Gtuletis,1)=0.5711 SOBIB

%2) Teine lahend
x=0.25;
y=0.5; %teise lahendi alglähendid jooniselt
Gtuletis(1,1)=-3*x^2/sqrt(20*(1-2*x^3+4*y^3));
Gtuletis(1,2)=6*y^2/sqrt(20*(1-2*x^3+4*y^3));
Gtuletis(2,1)=3/5*x^2;
Gtuletis(2,2)=-3/5*y;
%tuletis=norm(Gtuletis,1)=0.5768 SOBIB

%3) Kolmas lahend
x=3.7;
y=4.5; %jooniselt kolmanda lõikepunkti koordinaadid
Gtuletis(1,1)=-3*x^2/sqrt(20*(1-2*x^3+4*y^3));
Gtuletis(1,2)=6*y^2/sqrt(20*(1-2*x^3+4*y^3));
Gtuletis(2,1)=3/5*x^2;
Gtuletis(2,2)=-3/5*y;
%tuletis=norm(Gtuletis,1)=8.779 EI SOBI
%proovime teist kuju, kus esimesest võrrandist avaldasime y ja teisest
%võrrandist x
Gtuletis(1,1)=(40*x+6*x^2)/(12*nthroot((0.25*(20*x^2-1+2*x^3))^2,3));
Gtuletis(1,2)=0;
Gtuletis(2,1)=0;
Gtuletis(2,2)=(6*y+10)/(6*nthroot((0.5*(3*y^2+10*y-5))^2,3));
%tuletis=norm(Gtuletis,1)=0.9308 SOBIB



%Abifunktsioon, kuhu paneme kirja mõlema võrrandi kõik liikmed, kui nad on
%toodud ühele poole võrdusmärki, kasutame x=z(1) ja y=z(2)
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];
%tegime kohe veeruvektoriks, et saaksime sama kasutada ka NM lahendades

%Leiame esimese lahendi HIM kasutades
z=[-0.25;0.5]; %jooniselt alglähend
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));
    z(2)=1/10*(2*z(1)^3-3*z(2)^2+5);
    i=i+1;
end
lahend1HIM=z';
sammud1HIM=i;

%Leiame esimese lahendi NM abil
z=[-0.25;0.5]; %jooniselt alglähend
i=0;
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]; %esialgse süsteemi Jacobi maatriks
    z=z-inv(Ftuletis)*F(z);
    i=i+1;
end
lahend1NM=z';
sammud1NM=i

lahend1=[lahend1HIM lahend1NM]
sammud1=[sammud1HIM sammud1NM]

%Leiame teise lahendi HIM kasutades
z=[0.25;0.5]; %jooniselt alglähend
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));
    z(2)=1/10*(2*z(1)^3-3*z(2)^2+5);
    i=i+1;
end
lahend2HIM=z';
sammud2HIM=i;

%Leiame teise lahendi NM abil
z=[0.25;0.5]; %jooniselt alglähend
i=0;
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]; %esialgse süsteemi Jacobi maatriks
    z=z-inv(Ftuletis)*F(z);
    i=i+1;
end
lahend2NM=z';
sammud2NM=i

lahend2=[lahend2HIM lahend2NM]
sammud2=[sammud2HIM sammud2NM]

%Leidme kolmanda lahendi HIM kasutades
z=[3.7;4.5]; %alglähendid jooniselt
i=0;
while norm(F(z),1)>10^-6
    z(2)=nthroot(1/4*(20*z(1)^2-1+2*z(1)^3),3);
    z(1)=nthroot(1/2*(3*z(2)^2+10*z(2)-5),3);
    i=i+1;
end
lahend3HIM=z';
sammud3HIM=i;

%Leiame kolmanda lahendi NM abil
z=[3.7;4.5]; %jooniselt alglähend
i=0;
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]; %esialgse süsteemi Jacobi maatriks
    z=z-inv(Ftuletis)*F(z);
    i=i+1;
end
lahend3NM=z';
sammud3NM=i

lahend3=[lahend3HIM lahend3NM]
sammud3=[sammud3HIM sammud3NM]
