Wednesday, March 1, 2017

Solving Nonlinear Systems of Equations for Integer Solutions

Jsun Yui Wong

The computer program listed below seeks to find integer solutions (if any) of the following nonlinear problem:

         -141544 + X(1) ^ 3 + X(12) ^ 2 + X(3)=0,

         -424667 + X(2) ^ 3 + X(1) ^ 2 + X(4)=0,

         -861294 + X(3) ^ 3 + X(11) ^ 2 + X(2)=0,

         -683646 + X(4) ^ 3 + X(10) ^ 2 + X(5)=0,

         -196549 + X(5) ^ 3 + X(9) ^ 2 + X(8)=0,

         -517121 + X(6) ^ 3 + X(7) ^ 2 + X(6)=0,

         -359469 + X(7) ^ 3 + X(13) ^ 2 + X(9)=0,

         -319541 + X(8) ^ 3 + X(7) ^ 2 + X(8)=0,

         -52446 + X(9) ^ 3 + X(14) ^ 2 + X(12)=0,

         -101222 + X(10) ^ 3 + X(11) ^ 2 + X(14)=0,

         -241772 + X(11) ^ 3 + X(5) ^ 2 + X(6)=0,

         -26544 + X(12) ^ 3 + X(10) ^ 2 + X(13)=0,

         -68432 + X(13) ^ 3 + X(3) ^ 2 + X(4)=0,

         -76867 + X(14) ^ 3 + X(1) ^ 2 + X(2)=0,

        -142786 + X(1) ^ 3 + X(10) ^ 2 + X(11)=0,

where 0<=X(i)<=100 and X(i) are integers for i=1,2,3,...,14.

The nonlinear system above comes from Conley [5, p. 1018].


0 DEFDBL A-Z

3 DEFINT J, K, X

4 DIM X(342), A(342), L(333), K(333)

12 FOR JJJJ = -32000 TO 32000


    14 RANDOMIZE JJJJ

    16 M = -1D+317

    77 IF JJJJ > -32000 THEN GOTO 88 ELSE GOTO 91


    88 IF RND < .05 THEN GOTO 91 ELSE GOTO 128


    91 FOR KK = 1 TO 14

        94 A(KK) = FIX(RND * 81)


    95 NEXT KK


    128 FOR I = 1 TO 200000


        129 FOR K = 1 TO 14


            131 X(K) = A(K)
        132 NEXT K
        155 FOR IPP = 1 TO FIX(1 + RND * 3)

            181 B = 1 + FIX(RND * 14)


            182 REM IF RND < -.05 THEN 183 ELSE GOTO 189


            183 r = (1 - RND * 2) * A(B)
            186 X(B) = A(B) + (RND ^ 3) * r

            188 GOTO 191
            189 IF RND < .5 THEN X(B) = A(B) - FIX(1 + RND * 1.99) ELSE X(B) = A(B) + FIX(1 + RND * 1.99)


        191 NEXT IPP

        222 FOR J44 = 1 TO 14

            228 IF X(J44) > 100 THEN 1670


        233 NEXT J44


        1311 N81 = -141544 + X(1) ^ 3 + X(12) ^ 2 + X(3)


        1312 N82 = -424667 + X(2) ^ 3 + X(1) ^ 2 + X(4)


        1313 N83 = -861294 + X(3) ^ 3 + X(11) ^ 2 + X(2)


        1314 N84 = -683646 + X(4) ^ 3 + X(10) ^ 2 + X(5)

        1315 N85 = -196549 + X(5) ^ 3 + X(9) ^ 2 + X(8)


        1316 N86 = -517121 + X(6) ^ 3 + X(7) ^ 2 + X(6)


        1317 N87 = -359469 + X(7) ^ 3 + X(13) ^ 2 + X(9)


        1318 N88 = -319541 + X(8) ^ 3 + X(7) ^ 2 + X(8)


        1319 N89 = -52446 + X(9) ^ 3 + X(14) ^ 2 + X(12)

        1320 N90 = -101222 + X(10) ^ 3 + X(11) ^ 2 + X(14)


        1321 N91 = -241772 + X(11) ^ 3 + X(5) ^ 2 + X(6)


        1322 N92 = -26544 + X(12) ^ 3 + X(10) ^ 2 + X(13)


        1323 N93 = -68432 + X(13) ^ 3 + X(3) ^ 2 + X(4)


        1324 N94 = -76867 + X(14) ^ 3 + X(1) ^ 2 + X(2)


        1325 N95 = -142786 + X(1) ^ 3 + X(10) ^ 2 + X(11)

        1445 P = -ABS(N81) - ABS(N82) - ABS(N83) - ABS(N84) - ABS(N85) - ABS(N86) - ABS(N87) - ABS(N88) - ABS(N89) - ABS(N90) - ABS(N91) - ABS(N92) - ABS(N93) - ABS(N94) - ABS(N95)


        1499 IF P <= M THEN 1670
        1657 FOR KEW = 1 TO 14

            1658 A(KEW) = X(KEW)
        1659 NEXT KEW
        1661 M = P
    1670 NEXT I
    1888 IF M < 0 THEN 1999

    1917 PRINT A(1), A(2), A(3), A(4), A(5), A(6), A(7), A(8), A(9)
    1919 PRINT A(10), A(11), A(12), A(13), A(14), M, JJJJ

1999 NEXT JJJJ

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

52      75      95      88      58
80      71      68      37
46      62      29      39      42
0      -32000

52      75      95      88      58
80      71      68      37
46      62      29      39      42
0      -31999

52      75      95      88      58
80      71      68      37
46      62      29      39      42
0      -31987

52      75      95      88      58
80      71      68      37
46      62      29      39      42
0      -31986

52      75      95      88      58
80      71      68      37
46      62      29      39      42
0      -31985

.
.
.

52      75      95      88      58
80      71      68      37
46      62      29      39      42
0      -31968

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 [12], the wall-clock time through
JJJJ=-31968 was 35 seconds.

Incidentally, one can stop the computer run as soon as the first 0 (for M) appears on the screen.  For the present problem, that happens at JJJJ=-32000.

Acknowledgment

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

References
[1] R. Burden, J. Faires, A. Burden, Numerical Analysis, Tenth Edition. Cengage Learning, 2016.
[2] R. Burden, J. Faires, Numerical Analysis, Sixth Edition. Brooks/Cole Publishing Company, 1996.
[3] R. Burden, J. Faires, Numerical Analysis, Third Edition. PWS Publishers, 1985.
[4] W. Conley, Computer Optimization Techniques, Revised Edition.  Petrocelli Books, Inc., NY/Princeton, 1984.
[5] William Conley, Simulation Optimization and Correlation with Multi Stage Monte Carlo Optimization, International Journal of Systems Science, Vol.38, No. 12, Dec. 2007, pp. 1013-1019.
[6] D. Greenspan, V. Casulli, Numerical Analysis for Applied Mathematics, Science, and Engineering. Addison-Wesley Publishing Company, 1988
[7] L. W. Johnson, R. D. Riess, Numerical Analysis, Second Edition. Addison-Wesley Publishing Company, 1982
[8] 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.
[9] William H. Mills, A System of Quadratic Diophantine Equations, Pacific Journal of Mathematics, 3 (1953), pp. 209-220.
[10]  Thomas L.. Saaty, Optimization in Integers and Related Extremal Problems.  McGraw-Hill, 1970.
[11] Terry E. Shoup, Applied Numerical Methods for the Microcomputer, Prentice-Hall, 1984.
[12] Wikipedia, QB64, https://en.wikipedia.org/wiki/QB64.


No comments:

Post a Comment