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$
2
  • 3
    $\begingroup$ For your example you can also use FunctionExpand[Hypergeometric0F1[1, -x^2]]. $\endgroup$ Feb 27, 2015 at 21:15
  • $\begingroup$ The second question is possibly a duplicate of: (4281) $\endgroup$
    – Mr.Wizard
    Feb 28, 2015 at 18:53

1 Answer 1

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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.