by Reinaldo Baretti Machín
reibaretti2004@yahoo.com
URL http://www.oocities.org/reibaretti2004
c newton -raphson two or more variables //
g1(x1,x2,x3)= 6.*x1-2.*cos(x2*x3)-1.
g2(x1,x2,x3)=9.*x2+sqrt(x1**2+sin(x3)+1.06)+0.9
g3(x1,x2,x3)=60.*x3+3.*exp(-x1*x2)+10.*pi-3.
g1prim(x1,x2,x3)=(g1(x1+epsi,x2,x3)-g1(x1,x2,x3))/epsi
g2prim(x1,x2,x3)=(g2(x1,x2+epsi,x3)-g2(x1,x2,x3))/epsi
g3prim(x1,x2,x3)=(g3(x1,x2,x3+epsi)-g3(x1,x2,x3))/epsi
pi=2.*asin(1.)
x1=1./6.
x2=-.9/9.
x3=(3.-10.*pi)/60.
n1=2
ntotal=20
epsi=1.e-4
do 10 i=1,ntotal
do 20 j=1,n1
x1=x1-g1(x1,x2,x3)/g1prim(x1,x2,x3)
20 continue
do 30 k=1,n1
x2=x2-g2(x1,x2,x3)/g2prim(x1,x2,x3)
30 continue
do 40 k3=1,n1
x3=x3-g3(x1,x2,x3)/g3prim(x1,x2,x3)
40 continue
write(6,100)i,x1,x2,x3
write(6,110)g1(x1,x2,x3),g2(x1,x2,x3),g3(x1,x2,x3)
print*,' '
10 continue
100 format(2x,'i,x1,x2,x3=',2x,i3,3x,e11.4,3x,e11.4,3x,e11.4)
110 format(2x,'g1,g2,g3=',2x,e11.4,2x,e11.4,2x,e11.4)
stop
end
i,x1,x2,x3= 1 0.4996E+00 -0.2027E+00 -0.5289E+00
g1,g2,g3= 0.9236E-02 -0.2664E-01 -0.1431E-05
i,x1,x2,x3= 2 0.4981E+00 -0.1996E+00 -0.5288E+00
g1,g2,g3= -0.3476E-03 0.4894E-04 0.3576E-06
i,x1,x2,x3= 3 0.4981E+00 -0.1996E+00 -0.5288E+00
g1,g2,g3= 0.1073E-05 -0.4768E-06 0.0000E+00
i,x1,x2,x3= 4 0.4981E+00 -0.1996E+00 -0.5288E+00
g1,g2,g3= -0.1192E-06 0.0000E+00 -0.3576E-06
i,x1,x2,x3= 5 0.4981E+00 -0.1996E+00 -0.5288E+00
g1,g2,g3= -0.1192E-06 0.0000E+00 -0.3576E-06
i,x1,x2,x3= 6 0.4981E+00 -0.1996E+00 -0.5288E+00
g1,g2,g3= -0.1192E-06 0.0000E+00 -0.3576E-06