7
$\begingroup$

Bug introduced in 6.0 or earlier and fixed in 10.1


Consider this set of PDE $$\left( x^{2}+y^{2}\right) \dfrac {\partial u}{\partial x}+n x y\dfrac{\partial u}{\partial y}=0$$ have general solution $$u\left( x,y\right) =f\left( \dfrac {1}{n-1}\dfrac {\left( n-1\right) x^{2}-y^{2}}{y^{\dfrac{2}{n}}}\right)$$for $n\in Z$ and $n\geq 2$, where $f$ is an arbitrary function.

However, in Mathematica, only solution for $n=2$ can be given. For $n=3$ and $n=4$, Mathematica calculates for a long time (I didn't wait for the result).

The key point is when $n\geq 5$, Mathematica starts giving strange error messages and refuse to solve the PDE. For example,

DSolve[(x^2 + y^2) D[u[x, y], x] + 5 x y D[u[x, y], y] == 0, u[x, y], {x, y}] (*{{c[x, y] -> C[1][DSolve`DSolvePDEDump`const$19959[1]]}}*) 

I get

Function::slot: Slot[DSolveDSolvePDEDumpiPowerExpand[1]] (in DSolveDSolvePDEDumpiPowerExpand[DSolveDSolvePDEDumpiPowerExpand[DSolveDSolvePDEDumpiPowerExpand[-1024] DSolveDSolvePDEDumpiPowerExpand[DSolveDSolvePDEDumpiPowerExpand[<<1>>]^DSolveDSolvePDEDumpiPowerExpand[<<1>>]]]+<<1>>+<<3>>+DSolveDSolvePDEDumpiPowerExpand[<<33>>[Slot[<<33>>[<<1>>]]]^<<33>>[5]]]&) should contain a non-negative integer. >>

Root::npoly: (DSolveDSolvePDEDumpiPowerExpand[DSolveDSolvePDEDumpiPowerExpand[DSolveDSolvePDEDumpiPowerExpand[-1024] DSolveDSolvePDEDumpiPowerExpand[DSolveDSolvePDEDumpiPowerExpand[<<1>>]^DSolveDSolvePDEDumpiPowerExpand[<<1>>]]]+<<4>>+DSolveDSolvePDEDumpiPowerExpand[<<33>>[Slot[<<33>>[<<1>>]]]^<<33>>[5]]]&)[#1] is not a polynomial in #1. >>

I understand that Mathematica may not always be able to solve a PDE, but why am I getting those error messages? What do they mean?

$\endgroup$
9
  • $\begingroup$ I wonder what form has that f in the "general" solution ... Can you share some info about it? $\endgroup$ Commented Mar 13, 2015 at 12:40
  • $\begingroup$ @belisarius f is an arbitrary function. In other words, no matter what f you choose, $u \left( x,y\right)$ is a solution to the PDE. To simplify the problem, you can ignore the $f$ function and just use what is inside. $\endgroup$ Commented Mar 13, 2015 at 12:43
  • $\begingroup$ @belisarius Linear and quasilinear first-order PDEs have such a solution. In DSolve[D[u[x, y], x] + D[u[x, y], y] == 1, u, {x, y}] and DSolve[D[u[x, y], x] + u[x, y] D[u[x, y], y] == 1, u, {x, y}] the f shows up as C[1]. $\endgroup$ Commented Mar 13, 2015 at 13:52
  • 1
    $\begingroup$ @belisarius I just learned that a few months ago myself :) -- never had a course in PDEs. I think of it like this: An ordinary antiderivative is defined up to a function of no variables (i.e. a constant); an anti-partial-derivative is defined up to a function n-1 variables, where n is the number of variables in the fn./PDE being integrated. $\endgroup$ Commented Mar 13, 2015 at 14:07
  • 1
    $\begingroup$ OK, it is confirmed as a bug by Wolfram technical support. $\endgroup$ Commented Mar 17, 2015 at 16:11

1 Answer 1

3
$\begingroup$

This bug is fixed in Mathematica 10.1.0. (Mac OS X 10.10.3)

DSolve[(x^2 + y^2) D[u[x, y], x] + 5 x y D[u[x, y], y] == 0, u[x, y], {x, y}]// AbsoluteTiming 

Solve::ifun: Inverse functions are being used by Solve, so some solutions may not be found; use Reduce for complete solution information. >>

{0.086166,{{u[x, y] -> C[1][Log[-((4 x^2 - y^2)^(5/8)/y^(1/4))]]}, {u[x, y] -> C[1][Log[-((I (4 x^2 - y^2)^(5/8))/y^(1/4))]]}, {u[x, y] -> C[1][Log[(I (4 x^2 - y^2)^(5/8))/y^(1/4)]]}, {u[x, y] -> C[1][Log[(4 x^2 - y^2)^(5/8)/y^(1/4)]]}, {u[x, y] -> C[1][Log[-(((-1)^(1/4) (4 x^2 - y^2)^(5/8))/y^(1/4))]]}, {u[x, y] -> C[1][Log[((-1)^(1/4) (4 x^2 - y^2)^(5/8))/y^(1/4)]]}, {u[x, y] -> C[1][Log[-(((-1)^(3/4) (4 x^2 - y^2)^(5/8))/y^(1/4))]]}, {u[x, y] -> C[1][Log[((-1)^(3/4) (4 x^2 - y^2)^(5/8))/y^(1/4)]]}}} 

Similarly, it worked with all $n\geq5$, but for $n=4$ and $n=3$, the evaluation is still quite long.

$\endgroup$

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.