# How to reverse engineer a logarithmic equation

I am trying to reverse engineer the parameters of a human-designed logarithmic equation. Here are the facts:

• The equation is of the type a = x * ( y ^ b )

• a and b are known, x and y are unknown and need to be determined

• I have a table of values giving b as an exact value and a as the rounded integer result. For example, b might be 7 and a might be 68 where the 68 is a value rounded to the nearest integer. The number of values in the table is around 12-15 or so.

• x will be some number which is human selected, so it will be a relatively round number to +/- 0.05. So, for example, x might be 53 or 52.75, but it would not be 51.1938434.

• y is some positive rational value like "1.093534".

So, given the table of values of a and b and the facts above, how can I do an estimation to determine the most likely values of x and y?

You can determine the most likely values for $$\log x$$ and $$\log y$$ by linear regression since your relationship implies:
$$\log a = b.\log y + \log x$$
So run regression on $$b$$ as input and $$\log a$$ as output. The gradient will be $$\log y$$ and the intercept $$\log x$$