Take the 2-minute tour ×
Mathematica Stack Exchange is a question and answer site for users of Mathematica. It's 100% free, no registration required.

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.

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

1 Answer

up vote 5 down vote accepted

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]}}
share|improve this answer
    
Thanks. Goes over my head. So probably will leave out this programming optimisation I was trying to do. –  Zammbi Sep 24 '12 at 1:01
    
It is interesting to understand, why without specification of the domain Solve returns no solution, while with the domain it does? –  Alexei Boulbitch Sep 24 '12 at 10:08
    
Exponentiation in the complex domain is much harder with different rules. Without specification of the domain, Mathematica assumes the complex domain. –  halirutan Sep 24 '12 at 10:36
add comment

Your Answer

 
discard

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.