1
$\begingroup$

I need to find a sensible upper limit for a part of an algorithm in a program I am writing. I have boiled it down to this.

Given $a$, $b$ and $c$, find $x$ in $a^{x-1}b < c < a^{x}b$.

But I have no idea how to approach it.

4 Answers 4

1

Take $\ln$ of each term: $(x-1)\ln a+\ln b<\ln c

4

Assuming $a$, $b$, and $c$ are positive throughout:

Dividing through by $b$, you get $$a^{x-1} \lt \frac{c}{b}\lt a^x.$$

Taking logarithms, we get $$(x-1)\ln(a) \lt \ln(c)-\ln(b) \lt x\ln(a)$$ If $a\gt 1$, then dividing through by $\ln (a)$ gives $$x-1 \lt \frac{\ln c-\ln b}{\ln a} \lt x$$ and any value of $x$ that satisfies this condition will satisfy your inequality.

In particular, $\displaystyle x \lt \frac{\ln c + \ln a - \ln b}{\ln a}$ (though not all values of $x$ that satisfy this inequality will satisfy both inequalities you have).

If $0\lt a\lt 1$, then $\ln(a)\lt 0$, so instead you would need $$x-1 \gt \frac{\ln c-\ln b}{\ln a}\gt x$$ which is impossible; so there are no solutions in this case.

(If $a=1$, then your inequalities become $b\lt c\lt b$, which are impossible to achieve.)

In summary: if $a\gt 1$, then any $x$ that satisfies $$x-1 \lt \frac{\ln c-\ln b}{\ln a}\lt x$$ works; if $0\lt a\leq 1$, then there is no solution.

3

Divide by b and then take log base a of both sides to get $$x-1 < \log_a (c/b) < x.$$ So, if you want an upper bound for $x$, I guess you use the left inequality to get $$x < \log_a(c/b) + 1.$$

3

Use logarithms. I assume $b,c>0$ and $a> 1$. (The conditions $b,c<0$ and $0

Then the right inequality becomes $$\log c< x\log a + \log b$$ and hence $$ \frac{\log c-\log b}{\log a}

Hope that helps,

  • 0
    Ok,it is fixed.2011-04-07