Finding Integer Solutions of Nonlinear Systems of Equations, Including Exponential Diophantine Equations

Jsun Yui Wong

The computer program below seeks to solve simultaneously the following system of 17 equations:

5 ^ X(5) + 5 ^ X(6) – 3 ^ X(8) – 7 ^ X(4)=0,
2 ^ X(5) + 7 ^ X(6) – 3 ^ X(8) – 5 ^ X(4)=-1,
-X(1) -3 + X(3) – 2 * X(5) + X(7) + X(9)=0,
(-24 – X(1) ^ 2 + 2 * (X(2) + X(4)) ^ 3 – X(5) + 3 * X(6) + X(7) – 4 * X(9)) -15*X(10)=0,
-X(8) -8 + X(2) + (2 * X(4)) ^ 2 – 6 * X(6) + 2 * X(10)=0,
– 2 * X(1) – (X(2) + 3 * X(4)) ^ 3 – (5 * X(7)) ^ 2 + 6 * X(8) – X(9) + 9 * X(10)=-31,
– X(1) + 3 * X(2) – 4 * X(4) – X(6) + 6 * X(7) – X(8) + 2 * X(9)=16,
– (2 * X(1) + X(2)) ^ 2 – 3 * X(3) + 10 * X(5) + (X(6) + 3 * X(7)) ^ 3 + X(8) + 6 * X(9)=-27,
– 5 * X(1) – 2 * X(2) + 8 * X(4) + 3 * X(5) – 4 * X(6) – X(7) + X(9)=-23,
– 3 * X(1) – 2 * X(2) + 5 * X(3) + X(4) ^ 4 + 2 * X(5) – X(6) – 4 * X(7) + 10 * X(8) – 8 * X(9)=9,
– 3 * X(1) + (2 * X(2)) ^ 2 – 10 * X(3) + 9 * X(4) – 3 * X(5) – X(6) + 2 * X(7) + 8 * X(8) – 12 * X(9) + 5 * X(10)=25,
5 * X(1) + 10 * X(2) – 5 * X(3) + X(5) ^ 3 + 8 * X(6)=39,
6 * X(1) + X(3) – 99 * X(2) + (15 * X(6)) ^ 2=-148,
(X(1) + X(2)) ^ 2 – 7 * X(3) + 5 * X(4) + 12 * X(5) – 8 * X(6)=18,
3 * X(1) + 18 * X(3) – 5 * X(5) + 17 * X(6) = 111,
-X(1) + 5 * X(2) + 8 * X(3) – 6 * X(4) + 15 * X(5) + 10 * X(6) =82,
X(2) – 5 * X(3) + 3 * X(5) – X(6) =-19.

These equations, including the two exponential diophantine equations above, are based on Table 1, the 9×10 system, and the 6×6 system of Perez, Amaya, and Correa [3].

0 REM DEFDBL A-Z
1 DEFINT I, J, K

2 DIM B(99), N(99), A(2002), H(99), L(99), U(99), X(2002), D(111), P(111), PS(33), J(99), AA(99), HR(32), HHR(32), LHS(44), PLHS(44), LB(22), UB(22), PX(44), J44(44), PN(22), NN(22)
88 FOR JJJJ = -32000 TO 32111

89 RANDOMIZE JJJJ
90 M = -3D+30
111 FOR J44 = 1 TO 10
113 A(J44) = FIX(RND * 30)

115 NEXT J44

128 FOR I = 1 TO 1000
129 FOR KKQQ = 1 TO 10
130 X(KKQQ) = A(KKQQ)
131 NEXT KKQQ
139 FOR IPP = 1 TO FIX(1 + RND * 3)
140 B = 1 + FIX(RND * 10)
160 R = (1 – RND * 2) * A(B)

163 IF RND < .5 THEN 165 ELSE GOTO 167
165 IF RND < .5 THEN X(B) = CINT(A(B) – RND ^ 3 * R) ELSE X(B) = CINT(A(B) + RND ^ 3 * R)

