%%%three_variable_book.m%%%

clear;clc

w1(1)=8;w2(1)=10;w3(1)=5;eta=0.1;

E=inline('3*(xx-2)^2+2*(yy-3)^2+4*(zz-1)^2+3','xx','yy','zz');

dEdw1=inline('6*(xx-2)','xx');

dEdw2=inline('4*(yy-3)','yy');

dEdw3=inline('8*(zz-1)','zz');

fprintf('(w1(1),w2(1),w3(1)) = (%f,%f,%f),E(w1(1),w2(1),w3(1))=%f \n'...

    , w1(1),w2(1),w3(1),E(w1(1),w2(1),w3(1)));

i=1;

tol=1.0e-6;

cost1 = E(w1(1),w2(1),w3(1));

err=2.0*tol;


%%for 문

% for i=1:10

%     w1(i+1)=w1(i)-eta*dEdw1(w1(i));

%     w2(i+1)=w2(i)-eta*dEdw2(w2(i));

%     w3(i+1)=w3(i)-eta*dEdw3(w3(i));

%     fprintf('(w1(%d),w2(%d),w3(%d))=(%f,%f,%f),E(w1(%d),w2(%d),w3(%d))=%f \n',...

%         i+1,i+1,i+1,w1(i+1),w2(i+1),w3(i+1),i+1,i+1,i+1,E(w1(i+1),w2(i+1),w3(i+1)));

% end


while err>tol

    w1(i+1)=w1(i)-eta*dEdw1(w1(i));

    w2(i+1)=w2(i)-eta*dEdw2(w2(i));

    w3(i+1)=w3(i)-eta*dEdw3(w3(i));

    fprintf('(w1(%d),w2(%d),w3(%d))=(%f,%f,%f),E(w1(%d),w2(%d),w3(%d))=%f \n',...

    i+1,i+1,i+1,w1(i+1),w2(i+1),w3(i+1),i+1,i+1,i+1,E(w1(i+1),w2(i+1),w3(i+1)));

    cost2=E(w1(i+1),w2(i+1),w3(i+1));

    err=abs(cost2-cost1);

    cost1=cost2;

    i=i+1;

end