%Algandmed
a=5; %eesnime tähtede arv
b=8; %perekonna nime tähtede arv
cc=0; %üliõpilaskoodi viimane number
A=[1 4 2
    0 7 10
    8 2 23];
c=[3 -5 1]';

%andmete muutmine
for i=1:3
    for j=1:3
        A(i,j)=A(i,j)+(-1)^(i-j+cc)*b;
    end
    c(i)=c(i)+(-1)^(i-cc)*a;
end
A
c

%Saan süsteemi kujul
%-8x^2+15y=-2
%16x+6y^2=0

%Joonis alglähendite leidmiseks
ezplot('-8*x^2+15*y=-2')
hold on
g=ezplot('16*x+6*y^2=0')
set(g, 'color','r')
grid on
title('Joonis alglähendite leidmiseks')

%Jooniselt on näha, et süsteemil on 2 lahendite. Vaja leida ainult üks.
%Valin alglähenditeks x=0.1 ja y=-0.1.

%Matlabi käsu fsolve abil lahendamine
%defineerime funktsiooni F(z), kus z(1)=x ja z(2)=y
F=@(z)[-8*z(1)^2+15*z(2)+2, 16*z(1)+6*z(2)^2];
z=[-0.1,-0.1]; %alglähend jooniselt
lahend=fsolve(F,z)
kontroll1=F(lahend);

%lahendame HIM abil, selleks on vaja võrrandisüsteemi kuju teisendada,
%ühest võrrandist avaldada x ja teisest y. Avaldan esimesest võrrandist y
%ja teisest x, siis z(2)=1/15*(8*z(1)^2-2) ja z(1)=-6*z(2)/16. Leian g1 ja
%g2 osatuletised, kui g1=1/15*(8*z(1)^2-2) ja g2=-6*z(2)^2/16.
z=[0.1,-0.1] %alglähend jooniselt
GT=[16*z(1)/15 0
    0 -12*z(2)/16];
tuletis=norm(GT,1) %=0.1067 sobib
i=0; %sammude arv
z(1)=-0.1;
z(2)=-0.1;
%saamegi HIM abil lahendada
while norm(F(z),1)>10^-6
    z(2)=1/15*(8*z(1)^2-2);
    z(1)=-6*z(2)^2/16;
    i=i+1;
end
lahendHIM=z
sammudHIM=i

%Lahendame Newtoni meetodi abil
z=[-0.1;-0.1]; %alglähend veeruvektorina
i=0; %sammude arv
while norm(F(z),1)>10^-6
    Ftuletis=[-16*z(1) 15
        16 12*z(2)]; %esialgse vektorfunktsiooni Jacobi maatriks
    z=z-inv(Ftuletis)*F(z)';
    i=i+1;
end
lahendNM=z'
sammudNM=i