166 GOTO 168
167 IF RND < .5 THEN X(B) = CINT(A(B) – 1) ELSE X(B) = CINT(A(B) + 1)
168 NEXT IPP
177 X(1) = -3 + X(3) – 2 * X(5) + X(7) + X(9)
179 X(10) = (-24 – X(1) ^ 2 + 2 * (X(2) + X(4)) ^ 3 – X(5) + 3 * X(6) + X(7) – 4 * X(9)) / 15
183 X(8) = -8 + X(2) + (2 * X(4)) ^ 2 – 6 * X(6) + 2 * X(10)
192 FOR J44 = 1 TO 10
193 IF X(J44) < 0 THEN 1670
194 NEXT J44
195 N(11) = 31 – 2 * X(1) – (X(2) + 3 * X(4)) ^ 3 – (5 * X(7)) ^ 2 + 6 * X(8) – X(9) + 9 * X(10)
197 N(12) = -16 – X(1) + 3 * X(2) – 4 * X(4) – X(6) + 6 * X(7) – X(8) + 2 * X(9)
199 N(13) = 27 – (2 * X(1) + X(2)) ^ 2 – 3 * X(3) + 10 * X(5) + (X(6) + 3 * X(7)) ^ 3 + X(8) + 6 * X(9)
201 N(14) = 23 – 5 * X(1) – 2 * X(2) + 8 * X(4) + 3 * X(5) – 4 * X(6) – X(7) + X(9)
203 N(15) = -9 – 3 * X(1) – 2 * X(2) + 5 * X(3) + X(4) ^ 4 + 2 * X(5) – X(6) – 4 * X(7) + 10 * X(8) – 8 * X(9)
205 N(16) = -25 – 3 * X(1) + (2 * X(2)) ^ 2 – 10 * X(3) + 9 * X(4) – 3 * X(5) – X(6) + 2 * X(7) + 8 * X(8) – 12 * X(9) + 5 * X(10)
209 N(17) = -39 + 5 * X(1) + 10 * X(2) – 5 * X(3) + X(5) ^ 3 + 8 * X(6)
210 N(18) = 148 + 6 * X(1) + X(3) – 99 * X(2) + (15 * X(6)) ^ 2

212 N(19) = -18 + (X(1) + X(2)) ^ 2 – 7 * X(3) + 5 * X(4) + 12 * X(5) – 8 * X(6)
213 N(20) = 5 ^ X(5) + 5 ^ X(6) – 3 ^ X(8) – 7 ^ X(4)

214 N(21) = 1 + 2 ^ X(5) + 7 ^ X(6) – 3 ^ X(8) – 5 ^ X(4)

333 REM

338 N(22) = 3 * X(1) + 18 * X(3) – 5 * X(5) + 17 * X(6) – 111

344 REM

348 N(23) = -X(1) + 5 * X(2) + 8 * X(3) – 6 * X(4) + 15 * X(5) + 10 * X(6) – 82

355 REM

359 N(24) = X(2) – 5 * X(3) + 3 * X(5) – X(6) + 19
555 P = -ABS(N(11)) – ABS(N(12)) – ABS(N(13)) – ABS(N(14)) – ABS(N(15)) – ABS(N(16)) – ABS(N(17)) – ABS(N(18)) – ABS(N(19)) – ABS(N(20)) – ABS(N(21)) – ABS(N(22)) – ABS(N(23)) – ABS(N(24))
1111 IF P <= M THEN 1670
1452 M = P
1454 FOR KLX = 1 TO 10
1455 A(KLX) = X(KLX)
1456 NEXT KLX
1557 GOTO 128
1670 NEXT I
1889 IF M < -1 THEN 1999

1904 PRINT A(1), A(2), A(3)
1906 PRINT A(4), A(5), A(6)
1907 PRINT A(7), A(8), A(9), A(10)
1917 PRINT M, JJJJ

1999 NEXT JJJJ

This computer program was run with qb64v1000-win [5]. Copied by hand from the screen, the computer program’s complete output through JJJJ=-20074 is shown below:

3    4    5
0    1    1
1    2    2    6
0    -31144

3    4    5
0    1    1
1    2    2    6
0    -30420

3    4    5
0    1    1
1    2    2    6
0    -29957

3    4    5
0    1    1
1    2    2    6
0    -25944

3    4    5
0    1    1
1    2    2    6
0    -20149

3    4    5
0    1    1
1    2    2    6
0    -20074

Above there is no rounding by hand; it is just straight copying by hand from the screen.

On a personal computer with a Pentium Dual-Core CPU E5200 @2.50GHz, 2.50 GHz, 960 MB of RAM and with qb64v1000-win [5], the wall-clock time through JJJJ=-20074 was two minutes.

Acknowledgment

I would like to acknowledge the encouragement of Roberta Clark and Tom Clark.

References

[1] S. Abraham, S. Sanyal, M. Sanglikar (2013), Finding Numerical Solutions of Diophantine Equations Using Ant Colony Optimization. Applied Mathematics and Computation 219 (2013), Pages 11376-11387.

[2] Microsoft Corp., BASIC, Second Edition (May 1982), Version 1.10. Boca Raton, Florida: IBM Corp., Personal Computer, P. O. Box 1328-C, Boca Raton, Florida 33432, 1981.

[3] O. Perez, I. Amaya, R. Correa (2013), Numerical Solution of Certain Exponential and Non-linear Diophantine Systems of Equations by Using a Discrete Particles Swarm Optimization Algorithm. Applied Mathematics and Computation, Volume 225, 1 December 2013, Pages 737-746.

[4] Thomas L. Saaty, Optimization in Integers and Related Extremal Problems. McGraw-Hill, 1970.

[5] Wikipedia, QB64, https://en.wikipedia.org/wiki/QB64.