Mathematica Stack Exchange is a question and answer site for users of Mathematica. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Here is a system which Maple can solve, but Mathematica cannot.

FF = f[a, b, c, d]

eq1 = D[FF, d] + (1 - a)*D[FF, a]/d == 0
eq2 = D[FF, c] + (b - (a - 1)*d)*D[FF, a]/(c*d) == 0
eq3 = D[FF, b] + D[FF, a]/d == 0
DSolve[{eq1, eq2, eq3}, {FF}, {a, b, c, d}]

DSolve does solve them individually, but can not solve them as a system, which is something I really need.

DSolve[eq1, f, {a, b, c, d}]
(* {{f -> Function[{a, b, c, d}, C[1][b, c][-(-1 + a) d]]}} *)
DSolve[eq2, f, {a, b, c, d}]
(* {{f -> Function[{a, b, c, d}, C[1][b, d][c (b + d - a d)]]}} *)
DSolve[eq3, f, {a, b, c, d}]
(* {{f -> Function[{a, b, c, d}, C[1][c, d][b - a d]]}} *)

Here is how it works in Maple: Maple works fine

So the solution is a function that takes parameters ${a,b,c,d}$, and the function is constructed somehow in this way $c(-b+(a-1)d)$.

How do I use _Mathematica to check, that it is a solution?

And similarly, how to do use MMA to construct a function from

(* {{f -> Function[{a, b, c, d}, C[1][b, c][-(-1 + a) d]]}} *)

That is, how do I construct a function with parameters ${a,b,c,d}$, and the body is separate in $b$ and $c$, but $a$ and $d$ are involved like $-(-1 + a) d$?


share|improve this question
Post the code. Asking readers to download something... just no. There is information in the help area on code formatting, and when you are editing the question basic formatting information is on your right, and a "?" button that leads to details. – ciao May 3 '14 at 7:38

You can check your solution by substituting it back into the equations:

{eq1, eq2, eq3} /. {
    f -> Function[{a, b, c, d}, g[c (d (a - 1) - b)]]}
// Simplify

(* {True, True, True} *)

Note that we substituted f with a Function of four variables, equal to some function g of the quantity c(d(a - 1) - b).

This answers your second question: you can construct such a function like so:

Function[{a, b, c, d}, h[b, c, (a-1)d]]

Where h represents some unknown functional dependence. In fact, DSolve already returned such a function:

Function[{a, b, c, d}, C[1][b, c][-(-1 + a) d]]

Instead of h, it uses a function C[1] that takes two parameters (b and c), and returns another function that takes one parameter (-(-1 + a) d). You can turn this into a more standard form by applying the following rule:

{C[n_][x1__][x2__] :> C[n][x1, x2]}

This turns, for example, the first solution into:

{f -> Function[{a, b, c, d}, C[1][b, c, -(-1 + a) d]]}

However, note that each of the three solutions uses the same name (C[1]) for its unknown function, but each of those functions will be different.

share|improve this answer
Cool now all I have left is to find a way to simplify the system so that Mathematica can solve it too. – Chen Stats Yu Feb 20 '15 at 21:18

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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