Inverse of a gamma function

118 Views Asked by At

Assuming I have some relatively simple equation: $$ \eta(\alpha) = \frac{\Gamma\left(\frac{3}{\alpha}\right) \Gamma\left(8-\frac{3}{\alpha}\right)}{\Gamma\left(8\right)}, $$ is there any simple way to rearrange this and to find what $\alpha$ is, given a known value of $\eta$?

Please detail the steps for me, if this is possible, as I have several similar functions I need to do this with.

Alternatively, if there is a known numerical method to do this, rather than just performing a messy fit, that is also viable. I haven't found a function in MATLAB or Python that could do this, so I assume I'm missing something conceptually here.

Cheers.

1

There are 1 best solutions below

1
On BEST ANSWER

With Matlab you can use fzero to efficiently invert this function numerically to obtain $\alpha$ as a function of $\eta$, provided that you specify bounds where it is monotonic:

f = @(alp, eta)gamma(3./alp).*gamma(8-3./alp)/gamma(8)-eta;
eta = 0.0081;
alp = fzero(@(alp)f(alp, eta), [0.75 4])

This returns $0.8992...$.

Simple plotting of $\eta(\alpha)$ over $2 \le \alpha \le 4$ in Matlab will show you that $\eta$ ranges from $0.0506...$ to $0.2809...$ for that bound.