123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182 |
- 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$
|