Does any one know a trick to make DSolve find solution to this coupled linear first order PDE system: (these are Cauchy-Riemann PDE equations, but with one of them having one of the dependent variables as well).


ode1  = D[F1[x,y],y]-D[F2[x,y],x] == 0
ode2  = D[F1[x,y],x]+D[F2[x,y],y] == y  (*y here causes the problem*)


Mathematica graphics

This can be solved in Maple:

eq1:= diff(F1(x,y),y)-diff(F2(x,y),x) = 0;
eq2:= diff(F1(x,y),x)+diff(F2(x,y),y) = y;

Solution it gives is

F1(x, y) = _F1(y-I*x)+_F2(y+I*x)
F2(x, y) = I*_F1(y-I*x)-I*_F2(y+I*x)+(1/2)*y^2+_C1

Screen shot:

Mathematica graphics

If the RHS of the second equation is not y but a constant or some other parameter, then Mathematica can now solve it:

ode1  =  D[F1[x,y],y]-D[F2[x,y],x]  == 0
ode2  = D[F1[x,y],x]+D[F2[x,y],y]   == m

Mathematica graphics

Is this a known limitation of DSolve or is there a trick or some other method to get the same solution as in Maple?

Using version 11.2 on windows 7.

  • $\begingroup$ Would you view Simplify[Unevaluated[D[F1[x, y], x] + D[F2[x, y], y] == y] /. F2[x, y] -> G2[x, y] + y^2/2] as cheating? $\endgroup$
    – bbgodfrey
    Jan 11, 2018 at 4:39
  • $\begingroup$ @bbgodfrey thanks, but I am not sure how to use the above trick. I trired ClearAll[F1,F2,G2,x,y,m]; ode1=D[F1[x,y],y]-D[F2[x,y],x]==0; ode2=Simplify[Unevaluated[D[F1[x,y],x]+D[F2[x,y],y]==y]/.F2[x,y]->G2[x,y]+y^2/2]; DSolve[{ode1,ode2},{F1[x,y],G2[x,y]},{x,y}] but it still does not solve it. $\endgroup$
    – Nasser
    Jan 11, 2018 at 4:51
  • $\begingroup$ Below is what I had in mind. $\endgroup$
    – bbgodfrey
    Jan 11, 2018 at 4:56

1 Answer 1


The following substitution eliminates the right side of ode2, and DSolve then can solve the resulting equations.

ode3 = Unevaluated[D[F1[x, y], y] - D[F2[x, y], x] == 0] /. F2[x, y] -> G2[x, y] + y^2/2
(* D[F1[x, y], y] - D[G2[x, y], x] == 0 *)

ode4 = Simplify[Unevaluated[D[F1[x, y], x] + D[F2[x, y], y] == y] /. 
    F2[x, y] -> G2[x, y] + y^2/2]
(* D[F1[x, y], x] + D[G2[x, y], y] == 0 *)

DSolve[{ode3, ode4}, {F1[x, y], G2[x, y]}, {x, y}] // Flatten
(* {F1[x, y] -> I C[1][I x + y] - I C[2][-I x + y], 
    G2[x, y] -> C[1][I x + y] + C[2][-I x + y]} *)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.