출석
%%% three_vaiable_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)));
% while문
tol=1.0e-10;
cost1=E(w1(1),w2(1),w3(1));
err=2.0*tol;
i=1;
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
%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
숙제
%%% N_variable_book.m %%%
clear; clc
N = 10; w = 0.5*ones(1,N); eta = 0.7;
E = inline('0.5*sum((w-[1:N]/N).^2)','w','N');
dEdw = inline('xx-tt','xx','tt');
fprintf('w(1) = (%f,%f,%f,%f,%f,%f,%f,%f,%f,%f), E(w(1)) = %f\n',w,E(w,N));
tol=1.0e-10;
cost1=E(w,N);
err=tol+1;
i=1;
k=1;
while err>tol
j=1;
while j<N+1
new_w(j) = w(j) - eta*dEdw(w(j),j/N);
j=j+1;
end
cost2 = E(new_w,N);
err = abs(cost2-cost1);
cost1 = cost2;
w = new_w;
fprintf('w(%d) = (%f,%f,%f,%f,%f,%f,%f,%f,%f,%f), E(w(%d)) = %f\n',k+1,w,k+1,E(w,N));
k=k+1;
end