7.117 bug in pdsolve (second order PDE) in Maple 6 (17.8.00)

7.117.1 E. Elbraechter
7.117.2 Edgardo S. Cheb-Terrab (18.8.00)
7.117.3 Willard, Daniel Dr (21.8.00)

7.117.1 E. Elbraechter

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)

7.117.2 Edgardo S. Cheb-Terrab (18.8.00)

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.

7.117.3 Willard, Daniel Dr (21.8.00)

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.