MathGroup Archive 2011

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Solving simple equations

This may be a "very simple equation" for a human but not for a computer 
program. First, it can only be solved by making additional assumptions 
(of the kind you tried to use). However, first of all Solve (and Reduce) 
cannot receive assumptions through the Assumptions mechanism so your 
Assuming is doing nothing at all.  Second, there is no general algorithm 
that can solve transcendental equations of this kind even when all these 
assumptions are satisfied. The fact that this particular equation can be 
easily solved is due to it being a very special case of an unsolvable 
general type. So, in such situations, you usually have to intervene and 
simplify it to a form that Solve can recognise. In this particular case, 
you can take Logs of both sides, PowerExpand (which works under your 
assumptions) and the rest Solve can do for you.

n /. Solve[PowerExpand[Log[(A*n^a)^b/n] == Log[c], Assumptions ->
      {A > 0, n > 0, a > 0, b > 0}], n][[1]]

E^((Log[c] - b*Log[A])/(a*b - 1))

(Note that if you change your equation even slightly, e.g. Log[(A (n + 
1)^a)^b/n] == Log[c], it will become unsolvable).

Andrzej Kozlowski

On 5 Nov 2011, at 10:49, Mathieu wrote:

> Mathematica seems to struggle with very simple equations:
> Solve[(A*n^a)^b/n == c, n]
> Solve::nsmet: This system cannot be solved with the methods available
> to Solve
> Reduce doesn't work either. Even if I add assumptions:
> Assuming[A > 0 && 1 > a > 0 && 1 > b > 0 && c > 0 && n > 0, Solve[(A
> n^a)^b/n == c, n]]
> Solve::nsmet: This system cannot be solved with the methods available
> to Solve. >>
> Is there a way for Mathematica to solve these equations?
> Many thanks,
> Mathieu

  • Prev by Date: Delayed symbol resolution
  • Next by Date: Re: {Keydown,"c"} event in graphics
  • Previous by thread: Solving simple equations
  • Next by thread: Re: Solving simple equations