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