阅读 70

伽马函数递推公式推导,汤家凤伽马函数

前些日子,要制作项目的一个算法,需要使用贝塞尔函数(半整数阶,复数域),网上的代码一般都要收费。 干脆,我自己做了一个。 其中包含了伽马函数值的求法。 以下是我的想法和实现。 可以免费使用。

第一步:首先介绍伽马函数。

(1)实数域函数的定义:

(2)复域上的函数定义如下。

上述两个定义可以在百度百科上查到。

第二步:介绍设计理念

本实现的设计思路如下。

当时,使用以下极限对伽马函数进行了评价。

当时,伽马函数采用了递推。

当时、

当时,伽马函数采用了递推。

步骤3 :实现伽马函数。

# include cmath//gamma函数(求解bezier函数的辅助函数,任意阶)/x变量值(//setAbsRelaErr相对误差绝对值doublegamma(constdoublex,const double setabsetabss //递归确定伽马函数值if(x1.0 ) return(x-1 )伽马(x-1,setAbsRelaErr ); }elseif(x0.0 ) returngamma ) x1,setAbsRelaErr )/x; }double res=0.0; 双步骤=1.0; 双检查=0.0; int i=1; while(ABS((check-temp )/temp ) setAbsRelaErr ) ) {check=temp; TEMP*=I/(x-1I; I; }RES=temp*pow(I,x - 1 ); 返回结果; (步骤4 :验证

提示: cmath提供了双精度gamma (双精度)函数,可以直接求出gamma函数的值。 (我也试了一下才知道,啊,知识面太窄了。 )


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