I'm having trouble at solving the problem of given three points $[(0, 0), (x_1, y_1), (x_2, y_2)]$, find the exponential curve with the form: $$ ab^{c}\left(b^{x}-1\right)+d=y $$

Particularly I wants to find the exponential function that pass through $[(0, 0), (1, 1), (10000, 10^{20})]$.

For making things simple I'm assuming we don't need variable $a$ and $d$, therefore the function form is reduced to: $$ b^{c}\left(b^{x}-1\right)=y $$

In this simplified form I found out that for $b, c \in \mathbb{R}$ and $b > 0$, the function always pass through $(0, 0)$.

Therefore in an attempt to solve other two points I'm converting the problem to system of equations and attempting to solve for $b$ and $c$:

$$ \log_{b}\left(\frac{1}{b^{c}}+1\right)=1 \\ \log_{b}\left(\frac{10^{20}}{b^{c}}+1\right)=10000 $$

However I don't know what to do from this point. Using numerical method I found these two approximate values:

$$ b \approx 1.0040628136448622694557585161802532530 \\ c \approx 1357.9387137452860840941643575180697378 $$

I could just use these two values since I don't really needs exact solutions for my case but I'm curious if there's a way to get exact value for $b$ and $c$?

If so is there's a generalized solution to find $b$ and $c$ for $ab^{c}\left(b^{x}-1\right)+d=y$ (assuming we know the value for $a$ and $d$ already and we may or may not need the function to pass through $(0, 0)$)?

I tried to search for ways to solve this but every time the result is for solving $ab^x$ and not what I really needed (or is it)?

For anyone wondering why I choose the example $[(0, 0), (1, 1), (10000, 10^{20})]$, it's for the damage formula as an attempt to balancing a prototype RPG game I'm currently making :)

  • $\begingroup$ d=0 (insert (0,0) in your equation) - it must be! not simpler. $\endgroup$
    – Moti
    May 19, 2021 at 1:13

1 Answer 1


This is not a solution, but here are some thoughts that might help.

As pointed out in the comments, the condition that the curve passes through the point $(0,0)$ forces your original equation to have $d=0$ as $$ ab^{c}\left(1-1\right)+d= 0 \implies d = 0 $$ For simplicity, I'll denote $ab^c = \xi$ as some constant. With this in mind, your question then becomes solving the following system of equations for $b$ and $\xi$ \begin{cases} \xi (b^{x_1} - 1) = y_1\\ \xi (b^{x_2} - 1) = y_2\\ \end{cases} If we divide one equation by the other we see that \begin{align*} \frac{b^{x_1} - 1}{b^{x_2} - 1} = \frac{y_1}{y_2}\implies (y_1)\color{green}{b}^{x_2} +( - y_2)\color{green}{b}^{x_1} +(y_2 - y_1) = 0 \tag{1} \end{align*} Notice that what you obtain is a "polynomial" in terms of $b$, but since in the most general cases, the $x_i$'s and $y_i$'s could be any real number, analytically finding the zeros of $(1)$ is, in general, not possible. In your case, we would want to find the zeros of $$ b^{\left(10^4\right)} - 10^{20}b + \left(10^{20} -1\right) \tag{2} $$ It's easy to note that $b=1$ is a root (which in our case we would ignore since $1^x = 1, \ \forall x\in \mathbb{R}$), and by Descarte's rule of signs we can see that there are no negative roots. So since we know there's at least one positive root at $b=1$, we can again conclude by Descarte's rule of signs that $(2)$ has only $2$ real roots and they're both positive roots, although I think your best shot at finding the other solution is just to use computational methods as you already tried.

Lastly, once you've found a value for $b$ you can easily solve for $\xi$ by $$ \xi = \frac{y_1}{b^{x_1} - 1} $$ since at this point, the R.H.S should only be composed of known quantities.

  • 1
    $\begingroup$ Seems like Wolfram Alpha did try numerical method too: bit.ly/2Ro6bCW, and the result seems to be $b \approx 1.004062813160190827153906957601958315461802426$. Seems like for now exact solution is really impossible. Oh well. $\endgroup$
    – Trung0246
    May 19, 2021 at 7:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.