Artifact b919a4970258bd0f9a33af06c18e24f9130651dc41ddbe79d4d580f6bf8069fa:
- Executable file
r37/packages/crack/conlaw.tst
— part of check-in
[f2fda60abd]
at
2011-09-02 18:13:33
on branch master
— Some historical releases purely for archival purposes
git-svn-id: https://svn.code.sf.net/p/reduce-algebra/code/trunk/historical@1375 2bfe0521-f11c-4a00-b80e-6202646ff360 (user: arthurcnorman@users.sourceforge.net, size: 6628) [annotate] [blame] [check-ins using] [more...]
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$