equation_nl.java 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 Ja = A * D and invert iterate x_next = x - fctr*(A*Xt-Y)*Ja^-1 no guarantee of solution or unique solution sum absolute value 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 Xt[0]= 1.00000, Xt[1]= 1.00000, Xt[2]= 1.00000 D[0]= 1.00000, D[1]= 2.00000, D[2]=- 1.00000 F[0]=- 4.00000, F[1]=- 2.33333, F[2]=- 0.33333 iteration 0, total error=6.666666666666667 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 Xt[0]= 1.00000, Xt[1]= 6.25000, Xt[2]= 0.60000 D[0]= 1.00000, D[1]= 5.00000, D[2]=- 0.36000 F[0]= 5.30000, F[1]= 2.51667, F[2]= 3.31667 iteration 1, total error=11.133333333333326 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 Xt[0]= 1.00000, Xt[1]= 4.20250, Xt[2]= 0.41538 D[0]= 1.00000, D[1]= 4.10000, D[2]=- 0.17254 F[0]= 0.65115, F[1]= 0.28455, F[2]= 0.53071 iteration 2, total error=1.4664102564102572 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 Xt[0]= 1.00000, Xt[1]= 4.00244, Xt[2]= 0.34687 D[0]= 1.00000, D[1]= 4.00122, D[2]=- 0.12032 F[0]= 0.04548, F[1]= 0.01597, F[2]= 0.05658 iteration 3, total error=0.1180314414984256 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 Xt[0]= 1.00000, Xt[1]= 4.00000, Xt[2]= 0.33384 D[0]= 1.00000, D[1]= 4.00000, D[2]=- 0.11145 F[0]= 0.00153, F[1]= 0.00051, F[2]= 0.00203 iteration 4, total error=0.004067513942053402 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 Xt[0]= 1.00000, Xt[1]= 4.00000, Xt[2]= 0.33333 D[0]= 1.00000, D[1]= 4.00000, D[2]=- 0.11111 F[0]= 0.00000, F[1]= 0.00000, F[2]= 0.00000 iteration 5, total error=6.180867754501662E-6 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 Xt[0]= 1.00000, Xt[1]= 4.00000, Xt[2]= 0.33333 D[0]= 1.00000, D[1]= 4.00000, D[2]=- 0.11111 F[0]= 0.00000, F[1]= 0.00000, F[2]= 0.00000 iteration 6, total error=1.432898244502212E-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 Xt[0]= 1.00000, Xt[1]= 4.00000, Xt[2]= 0.33333 final total error=8.881784197001252E-16 equation_nl.java finished