gusucode.com > symbolic工具箱matlab源码程序 > symbolic/hypergeom.m
function h = hypergeom(n,d,z) %HYPERGEOM Gauss' Hypergeometric function % HYPERGEOM(N, D, Z) is the generalized hypergeometric function F(N, D, Z), % also known as the Barnes extended hypergeometric function and denoted by % jFk where j = length(N) and k = length(D). For scalar a, b and c, % HYPERGEOM([a,b],c,z) is the Gauss hypergeometric function 2F1(a,b;c;z). % % The definition by a formal power series is % hypergeom(N,D,z) = sum(k=0:inf, (C(N,k)/C(D,k))*z^k/k!) where % C(V,k) = prod(i=1:length(V), gamma(V(i)+k)/gamma(V(i))) % Either of the first two arguments may be a vector providing the coefficient % parameters for a single function evaluation. If the third argument is a % vector, the function is evaluated pointwise. The result is numeric if all % the arguments are numeric and symbolic if any of the arguments is symbolic. % See Abramowitz and Stegun, Handbook of Mathematical Functions, chapter 15. % % Examples: % hypergeom([],[],'z') returns exp(z) % hypergeom(1,[],'z') returns -1/(-1+z) % hypergeom(1,2,'z') returns (exp(z)-1)/z % hypergeom([1,2],[2,3],'z') returns -2*(-exp(z)+1+z)/z^2 % hypergeom('a',[],'z') returns (1-z)^(-a) % hypergeom([],1,'-z^2/4') returns besselj(0,z) % hypergeom([-10, 10],1/2,'(1-z)/2') returns T(10,z) where % T(10,z) = expand(cos(10*acos(z))) is the 10-th Chebyshev polynomial. % % See also sym/hypergeom. % Copyright 1993-2013 The MathWorks, Inc. if ischar(z) h = hypergeom(n,d,sym(z)); else oldDigits = digits(16); cleanupObj = onCleanup(@() digits(oldDigits)); h = cast(hypergeom(n,d,sym(z)), superiorfloat(n,d,z)); end