1

MMa gave me a complicated result involving Hypergeometric0F1's. It was much less complicated after I discovered this identity:

Hypergeometric0F1[1, -x^2] = BesselJ[0, 2 x]

1) Is there a way to get MMa to validate relationships between functions, for example if I wasn't sure the identity above was true?

FullSimplify[Hypergeometric0F1[1, -x^2] - BesselJ[0, 2 x]] 

does return 0, so that worked for the example, but FullSimplify failing to simplify something to 0 is not a solid proof.

2) Is there a way to tell MMa to convert (for example) all the Hypergeometric functions into whatever Bessel function form it can?

J. M.'s missing motivation
  • 124,525
  • 11
  • 401
  • 574
Jerry Guern
  • 4,602
  • 18
  • 47

1 Answers1

1

In response to your second question, "Is there a way to tell MMa to convert (for example) all the Hypergeometric functions into whatever Bessel function form it can?", execute

$Post = FunctionExpand[#] &

at the beginning of a Notebook to cause FunctionExpand to be applied to the output of each Cell after it is executed. However, be aware that $Post = FunctionExpand[#] & will do other things that you may not have in mind, such as converting Log[Sqrt[1 - x^2]] to (Log[1 - x] + Log[1 + x])/2. Also, be aware that $Post = FunctionExpand[#] & in one notebook may affect evaluations in other notebooks sharing the same Kernel.

You also can use

$Post = FullSimplify[#] &

which automatically calls FunctionExpand and does other simplifications besides. In this case even greater wariness may be warranted.

Addenda

Mr.Wizard kindly pointed out in a Comment that $Post = FunctionExpand has the same effect as $Post = FunctionExpand[#] &. (Thanks!)

If the goal is to replace only Hypergeometric0F1 with simpler expressions when possible without changing other functions, then

$Post = (# /. Hypergeometric0F1[z1_, z2_] :> FunctionExpand[Hypergeometric0F1[z1, z2]]) &

can be used.

bbgodfrey
  • 61,439
  • 17
  • 89
  • 156