[摘记]数值方法05——特殊函数
注:以下来自《C++数值算法一书》,仅对章节内容做摘要,为的是给自己扫盲,不涉及算法。
特殊函数其实是指一些常用的函数,它们通常有自己的软件包,本章的目的是为了理解它们的内部运行情况。
1. 伽马函数、B函数、阶乘、二项式系数
思想:伽马函数满足递推式Γ(z+1)=zΓ(z)。如果z是整数那么这就是一个阶乘函数的变体。计算伽马函数的数值方法有很多,但都不如Lanczos导出的近似公式清晰。而计算lnΓ(z)比Γ(z)更好,不容易溢出。阶乘也容易溢出,对于小数字的阶乘,最好用查表法,稍大一些的用伽马公式计算。求解Beta函数和二项式系数是根据lnΓ(z)推导的。
2. 不完全伽马函数、误差函数、χ2概率函数、累积泊松函数
思想:不完全伽马函数P(a,x)它的互补Q(a,x)=1-P(a,x)也是不完全伽马函数。P(a,x)可以由伽马函数求得,而Q(a,x)可以进行连分式展开;误差函数及其互补形式是不完全伽马函数的特例,因此可以用之前的方法加上一些它本身的特性,很方便地求取。累积泊松概率函数与都与不完全伽马函数有简单的关系,可以很容易推导出来。
3. 指数积分
思想:指数函数是不完全伽马函数的特例,可以写成包含连分式的形式。对于x>=1的情况,连分式才可以很快收敛;对于0<x<=1,可以用级数方法去求。
4. 不完全B函数、学生分布、F分布、累积二项式分布
思想:不完全B函数用连分式表示更为有效,学生分布、F分布和累积二项式分布概率函数可以用不完全B函数推导出来。
5. 整数阶贝塞尔函数
思想:贝塞尔函数满足递推关系:
Jn+1(x)=(2n/x) Jn(x)-Jn-1(x)
Yn+1(x)=(2n/x) Yn(x)-Yn-1(x)
计算整数阶贝塞尔函数的实用策略分成两步:第一步,如何计算J0, J1, Y0和Y1;第二步,如何使用稳定递推关系找到其他J和Y。
6. 球面调和函数
思想:数学上可以将调和函数与连带勒让德多项式联系起来。求解连带勒让德多项式的方法有很多,它满足很多递推关系。
7. Fresnel积分、余弦和正弦积分
思想:Fresnel积分当x较小时,对任意的精度要求,计算函数值最方便的方法是幂级函数;x较大时,则用连分式。余弦和正弦积分可以用幂级数和复连分式相结合的方法求函数值。
8. Dwason积分
略
9. 椭圆积分和雅可比椭圆函数
略
10. 超几何函数
思想:通过复平面上的直线积分求此函数值的方法。
这章太长了,而且我完全不知道在讲什么+_+
本文原创,转载请注明出处