1
$\begingroup$

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?

$\endgroup$
  • 3
    $\begingroup$ For your example you can also use FunctionExpand[Hypergeometric0F1[1, -x^2]]. $\endgroup$ – b.gates.you.know.what Feb 27 '15 at 21:15
  • $\begingroup$ The second question is possibly a duplicate of: (4281) $\endgroup$ – Mr.Wizard Feb 28 '15 at 18:53
1
$\begingroup$

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.

$\endgroup$
  • $\begingroup$ Sorry, I did not understand this answer. How does this help? What of should I be wary? $\endgroup$ – Jerry Guern Feb 28 '15 at 6:53
  • $\begingroup$ @JerryGuern Please see edit to my Answer. $\endgroup$ – bbgodfrey Feb 28 '15 at 11:49
  • 1
    $\begingroup$ There is no need to introduce Function here. Simply $Post = FunctionExpand will do! $\endgroup$ – Mr.Wizard Feb 28 '15 at 18:47

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.