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$?


  • 1
    $\begingroup$ 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. $\endgroup$ – 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.

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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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