Program BIGLIE for Lie analysis of differential equations on IBM type PCs
------------------------------------------------------------------------

by
A. K. Head   FRS  FAA
Honorary Research Fellow
CSIRO Manufacturing Science and Technology
Melbourne Australia

Postal: Private Bag 33
        Clayton South MDC
        Australia 3169

Phone: (03) 9544 2861
Fax: (03) 9544 1128
E-mail: head@rivett.mst.csiro.au

Contents of BIGLIExx.ZIP
----------------------------------------
README.BIG  This file.

MUBIG.EXE   The operating program.

.DAT files  Test and example input files.

BIGLIE.LIE  Additional source code

Assumption
----------
          That you have tried LIE and found that your problem was too big 
for it. So this file just explains the differences between LIE and BIGLIE
( which can treat bigger problems by offloading things to scratch files
on disk ).


Windows Caution
---------------
               It appears that Windows 95 DOS makes mistakes when running 
versions of LIE before v5.  A clear example is the file DEL4X.DAT. This was 
one of the original reasons for writing LIE and it has long been known that 
these equations have 17 symmetries. But it has been found that previous 
versions of LIE under Windows 95 give only 8 symmetries and most of these are 
wrong. I am told that it is "well known" that Windows 95 DOS has problems. It 
appears that version 5 gets around this problem of Windows 95. But "appears" 
is the strongest word I can use and I advise caution when running in Windows 
95 DOS . 
        This version 5.2 has run correctly under Wimdows 3.1, 95, 98 and NT4.
This was when going to DOS by clicking on the MsDos icon.


Not Available in BIGLIE
-----------------------
Contact symmetries
Lie-Backlund symmetries
Non-classical or generalized symmetries
Approximate symmetries


Available as in LIE
-------------------
Classical Lie point symmetries
DOVEC()
DONZC()
SHOW# for special values of constants or functions
RESULTS(...)
TARGET# and SUBST#
PRN2FILE

Differences between LIE and BIGLIE
----------------------------------
           As with LIE there are several ways of calculating the symmetries.
This is necessary in the absence of any theoretical ( let alone practical )
algorithm that is certain to solve all possible sets of determining eqns.
These are

Standard         IntConditions    Polynomial ansatz
RDS(your,dat);   RDS(your,dat);   RDS(your,dat);
BIGLIE();        BIGLIE();        BIGLIE();
BIGSOLV();       BIGINTCON();     BIGPOLY(2); for example
DOVEC();         DOSOLV();        DOVEC();
                 DOVEC():

BIGLIE replaces DOLIE for calculating the Lie determining equations.

BIGSOLV replaces DOSOLV for the standard way for solving these eqns.
The operation of BIGSOLV and DOSOLV are in a sense orthogonal.
DOSOLV tries first to apply simple operations to all determining eqns.
BIGSOLV tries first to apply all operations to simple determining eqns.

BIGINTCON replaces DOINTCON for putting the det eqns in "standard form".

BIGPOLY has only the one form whereas DOPOLY has a number of variants.
BIGPOLY(n) is equivalent to DOPOLYALL(n) in trying nth degree polynomials
in all variables for all Functions.

BIGCHECK replaces DOCHECK for checking if the solution satisfies the original
det eqns generated by BIGLIE.

BIGLIE writes a copy of the determining eqns ( in internal notation ) as
generated by BIGLIE to the file SAVEA#.BIG instead of SAVEA#.LIE. 
If you want to see these in mathematical notation then MATHDEQ() will
write them to the file MATH.DEQ

The only change to a LIE data file may be one line to tell the 
program which disk to use for scratch files. See below under
"Which Disk ?".

Crash
-----
     If the program runs out of space, it offers the choice of
Abort or Dos. As there will probably be files open then always choose
A for Abort then exit to DOS with CTRL-C or SYSTEM();  This ensures
that all files are closed.
     There will probably be many scratch files left on the disk which
should be deleted. All scratch files have names starting with BL so
DEL BL*.* deletes them all.

ESCape Key
----------
          The program is interrupted during calculation by the ESC key
and you are offered the choice of Abort,Break,Continue or Dos.
If there are open files, which is most of the time, then Break and Continue
are not valid so this can only be used to abort the calculation and the
remarks in the paragraph above apply.


Status
------
      BIGLIE is written in MUMATH, the symbolic mathematics language for
IBM type PCs. Versions of LIE before 3.1 required you to have the MUMATH
system. By generous permission of Soft Warehouse Inc, authors and
owners of MUMATH, this is no longer necessary. A limited version of
MUMATH is combined with BIGLIE to give MUBIG.EXE which is a complete
stand-alone operating program. Portions of the software are
copyrighted by Soft Warehouse Inc, 3660 Waialae Avenue, Suite 304,
Honolulu, Hawaii 96816 USA, and are used by permission on a gratis,
as-is basis with no liability or support.


Availability
------------
            The primary source of the latest version of
LIE and BIGLIE is the website

They can be downloaded from there and the document files viewed. 

            They are also available by ftp from many program archives.
Most widespread are the Simtelnet archives where they will be found in
/msdos/math/      The unzipping program is /msdos/UNZIP.EXE.


Test Run
--------
        LIE uses the one-dimensional heat conduction equation
in HEAT1.DAT as a demonstration test run and the same example
is used here for BIGLIE. The question of where the scratch files
will go is considered below in "Which Disk ?" but for this test
it is sufficient to use the default, that the scratch files will
be in the "home directory". It will be seen below that MUBIG was 
called when in directory BIG on disk C: and so the scratch files
will be in that directory on that disk.


C:\BIG>MUBIG

MUBIG
Portions (c) Soft Warehouse Inc. All rights reserved

? RDS(HEAT1,DAT);
@: HEAT1
?
? 
NIND#:2 $

?              % 2 independent variables  X1 = x and X2 = t %
NDEP#:1 $

?              % 1 dependent variable  U(1) = u      %
DE#:DV#:{} $

?           % declare DE# and DV# to be arrays    %
DE#[1]:   DIF(U(1),X2) - DIF(U(1),X1,2) $

?        %  only one DE this time % 
DV#[1]:   U(1,2) $

?       % and one DeriVative to substitute %
ECHO:FALSE$
?
? BIGLIE();
Program BIGLIE  v. 5.3 (c) 1989,2000  A K Head

691              "File size, in bytes, of prolongation
703              "File size of substituted prolongation
(310 7 14)       "File size, 7 det eqns, containing 14 terms

@: 412 (6, 11)   "Final det eqns,( file size, number, terms )

? BIGSOLV();
1                 <--- Reading in 1 term eqns
(0 0 3 1)         <--- Solving these

2                 <--- Reading in 2 term eqns
(2 6 3 1)         <--- Solving all these eqns
(3 6 1 2)
(3 7 4 3)
(3 8 3 3)
(4 8 1 3)
(3 6 2 2)
(2 4 7 1)
IntCon N Eqns= 2
(2 4 8 1)

3 
(3 8 4 3)
(3 12 3 3)
(5 12 1 2)
(7 12 1 5)
(6 10 2 5)
(5 9 3 1)
(4 8 3 1)
(4 10 4 1)
(3 6 2 4)
(3 7 4 1)
(2 4 2 3)
(2 5 4 1)
(1 2 2 2)


@: {DIF (F# (6, X1, X2), X1, 2) - DIF (F# (6, X1, X2), X2),
    UUU#1 == U1*X1*F# (15) + 2*U1*X2*F# (14) + U1*X1^2*F# (14) - U1*F# (19) + 
F# (6, X1, X2),
    XXX#1 == -4*X1*X2*F# (14) - X1*F# (16)/2 - 2*X2*F# (15) - F# (18),
    XXX#2 == -X2*F# (16) - 4*X2^2*F# (14) - F# (17)}

? DOVEC();

Unsolved Equation
DIF (F# (6, X1, X2), X1, 2) - DIF (F# (6, X1, X2), X2) == 0

Vectors
VEC# (1) == F# (6, X1, X2)*D# (U1)
VEC# (2) == -D# (X1)
VEC# (3) == -D# (X2)
VEC# (4) == -X1*D# (X1)/2 - X2*D# (X2)
VEC# (5) == -U1*D# (U1)
VEC# (6) == 2*U1*X2*D# (U1) + U1*X1^2*D# (U1) - 4*X1*X2*D# (X1) - 4*X2^2*D# (X2
)
VEC# (7) == U1*X1*D# (U1) - 2*X2*D# (X1)

and there should be no scratch files ( all of which have names 
starting with BL ) left on the disk. Check this after you exit
from MUBIG.


This output should be the same whether you are running directly under
DOS or in a Windows DOS box. In view of the troubles with the latter
it would be wise to also run DEL4X.DAT and check that you get 
17 symmetry vectors.


Which Disk ?
------------
            A version of BIGLIE was written in the early days of LIE
but was not then very practical. A decade later PCs are now very different.
They are much faster and, of importance here, with megabytes of extended 
memory that can be used as a fast electronic disk to write the scratch files 
on in place of the mechanical hard disk. If you will be making extensive use
of BIGLIE you may like to investigate a RAMDRIVE. How much faster is it than
a hard disk ?  That is very variable from one PC to another and speedups in
the range 3 to 8 times have been found over a mixture of PCs to hand.

        The basic thing is to add a line to the CONFIG.SYS bootup file like

              DEVICE=C:\DOS\RAMDRIVE.SYS 6000,512,1024 /e

This is what I have used while bringing BIGLIE up to date. It allocates
6000 kilobytes of /extendedmemory as an electronic diskdrive with sector
size of 512 and a maximum of 1024 directory entries. By default, it will 
be called drive D:

        To tell MUBIG to use this for scratch files requires the command
                      DISK#:'D
and this can either be typed on entering MUBIG or inserted in your
input data file. Note that, although to DOS it is drive D: , there is
no : after D in this command and the single quote ' tells the program
that D is just a letter and has nothing to do with any variable called D.
The test run above uses the default value of DISK#:FALSE which tells the
program to use the home directory for all scratch files.

        What size RAMDRIVE is needed ?  That is difficult to answer
in advance but in retrospect it would be about twice the size of 
the largest file size reported during BIGLIE(). Take for example YOU.DAT
from You Yage < youyg@giecnsl.giec.ac.cn >.  It is too large for LIE
and BIGLIE outputs

4246
8083
(4513 33 162)

372242
932540
(420059 827 7619)

75561
171155
(538561 1053 9753)

@: 197388 (461, 3841)

The largest file was 932540 bytes so a RAMDRIVE of 2000 kilobytes 
would be sufficient.
The size of a RAMDRIVE is of course limited by the amount of memory
available. But DOS also sets a limit and this depends on the version
of DOS. The maximum for DOS5 was 4096 kilobytes but for DOS6.2
it is 32767 kilobytes.

-----------------------------------------------------------------------------