off echo, dfprint$ % FJW
%*******************************************************************%
% %
% CONLAW.TST contains test examples for the programs CONLAW1.RED %
% CONLAW2.RED, CONLAW3.RED %
% %
% Author: Thomas Wolf %
% Date: 1. Jan 1998 %
% %
% Details about the syntax of CONLAWi are given in CONLAW.TEX. %
% To run this file read in or load CRACK, CONLAW0.RED before. %
% %
%*******************************************************************%
lisp(depl!*:=nil)$ % clearing of all dependencies
setcrackflags()$ % standart flags
lisp(print_:=nil)$ % no output of the calculation
lisp <<terpri()$write
"If you want to see more details of the following calculation then"$
terpri()$write"change in the file `conlaw.tst' the line"$
terpri()$write" lisp(print_:=nil)$ "$
terpri()$write"into"$
terpri()$write" lisp(print_:=10)$ "$
terpri()>>$
lisp <<terpri()$write
"**************************************************************************"$
terpri()$terpri()$write
"The following example calculates all conservation laws of the KdV-"$
terpri()$write
"equation with a characteristic function of order not higher than two"$
terpri()>>$
nodepnd {u}$ % deletes all dependencies of u
depend u,x,t$ % declares u to be a function of x,t
conlaw3({{df(u,t) = u*df(u,x)+df(u,x,3)}, {u}, {t,x}},
{0, 2, t, {}, {}} )$
lisp <<terpri()$write
"**************************************************************************"$
terpri()$terpri()$write
"The next example demonstrates that one can specify an ansatz"$
terpri()$write
"for the characteristic function of one or more equations of the"$
terpri()$write
"PDE-system. In this example all conservation laws of the wave"$
terpri()$write
"equation which is written as a first order system are calculated"$
terpri()$write
"such that the characteristic functions of the first of both"$
terpri()$write
"equations is proportional to df(u,x,2). (This will include zero"$
terpri()$write
"as it is a multiple of df(u,x,2) too.)"$
terpri()>>$
comment
In the following input the equations are solved for the t-derivatives,
so the t-derivatives will be substituted in the conservation-law-
conditions, so the ansatz for q_1 should have no t-derivatives of u
included. Therefore the function r in q_1 below is specified as
depending on t,x,u,v,df(u,x),df(v,x).
In the call of conlaw2 the list of variables is {t,x} and x is
the second of the variables (could equally well be in reverse order).
Therefore df(u,x) takes the form u!`2 when the dependencies of r
are specified (see CONLAW.TEX). $
nodepnd {u,v,r}$
depend u,x,t$
depend v,x,t$
depend r,t,x,u,v,u!`2,v!`2$
q_1:=r*df(u,x,2)$
conlaw2({{df(u,t)=df(v,x),
df(v,t)=df(u,x) }, {u,v}, {t,x}},
{2, 2, t, {r}, {}})$
clear q_1$
nodepnd {q_1}$
lisp<<terpri()$write
"**************************************************************************"$
terpri()$terpri()$write
"For the Burgers equation the following example finds all conservation"$
terpri()$write
"laws of zero'th order in the characteristic function up to the solution"$
terpri()$write
"of the linear heat equation. This is an example for what happens when not"$
terpri()$write
"all conditions could be solved, but it is also an example which shows"$
terpri()$write
"that not only characteristic functions of polynomial or rational form"$
terpri()$write
"can be found."$
terpri()>>$
nodepnd {u}$
depend u,x,t$
conlaw1({{df(u,t)=df(u,x,2)+df(u,x)**2/2}, {u}, {t,x}},
{0, 0, t, {}, {}} )$
lisp <<terpri()$write
"**************************************************************************"$
terpri()$terpri()$write
"In this example all conservation laws of the Ito system are calculated"$
terpri()$write
"that have a conserved density of order not higher than one."$
terpri()$write
"This is a further example of non-polynomial conservation laws."$
terpri()>>$
nodepnd {u,v}$
depend u,x,t$
depend v,x,t$
conlaw1({{df(u,t)=df(u,x,3)+6*u*df(u,x)+2*v*df(v,x),
df(v,t)=2*df(u,x)*v+2*u*df(v,x) }, {u,v}, {t,x}},
{0, 1, t, {}, {}})$
lisp <<terpri()$write
"**************************************************************************"$
terpri()$terpri()$write
"In the next example the 5th order Korteweg - de Vries equation is"$
terpri()$write
"investigated concerning conservation laws of order 0 and 1 in the"$
terpri()$write
"conserved density P_t. Parameters a,b,c in the PDE are determined"$
terpri()$write
"such that conservation laws exist. This complicates the problem by"$
terpri()$write
"making it non-linear with a number of cases to be considered."$
terpri()$write
"Some of the subcases below can be combined to reduce their number"$
terpri()$write
"which currently is not done automatically."$
terpri()>>$
nodepnd {u}$
depend u,x,t$
conlaw1({{df(u,t)=-df(u,x,5)-a*u**2*df(u,x)
-b*df(u,x)*df(u,x,2)-c*u*df(u,x,3)},
{u}, {t,x}},
{0, 1, t, {a,b,c}, {}})$
lisp <<terpri()$write
"**************************************************************************"$
terpri()$terpri()$write
"CONLAWi can also be used to determine first integrals of ODEs."$
terpri()$write
"The generality of the ansatz is not just specified by the order."$
terpri()$write
"For example, the Lorentz system below is a first order system"$
terpri()$write
"therefore any first integrals are zero order expressions."$
terpri()$write
"The ansatz to be investigated below looks for first integrals of"$
terpri()$write
"the form a1(x,1)+a2(y,t)+a3(x,t)=const. and determines parameters"$
terpri()$write
"s,b,r such that first integrals exist."$
terpri()>>$
nodepnd {x,y,z,a1,a2,a3,b,s,r}$
depend x,t$
depend y,t$
depend z,t$
depend a1,x,t$
depend a2,y,t$
depend a3,z,t$
p_t:=a1+a2+a3$
conlaw1({{df(x,t) = - s*x + s*y,
df(y,t) = x*z + r*x - y,
df(z,t) = x*y - b*z},
{x,y,z},{t}
},
{0,0,t,{a1,a2,a3,s,r,b},{}})$
clear p_t$
nodepnd {u,v,r,p_t,x,y,z,a1,a2,a3,b,s,r}$
end$