# Working with Special Functions

automatic evaluation | exact results for specific arguments |

N[expr,n] | numerical approximations to any precision |

D[expr,x] | exact results for derivatives |

N[D[expr,x]] | numerical approximations to derivatives |

Series[expr,{x,x_{0},n}] | series expansions |

Integrate[expr,x] | exact results for integrals |

NIntegrate[expr,x] | numerical approximations to integrals |

FindRoot[expr==0,{x,x_{0}}] | numerical approximations to roots |

Some common operations on special functions.

Most special functions have simpler forms when given certain specific arguments. *Mathematica* will automatically simplify special functions in such cases.

*Mathematica* automatically writes this in terms of standard mathematical constants.

Out[1]= | |

Here again

*Mathematica* reduces a special case of the Airy function to an expression involving gamma functions.

Out[2]= | |

For most choices of arguments, no exact reductions of special functions are possible. But in such cases, *Mathematica* allows you to find numerical approximations to any degree of precision. The algorithms that are built into *Mathematica* cover essentially all values of parameters—real and complex—for which the special functions are defined.

There is no exact result known here.

Out[3]= | |

This gives a numerical approximation to 40 digits of precision.

Out[4]= | |

The result here is a huge complex number, but

*Mathematica* can still find it.

Out[5]= | |

Most special functions have derivatives that can be expressed in terms of elementary functions or other special functions. But even in cases where this is not so, you can still use N to find numerical approximations to derivatives.

This derivative comes out in terms of elementary functions.

Out[6]= | |

This evaluates the derivative of the gamma function at the point 3.

Out[7]= | |

There is no exact formula for this derivative of the zeta function.

Out[8]= | |

Applying

N gives a numerical approximation.

Out[9]= | |

*Mathematica* incorporates a vast amount of knowledge about special functions—including essentially all the results that have been derived over the years. You access this knowledge whenever you do operations on special functions in *Mathematica*.

Here is a series expansion for a Fresnel function.

Out[10]= | |

*Mathematica* knows how to do a vast range of integrals involving special functions.

Out[11]= | |

One feature of working with special functions is that there are a large number of relations between different functions, and these relations can often be used in simplifying expressions.

FullSimplify[expr] | try to simplify expr using a range of transformation rules |

Simplifying expressions involving special functions.

This uses the reflection formula for the gamma function.

Out[12]= | |

This makes use of a representation for Chebyshev polynomials.

Out[13]= | |

The Airy functions are related to Bessel functions.

Out[14]= | |

Manipulating expressions involving special functions.

This expands the Gauss hypergeometric function into simpler functions.

Out[15]= | |

Here is an example involving Bessel functions.

Out[16]= | |

In this case the final result does not even involve

PolyGamma.

Out[17]= | |

This finds an expression for a derivative of the Hurwitz zeta function.

Out[18]= | |