#                                        Ren-Cang Li, June 1, 1996
#                                        na.rcli@na-net.ornl.gov

NewtonItern:=proc(x:vector)
    local fvect, DF, B, niter, err, eps, i, j;
    fvect:=vector(7): DF:=matrix(7,7): B:=vector(7): niter:=0:
    #
    err:=1: niter:=0: eps:=10^(-Digits+20):
    #
    while err > eps and niter <= 100 do
        niter:=niter+1:
        for i from 1 to 7 do
            fvect[i]:=subs(c[1]=x[1],c[2]=x[2],c[3]=x[3],c[4]=x[4],
                           c[5]=x[5],c[6]=x[6],c[7]=x[7],f[i]):
            for j from 1 to 7 do
                DF[i,j]:=subs(c[1]=x[1],c[2]=x[2],c[3]=x[3],c[4]=x[4],
                              c[5]=x[5],c[6]=x[6],c[7]=x[7],g[i][j]):
            od:
        od: 
        err:=norm(fvect): # print(err):
	B:=linsolve(DF,fvect): x:=evalm(x-B):
    od:
    # print(err);
    if niter>100 then
       print(`In NewtonItern: Over 100 iterations`):
    fi:
    err;
end:
