equation_nl.c running solve x1 + 2 x2^2 + 3/x3 = 10 2 x1 + x2^2 + 1/x3 = 6.333 3 x1 + x2^2 + 4/x3 = 8.333 | 1 2 3 | | x1 | = | 10.000 | | 2 1 1 | * | x2^2 | = | 6.333 | | 3 1 4 | | 1/x3 | = | 8.333 | A * X = Y guess initial x1, x2, x3 compute Xt = | x1 x2^2 1/x3 | compute derivative D = | 1 2*x2 -1/x3^2 | compute the Jacobian J = A * D and invert iterate x_next = x - fctr*(A*Xt-Y)*Ja^-1 no guarantee of solution or unique solution A*Xt-Y should go to zero | 1.0000 2.0000 3.0000 | | x1 | | 10.0000 | | 2.0000 1.0000 1.0000 | * |x2*x2 | = | 6.3333 | | 3.0000 1.0000 4.0000 | | 1/x3 | | 8.3333 | x1= 1.00000, x2= 1.00000, x3= 1.00000 X[0]= 1.00000 X[1]= 1.00000 X[2]= 1.00000 D[0]= 1.00000 D[1]= 2.00000 D[2]= -1.00000 zero F[0]= -4.00000 F[1]= -2.33333 F[2]= -0.33333 iteration 0, total error=6.66667 Ja[0][0]= 1.00000 Ja[0][1]= 4.00000 Ja[0][2]= -3.00000 Ja[1][0]= 2.00000 Ja[1][1]= 2.00000 Ja[1][2]= -1.00000 Ja[2][0]= 3.00000 Ja[2][1]= 2.00000 Ja[2][2]= -4.00000 JI[0][0]= -0.30000 JI[0][1]= 0.50000 JI[0][2]= 0.10000 JI[1][0]= 0.25000 JI[1][1]= 0.25000 JI[1][2]= -0.25000 JI[2][0]= -0.10000 JI[2][1]= 0.50000 JI[2][2]= -0.30000 x1= 1.00000, x2= 2.50000, x3= 1.66667 X[0]= 1.00000 X[1]= 6.25000 X[2]= 0.60000 D[0]= 1.00000 D[1]= 5.00000 D[2]= -0.36000 zero F[0]= 5.30000 F[1]= 2.51667 F[2]= 3.31667 iteration 1, total error=11.1333 Ja[0][0]= 1.00000 Ja[0][1]= 10.00000 Ja[0][2]= -1.08000 Ja[1][0]= 2.00000 Ja[1][1]= 5.00000 Ja[1][2]= -0.36000 Ja[2][0]= 3.00000 Ja[2][1]= 5.00000 Ja[2][2]= -1.44000 JI[0][0]= -0.30000 JI[0][1]= 0.50000 JI[0][2]= 0.10000 JI[1][0]= 0.10000 JI[1][1]= 0.10000 JI[1][2]= -0.10000 JI[2][0]= -0.27778 JI[2][1]= 1.38889 JI[2][2]= -0.83333 x1= 1.00000, x2= 2.05000, x3= 2.40741 X[0]= 1.00000 X[1]= 4.20250 X[2]= 0.41538 D[0]= 1.00000 D[1]= 4.10000 D[2]= -0.17254 zero F[0]= 0.65115 F[1]= 0.28455 F[2]= 0.53071 iteration 2, total error=1.46641 Ja[0][0]= 1.00000 Ja[0][1]= 8.20000 Ja[0][2]= -0.51763 Ja[1][0]= 2.00000 Ja[1][1]= 4.10000 Ja[1][2]= -0.17254 Ja[2][0]= 3.00000 Ja[2][1]= 4.10000 Ja[2][2]= -0.69018 JI[0][0]= -0.30000 JI[0][1]= 0.50000 JI[0][2]= 0.10000 JI[1][0]= 0.12195 JI[1][1]= 0.12195 JI[1][2]= -0.12195 JI[2][0]= -0.57956 JI[2][1]= 2.89781 JI[2][2]= -1.73868 x1= 1.00000, x2= 2.00061, x3= 2.88294 X[0]= 1.00000 X[1]= 4.00244 X[2]= 0.34687 D[0]= 1.00000 D[1]= 4.00122 D[2]= -0.12032 zero F[0]= 0.04548 F[1]= 0.01597 F[2]= 0.05658 iteration 3, total error=0.118031 Ja[0][0]= 1.00000 Ja[0][1]= 8.00244 Ja[0][2]= -0.36095 Ja[1][0]= 2.00000 Ja[1][1]= 4.00122 Ja[1][2]= -0.12032 Ja[2][0]= 3.00000 Ja[2][1]= 4.00122 Ja[2][2]= -0.48127 JI[0][0]= -0.30000 JI[0][1]= 0.50000 JI[0][2]= 0.10000 JI[1][0]= 0.12496 JI[1][1]= 0.12496 JI[1][2]= -0.12496 JI[2][0]= -0.83114 JI[2][1]= 4.15568 JI[2][2]= -2.49341 x1= 1.00000, x2= 2.00000, x3= 2.99543 X[0]= 1.00000 X[1]= 4.00000 X[2]= 0.33384 D[0]= 1.00000 D[1]= 4.00000 D[2]= -0.11145 zero F[0]= 0.00153 F[1]= 0.00051 F[2]= 0.00203 iteration 4, total error=0.00406751 Ja[0][0]= 1.00000 Ja[0][1]= 8.00000 Ja[0][2]= -0.33435 Ja[1][0]= 2.00000 Ja[1][1]= 4.00000 Ja[1][2]= -0.11145 Ja[2][0]= 3.00000 Ja[2][1]= 4.00000 Ja[2][2]= -0.44580 JI[0][0]= -0.30000 JI[0][1]= 0.50000 JI[0][2]= 0.10000 JI[1][0]= 0.12500 JI[1][1]= 0.12500 JI[1][2]= -0.12500 JI[2][0]= -0.89726 JI[2][1]= 4.48631 JI[2][2]= -2.69179 x1= 1.00000, x2= 2.00000, x3= 2.99999 X[0]= 1.00000 X[1]= 4.00000 X[2]= 0.33333 D[0]= 1.00000 D[1]= 4.00000 D[2]= -0.11111 zero F[0]= 0.00000 F[1]= 0.00000 F[2]= 0.00000 iteration 5, total error=6.18087e-06 Ja[0][0]= 1.00000 Ja[0][1]= 8.00000 Ja[0][2]= -0.33333 Ja[1][0]= 2.00000 Ja[1][1]= 4.00000 Ja[1][2]= -0.11111 Ja[2][0]= 3.00000 Ja[2][1]= 4.00000 Ja[2][2]= -0.44445 JI[0][0]= -0.30000 JI[0][1]= 0.50000 JI[0][2]= 0.10000 JI[1][0]= 0.12500 JI[1][1]= 0.12500 JI[1][2]= -0.12500 JI[2][0]= -0.90000 JI[2][1]= 4.49998 JI[2][2]= -2.69999 x1= 1.00000, x2= 2.00000, x3= 3.00000 X[0]= 1.00000 X[1]= 4.00000 X[2]= 0.33333 D[0]= 1.00000 D[1]= 4.00000 D[2]= -0.11111 zero F[0]= 0.00000 F[1]= 0.00000 F[2]= 0.00000 iteration 6, total error=1.43254e-11 Ja[0][0]= 1.00000 Ja[0][1]= 8.00000 Ja[0][2]= -0.33333 Ja[1][0]= 2.00000 Ja[1][1]= 4.00000 Ja[1][2]= -0.11111 Ja[2][0]= 3.00000 Ja[2][1]= 4.00000 Ja[2][2]= -0.44444 JI[0][0]= -0.30000 JI[0][1]= 0.50000 JI[0][2]= 0.10000 JI[1][0]= 0.12500 JI[1][1]= 0.12500 JI[1][2]= -0.12500 JI[2][0]= -0.90000 JI[2][1]= 4.50000 JI[2][2]= -2.70000 final x1= 1.00000, x2= 2.00000, x3= 3.00000 terms Xt1= 1.00000, Xt2= 4.00000, Xt3= 0.33333 final total error=1.77636e-15 equation_nl.c finished