4
$\begingroup$

Say if I have a formula like so:

a1*a2*a3^(a4 + 1)*(1 - E^(a5*a6/a3^a4/a2)) == 0

How do I move a3 to the right? I've tried to follow other examples here on stack exchange but couldn't find anything that worked on this kind of formula.

Using Solve[] causes this error:

Solve::nsmet: This system cannot be solved with the methods available to Solve.

$\endgroup$
5
  • 1
    $\begingroup$ You've seen Solve[]? $\endgroup$ Sep 23, 2012 at 23:51
  • $\begingroup$ Yes but I get this error: "Solve::nsmet: This system cannot be solved with the methods available to Solve." $\endgroup$ Sep 23, 2012 at 23:56
  • 1
    $\begingroup$ @Zammbi Start a fresh mathematica kernel (ie. close the Mma app and start it again) $\endgroup$ Sep 23, 2012 at 23:59
  • $\begingroup$ @belisarius I tried that but still same error. Does it work for you? $\endgroup$ Sep 24, 2012 at 0:11
  • 1
    $\begingroup$ @Zammbi post your Solve[] code, and the Mathematica version you are using $\endgroup$ Sep 24, 2012 at 0:13

1 Answer 1

5
$\begingroup$

I assume you mean by move a3 to the right that you want to solve for a3. Are you working in real numbers, then Reduce might be a better option than Solve

Reduce[a1*a2*a3^(a4 + 1)*(1 - E^(a5*a6/a3^a4/a2)) == 0, a3, Reals]

and you get

(-1 < a4 < 0 && a3 == 0) || (C[1] \[Element] Integers && (
(a1 == 0 && a4 == -C[1] && a3 < 0) || (a2 == 0 && 
a4 == -C[1] && a3 < 0) || (a5 == 0 && a4 == -C[1] && 
a3 < 0) || (a6 == 0 && a4 == -C[1] && a3 < 0))) || (a1 == 0 && 
a3 > 0) || (a2 == 0 && a3 > 0) || (a5 == 0 && a3 > 0) || (a6 == 0 && a3 > 0)

Now you have to understand the solution. Look at the structure of your equation. It's a product and therefore it is zero when either factor is zero. All the possibilities given (as logical formula) tell you how it is possible to make one factor zero. For instance setting a3==0 but this holds only, if the exponent containing a4 fulfills some requirements, namely -1 < a4 < 0.

If you are really only interested in the solution that contains a3, you can use Solve which gives you effectively only the first part of the solution of Reduce

Solve[a1*a2*a3^(a4 + 1)*(1 - E^(a5*a6/a3^a4/a2)) == 0, a3, Reals]
Out[4]= {{a3 -> ConditionalExpression[0, -1 < a4 < 0]}}
$\endgroup$
3
  • $\begingroup$ Thanks. Goes over my head. So probably will leave out this programming optimisation I was trying to do. $\endgroup$ Sep 24, 2012 at 1:01
  • $\begingroup$ It is interesting to understand, why without specification of the domain Solve returns no solution, while with the domain it does? $\endgroup$ Sep 24, 2012 at 10:08
  • $\begingroup$ Exponentiation in the complex domain is much harder with different rules. Without specification of the domain, Mathematica assumes the complex domain. $\endgroup$
    – halirutan
    Sep 24, 2012 at 10:36

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.