# DSolve does not return solution to simple system of second order PDEs

I'm trying to solve a simple system of second order PDEs with Mathematica 11.1. Here is the system:

DSolve[{
D[f[x, y, z], x, y] == 0,
D[f[x, y, z], x, z] == 0,
D[f[x, y, z], y, z] == 0
}, f[x, y, z], {x, y, z}]


Mathematica returns it unevaluated... I expect the solution to be

f[x,y,z] -> C[1][x] + C[2][y] + C[3][z]


Any idea what I can try?

Thanks!

Update:

We can differentiate a third time:

DSolve[{D[f[x, y, z], x, y, z] == 0}, f[x, y, z], {x, y, z}]


and then Mathematica gives the following answer:

f[x, y, z] -> C[1][y, z] + C[2][x, z] + C[3][x, y]


Maybe this can be somehow combined with the answer by bbgodfrey to give the correct answer for the system above?

• Trying to solve the simpler DSolve[{D[f[x, y, z], x, y] == 0, D[f[x, y, z], x, z] == 0}, f[x, y, z], {x, y, z}] leaks an internal error and returns a manifestly wrong answer, {{f[x, y, z] -> C[1][y, z] + Inactive[Integrate][C[1][K[2]], {K[2], 1, x}]}}. – bbgodfrey Sep 19 '20 at 13:48
• This nonstandard system is not so simple since Maple produces a non-optimal answer $$f \left( x,y,z \right) ={\it _F6} \left( x \right) +{\it _F5} \left( z \right) +{\it _F4} \left( y \right) +{\it _F3} \left( z \right).$$ – user64494 Sep 19 '20 at 14:20

The comment by user64494 suggested to me the following

sxy = Flatten@DSolve[{D[f[x, y, z], x, y] == 0}, f[x, y, z], {x, y, z}] /.
C[n_][z][v_] -> d[n][v, z];
sxz = Flatten@DSolve[{D[d[1][x, z], x, z] == 0}, d[1][x, z], {x, z}] /. C -> c;
syz = Flatten@DSolve[{D[d[2][y, z], y, z] == 0}, d[2][y, z], {y, z}] /. C -> b;
sxy /. sxz /. syz
(* {f[x, y, z] -> b[1][y] + b[2][z] + c[1][x] + c[2][z]} *)


Not at all satisfying but perhaps useful in some circumstances.

First we solve the system:

s = Flatten @@
DSolve[{D[f[x, y, z], x, y, z] == 0}, f[x, y, z], {x, y, z}] /.
C[n_][a_, b_] -> d[n][a, b]


getting:

{f[x, y, z] -> d[1][y, z] + d[2][x, z] + d[3][x, y]}


Then we solve the original system equation for equation:

sxyz = Join[
Flatten @@
DSolve[D[d[1][y, z] + d[2][x, z] + d[3][x, y], x, y] == 0,
d[3][x, y], {x, y}] /. C[n_][a_] -> f1[n][a],
Flatten @@
DSolve[D[d[1][y, z] + d[2][x, z] + d[3][x, y], x, z] == 0,
d[2][x, z], {x, z}] /. C[n_][a_] -> f2[n][a],
Flatten @@
DSolve[D[d[1][y, z] + d[2][x, z] + d[3][x, y], y, z] == 0,
d[1][y, z], {y, z}] /. C[n_][a_] -> f3[n][a]
]


getting:

{d[3][x, y] -> f1[1][x] + f1[2][y],
d[2][x, z] -> f2[1][x] + f2[2][z],
d[1][y, z] -> f3[1][y] + f3[2][z]}


The final solution comes then from:

(s /. sxyz) //. f_[n_][a_] + g_[m_][a_] -> F[n][m][a]


as:

{f[x, y, z] -> F[1][1][x] + F[2][1][y] + F[2][2][z]}