For the following second order PDE (A&*Laplace_Operator(F) + a&*gradient(F)) I
get a result witch contains two non global variables \((X[1], X[2])\). The check with pdetest is
negative.
> restart; > map(interface, [version, patchlevel]); [Maple Worksheet Interface, Maple 6, IBM INTEL LINUX22, Jan 31 2\ 000 Build ID 16401, 0] > pde := a11*diff(F(x,y), x,x) + a22*diff(F(x,y), y,y) > + b1*diff(F(x,y), x) + b2*diff(F(x,y), y): > sol := pdsolve(pde, build); sol := F(x, y) = _F1( (2 a22 b1 - 2 sqrt(-a11 a22) b2 + 4 a11 a22 X[2]) / y a11 \ |1/2 x - 1/2 --------------| - \ sqrt(-a11 a22)/ (-b1 sqrt(-a11 a22) + b2 a11 + 4 a11 a22 X[1]) /sqrt(-a11 a22) x \ |---------------- + y|) \ a11 / > 'pdetest(sol, pde) = 0': '%' = evalb(%); (pdetest(sol, pde) = 0) = false > indets(sol, indexed) minus {X[1], X[2]}; # non global variables X[1],X[2] {X[1], X[2]}
If I set either a11=a22=0 (no Laplace-Operator) or b1=b2=0 (no gradient term) the checks
with pdetest are positive.
It is corrected with Maple 7. (U. Klein)
You are correct - the result you show is wrong - those X[1], X[2] should not be there.
The correct result is
> pdsolve(pde,build); 2 /sqrt(-a11 a22) x \ 4 _c[1] |---------------- + y| a11 a22 \ a11 / F(x, y) = _C1 exp(-------------------------------------) %1 /sqrt(-a11 a22) x \ _c[1] |---------------- + y| b2 a11 \ a11 / exp(-----------------------------------) %1 / y a11 \ 2 _c[1] sqrt(-a11 a22) |1/2 x - 1/2 --------------| b2 \ sqrt(-a11 a22)/ exp(----------------------------------------------------) %1 / / y a11 \ 2 | _c[1] a22 |1/2 x - 1/2 --------------| b1 / | \ sqrt(-a11 a22)/ _C2 / |exp(-----------------------------------------) / \ %1 /sqrt(-a11 a22) x \ \ _c[1] |---------------- + y| b1 sqrt(-a11 a22) | \ a11 / | exp(----------------------------------------------)| %1 / %1 := 4 a11 a22 _c[1] - b1 sqrt(-a11 a22) + b2 a11 > pdetest(%,pde); 0
An alternative to have pdsolve in your machine free of this problem would
be for you to download the PDEtools package available on the web at
http://lie.uwaterloo.ca/pdetools.htm. There you will find the latest version of
PDEtools. To have the downloaded package active and so Maple’s pdsolve updated it
suffices to drop the package in any directory and add that directory to the libname
(see instructions in the readme.txt file distributed in the zip). This is not an
official Maple patch, but the version of the package on the web is "free of known
bugs up-to-today"| and maintained with the help of feedback from people all
around.
Try Release 5.1:
>with(PDEtools): >pde:=a11*diff(F(x,y),x,x)+a22*diff(F(x,y),y,y)+b1*diff(F(x,y),x) +b2*diff(F(x,y),y): >pdsolve(pde, F, build); >simplify(%);
The result comes easily.