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.