1 | initial version |

Well...

```
sage: b.solve(x)[0].log().log_expand().solve(x)
[x == 1/2*(log(3) + 4*log(2) - log(4/5))/(log(3) - log(2))]
```

`<Swing>`

"Who could ask for anything more ?"`</Swing>`

Maybe looking for *other* solutions ? (Hint, hint...)

2 | No.2 Revision |

Well...

```
sage: b.solve(x)[0].log().log_expand().solve(x)
[x == 1/2*(log(3) + 4*log(2) - log(4/5))/(log(3) - log(2))]
```

`<Swing>`

"Who could ask for anything more ?"`</Swing>`

Maybe looking for *other* solutions ? (Hint, hint...)

**EDIT :** Further hint : the logarithm is a miltivalued fincion in the complex field (i. e. not a function strictly speaking).

3 | No.3 Revision |

Well...

```
sage: b.solve(x)[0].log().log_expand().solve(x)
[x == 1/2*(log(3) + 4*log(2) - log(4/5))/(log(3) - log(2))]
```

`<Swing>`

"Who could ask for anything more ?"`</Swing>`

Maybe looking for *other* solutions ? (Hint, hint...)

**EDIT :** Further hint : the logarithm is a ~~miltivalued fincion ~~"multivalued function" in the complex field (i. e. not a function strictly ~~speaking).~~speaking). Any time you take a log, you introduce further, possibly spurious, solutions...

4 | No.4 Revision |

Well...

```
sage: b.solve(x)[0].log().log_expand().solve(x)
[x == 1/2*(log(3) + 4*log(2) - log(4/5))/(log(3) - log(2))]
```

`<Swing>`

"Who could ask for anything more ?"`</Swing>`

Maybe looking for *other* solutions ? (Hint, hint...)

**EDIT :** Further hint : the logarithm is a "multivalued function" in the complex field (i. e. not a function strictly speaking). Any time you take a log, you introduce further, possibly spurious, solutions...

**EDIT 2:** Full solution, since no one seemed to see the problem :

Original problem:

```
,----
| b=4*3^(2*x-1)==5*4^(x+2)
`----
```

if the members of this equations are equal, so do their logs. So we might try to solve :

```
,----
| Lb=b.log().expand_log()
| Lb
`----
(2*x - 1)*log(3) + 2*log(2) == 2*(x + 2)*log(2) + log(5)
```

But the converse *is not true !*. More specifically :

```
,----
| z, z_1, z_2=var("z, z_1, z_2", domain="integer")
| (e^(x+2*I*pi*z)).maxima_methods().exponentialize()
`----
e^x
```

Therefore, we have to consider the solutions of :

```
,----
| Lb2=(Lb.lhs()+2*I*pi*z_1==Lb.rhs()+2*I*pi*z_2)
| Lb2
`----
2*I*pi*z_1 + (2*x - 1)*log(3) + 2*log(2) == 2*I*pi*z_2 + 2*(x + 2)*log(2) + log(5)
```

for any integer values of `z_1`

and `z_2`

. The solutions are :

```
,----
| Sol=Lb2.solve(x, to_poly_solve=True)
| Sol
`----
[x == 1/2*(-2*I*pi*z_1 + 2*I*pi*z_2 + log(5) + log(3) + 2*log(2))/(log(3) - log(2))]
```

i. e. $$\left[x = \frac{-2 i \pi z_{1} + 2 i \pi z_{2} + \log\left(5\right) + \log\left(3\right) + 2 \log\left(2\right)}{2 {\left(\log\left(3\right) - \log\left(2\right)\right)}}\right]$$

which is unique for any difference $z=z_1-z_2$.

Checking these solutions is not as direct as one could wish. But one can check that the ratio of the two members is one :

```
,----
| (b.rhs()/b.lhs()).subs(Sol).log().log_expand().expand().factor().exp()
`----
1
```

One can note that the non-real roots of this equation are somehow missed
by Sage (and Maxima). This is also true for `giac`

and `sympy`

. But
Mathematica returns them:

```
,----
| mathematica.Reduce(b,x)
`----
Element[C[1], Integers] && x == -((2*I)*Pi*C[1] + 2*Log[2] + Log[3] + Log[5])/ (2*(Log[2] - Log[3]))
```

i. e. $$c_1\in \mathbb{Z}\land x=-\frac{2 i \pi c_1+\log (5)+\log (3)+2 \log (2)}{2 (\log (2)-\log (3))}$$

HTH,

Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.