不完全gamma函数?matlab中gammainc(不完全伽马函数)是代表什么运算
大家好,感谢邀请,今天来为大家分享一下不完全gamma函数的问题,以及和matlab中gammainc(不完全伽马函数)是代表什么运算的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!
在Matlab中,关于gammainc 函数(不完全Gamma函数)
在Matlab中,关于gammainc函数(不完全Gamma函数):
For any a>=0, gammainc(x,a) approaches 1 as x approaches infinity. For small x and a, gammainc(x,a) is approximately equal to x^a, so gammainc(0,0)= 1.
伽马函数是特殊函数的一种,有积分的定义式。n的伽马函数值就是n-1的阶乘值(当n为正整数时),而伽马函数对除奇异点外一切复数均有定义。
MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。
什么是不完全伽马分布函数
函数:PluralGammaLower(s,x)
s:一个复数变量
x:一个复数变量
说明函数成功返回对应的向下的不完全伽马函数值
原理:
1、这里求解的是向下的不完全伽马函数,具体的参看
2、本代码求解的不完全伽马函数有如下形式的级数展开形式
2.1、很明显,我们可以设
A[2*n+1]=s+2*n+1+z*(n+1)/{s+2*n+2-(s+n+1)*z/A[2*n+3]},其中n=0,1,2,……
则我们求解的函数=z^s*e^(-z)/{s-sz/A[1]}
2.2、
一般地,当n趋近于∞时,A[2*n+1]≈A[2*n+3],在这里我们截取前n项,令x=A[2*n+1]=A[2*n+3],带入上面2.1式我们有如下的方程
C*x^2-(A*c+D+B)*x+A*D=0
其中
A=s+2*n+1
B=z*(n+1)
C=s+2*n+2
D=(s+n+1)*z
那么我们很容易得到两个x的解,一般地这里我们选取x离C近的解作为我们实际的解
2.3、令A[2*n+3]=x,然后回代入2.1式算出A[1],进而算得我们的不完全伽马函数
2.4、这里需要注意,上面的算法只能在s为非负整数时才能使用.
引用:
PluralMul:复数乘法
PluralSqrt:复数开方
PluralDiv:复数除法
PluralPow:复数求次方
PluralExp:复数求指数次方
例子:
a= i
c=PluralGammaLower(a,a)
c=-0.140125009678925- 0.281466640628561i
源代码:
Public Function PluralGammaLower(ByVal s As Plural, ByVal x As Plural) As Plural
'不完全Gamma函数的级数展开求解方法
'参考http://en.wikipedia.org/wiki/Incomplete_gamma_function
Dim nz, sz, sn, ret, A, B, C, D, An As New Plural
Dim n As Integer= 100
A.Real= s.Real+ n+ n+ 1
A.Imag= s.Imag
C.Real= A.Real+ 1
C.Imag= A.Imag
nz.Real= A.Real- n
nz.Imag= A.Imag
D= PluralMul(nz, x)
B.Real= x.Real*(n+ 1)
B.Imag= x.Imag*(n+ 1)
nz= PluralMul(A, C)
sz.Real= nz.Real+ D.Real+ B.Real
sz.Imag= nz.Imag+ D.Imag+ B.Imag
sn= PluralMul(sz, sz)
ret= PluralMul(nz, D)
ret.Real+= ret.Real
ret.Imag+= ret.Imag
ret.Real+= ret.Real
ret.Imag+= ret.Imag
sn.Real-= ret.Real
sn.Imag-= ret.Imag
ret= PluralSqrt(sn)
A.Real= sz.Real+ ret.Real
A.Imag= sz.Imag+ ret.Imag
B.Real= sz.Real- ret.Real
B.Imag= sz.Imag- ret.Imag
C.Real+= C.Real
C.Imag+= C.Imag
sz= PluralDiv(A, C)
sn= PluralDiv(B, C)
A.Real= s.Real+ n+ n+ 1
B.Real=(A.Real- sz.Real) ^ 2+(A.Imag- sz.Imag) ^ 2
C.Real=(A.Real- sn.Real) ^ 2+(A.Imag- sn.Imag) ^ 2
If B.Real< C.Real Then
An.Real= sz.Real
An.Imag= sz.Imag
Else
An.Real= sn.Real
An.Imag= sn.Imag
End If
B.Real= x.Real* n
B.Imag= x.Imag* n
n-= 1
A.Real= s.Real+ n+ n+ 1
A.Imag= s.Imag
C.Real= A.Real+ 1
C.Imag= A.Imag
D.Real= A.Real- n
D.Imag= A.Imag
While n>= 0
sn= PluralMul(D, x)
sz= PluralDiv(sn, An)
ret.Real= C.Real- sz.Real
ret.Imag= C.Imag- sz.Imag
nz= PluralDiv(B, ret)
An.Real= A.Real+ nz.Real
An.Imag= A.Imag+ nz.Imag
A.Real-= 2
B.Real-= x.Real
B.Imag-= x.Imag
C.Real-= 2
D.Real-= 1
n-= 1
End While
A= PluralMul(s, x)
B= PluralDiv(A, An)
C.Real= s.Real- B.Real
C.Imag= s.Imag- B.Imag
A= PluralPow(x, s)
B= PluralExp(x)
D= PluralMul(B, C)
ret= PluralDiv(A, D)
Return ret
End Function
matlab中gammainc(不完全伽马函数)是代表什么运算
在Matlab中,关于gammainc函数(不完全Gamma函数):
1、For any a>=0, gammainc(x,a) approaches 1 as x approaches infinity. For small x and a, gammainc(x,a) is approximately equal to x^a, so gammainc(0,0)=
2、伽马函数是特殊函数的一种,有积分的定义式。n的伽马函数值就是n-1的阶乘值(当n为正整数时),而伽马函数对除奇异点外一切复数均有定义。
3、MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
4、MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
5、MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
6、MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。
非常感谢您的阅读!我们希望本文对于解决您关于不完全gamma函数和matlab中gammainc(不完全伽马函数)是代表什么运算的问题提供了一些有价值的信息。如果您还有其他疑问,我们将很乐意为您提供进一步的帮助。