##Newton's Method to find
##the minimum of the function F(x)=(x-2)^4-9
##with the initial guess xmin=1.0
##Constants and initializations
xmin=[]; ##The empty array of x that minimizes the F(x)
xmin(1)=1.0; ##Initial value of the xmin
Fmin=[]; ##Minimum values of F(x)
x=0.0:0.1:4.0; ##Only for plotting purposes
F=[]; ##Our examined Function evaluated on x-space
Fp=[]; ##First derivative of F(x) wrt x
Fpp=[]; ##Second derivative o F(x) wrt x
NSteps=50; ##Step number of iteration
##Algorithm
for n=1:NSteps
Fmin(n)=(xmin(n)-2)^4-9;
Fp(n)=4*(xmin(n)-2)^3;
Fpp(n)=12*(xmin(n)-2)^2;
xmin(n+1)=xmin(n)-Fp(n)/Fpp(n);
Fmin(n+1)=(xmin(n+1)-2)^4-9;
endfor
printf("x*, at which F(x) is minimum, is %1.6f\n",xmin(n+1))
printf("Minimum of F(x) is %1.6f\n",Fmin(n+1))
F=(x-2).^4-9;
subplot(2,1,1)
plot(x,F)
title('Newton^,s Method-F(x) vs x');
xlabel('x');
ylabel('F(x)');
text(2,-7,'\downarrow')
text(1.7,-5.6,'(xmin,Fmin)=(2,-9)')
axis([-0,4,-10,10])
subplot(2,1,2)
plot(xmin,Fmin,'r-')
title('F(xmin) vs xmin')
xlabel('xmin')
ylabel('F(xmin)')
axis([0,4,-10,-7])
save -text NEWMETUmitAlkus.dat
text(1,-9.6,'\downarrow')
text(0.6,-9.4,'initial guess for xmin')
print('-dpsc', 'NEWMETUmitAlkus.ps')
Comments
Post a Comment