2

I have this expression:

Gamma[n - 0.691 + 2.35 I] Gamma[n - 0.691 - 2.35 I]

which returns real values for all $n$. However, neither Simplify nor FullSimplify can reduce it to a form without involving $i$. Is there a way to force these commands to do a better job?

  • Welcome to Mathematica StackExchange! What exactly do you want as a final formula? If you are bothered by + 0. I in the result, then use Chop, for example: Gamma[n - 0.691 + 2.35 I] Gamma[n - 0.691 - 2.35 I] /. n -> 3 // Chop – Domen Mar 16 '23 at 16:40
  • 1
    "Is there a way to force these commands to do a better job?" -- This seems to assume there is a better result that they fail to produce. What is the result you expect? Or identity that they fail to apply? – Michael E2 Mar 17 '23 at 11:37
  • If n being real is a safe assumption, perhaps use Re[Gamma[n - 0.691 + 2.35 I] Gamma[n - 0.691 - 2.35 I]]. – Michael E2 Mar 17 '23 at 11:40
  • Maybe this little helps: $$\Gamma (n-i x) \Gamma (n+i x)=\frac{\Gamma (n)^2}{\prod _{k=1}^{\infty } \left(1+\frac{x^2}{(n-1+k)^2}\right)}$$ – Mariusz Iwaniuk Mar 18 '23 at 13:38

2 Answers2

2

Using the fact that $\overline{\Gamma(x)}=\Gamma(\overline{x})$, you can rewrite your expression as

Abs[Gamma[n - 0.691 + 2.35 I]]^2

which is manifestly real (even though it still contains an I). Honestly, I would be very surprised if you found a useful expression without any I, so this might be the best you can do.

  • Do you happen to know how to achieve this in Mathematica? FullSimplify[Gamma[z] Gamma[Conjugate[z]] == Abs[Gamma[z]]^2] does return True, yet FullSimplify[Gamma[z] Gamma[Conjugate[z]]] doesn't give the simpler form (which has smaller LeafCount). – Domen Mar 17 '23 at 12:32
  • @Domen unfortunately I don't... So far, I have had very limited success when trying to get Mathematica to simplify expressions containing Conjugate - it knows the relevant relations if you ask it directly (as you did), but it never seems to use that knowledge to simplify anything – Lukas Lang Mar 17 '23 at 13:00
0

Check to see that the imaginary part is so small that you are "sure" it is zero. If so return just the real part:

\[Epsilon] = 10^-10;
g[n_] := Gamma[n - 0.691 + 2.35 I] Gamma[n - 0.691 - 2.35 I]
h[n_] := If[Im[g[n]] < \[Epsilon], Re[g[n]], g[n]]

g[55.5] returns 1.04586*10^142 + 0. I

h[55.5] returns 1.04586*10^142

mjw
  • 8,647
  • 1
  • 8
  • 23