The following warnings occurred:
Warning [2] count(): Parameter must be an array or an object that implements Countable - Line: 795 - File: showthread.php PHP 7.4.33 (FreeBSD)
File Line Function

 Gamma function, SinhIntegral, CoshIntegral
11-06-2022, 06:27 PM
Post: #1
 robmio Member Posts: 172 Joined: Jan 2020
Gamma function, SinhIntegral, CoshIntegral
Hello, I found that the HP PRIME "Gamma" function does not provide the same results as Wolfram's MATHEMATICA. For instance:
HP PRIME --> Gamma (4/5, -6) --> 294.845140024
MATHEMATICA --> Gamma [4/5, -6] --> 238.757-172.621*i.
For this reason I have written a program to calculate the Incomplete Gamma function, extending it for numeric values that do not work on the HP PRIME. The code has been named “Upper_Inc_Γ”, which needs two other small programs to work well. One program calculates the value of the integral of the hyperbolic sine (Shi (x)), while the other program calculates the value of the integral of the hyperbolic cosine (Chi (x)).

Shi(x) code:

Code:
 #cas // Shi(z) Sinh Integral z ∈ ℂ Shi(z):= BEGIN IF type(z)==DOM_IDENT OR type(z)==DOM_SYMBOLIC THEN RETURN 1/2*(Ei(z)-Ei(−z))+G_0; END; CASE IF ARG(z)==0 OR ARG(exact(z))==pi THEN  1/2*(Ei(z)-Ei(−z)) END; IF 0<ARG(z)<pi THEN 1/2*(Ei(z)- Ei(−z))-sqrt(-1)*pi/2 END; DEFAULT 1/2*(Ei(z)-Ei(−z))+sqrt(-1)*pi/2 END; END; #end

Chi(x) code:

Code:
 #cas // Chi(z) → Cosh Integral Chi(z):= BEGIN IF type(z)==DOM_IDENT OR type(z)==DOM_SYMBOLIC THEN RETURN (G_0+Ei(-z)+Ei(z))/2+G_1; ELSE IF type(approx(z))==DOM_INT OR type(approx(z))==DOM_FLOAT AND  SIGN(approx(z))==1 THEN  RETURN 1/2*Ei(-z)+1/2*Ei(z); ELSE IF type(approx(z))==DOM_INT OR type(approx(z))==DOM_FLOAT AND SIGN(approx(z))==-1 THEN RETURN sqrt(-1)*pi+1/2*Ei(-z)+1/2*Ei(z); ELSE IF type(approx(z))==DOM_COMPLEX AND SIGN(im(approx(z)))==1 THEN RETURN (sqrt(-1)*pi+Ei(-z)+Ei(z))/2; ELSE IF type(approx(z))==DOM_COMPLEX AND SIGN(im(approx(z)))==-1 THEN RETURN ((−sqrt(-1))*pi+Ei(-z)+Ei(z))/2; END; END; END; END; END; END; #end

Upper_Inc_Γ(n,x):
Code:
 #cas Upper_Inc_Γ(a,z):= BEGIN LOCAL funz, t, fnz; // fnz:=(1/(-a)!)*(Shi(z)-Chi(z)); CASE IF a==0 AND z==0 THEN RETURN "Error: a==0 & z==0" END; IF (type(a)==DOM_INT AND a>0) OR  type(a)==DOM_COMPLEX THEN RETURN -z^a*integrate(t^(a-1)*e^(-t*z),t ,0,1)+Gamma(a) END; IF (SIGN(z)==-1 AND type(a)==DOM_RAT)  AND (a>0 OR a<−1) THEN RETURN (Gamma(a,z)-Gamma(a))*(−1)^(a -1)+Gamma(a) END; IF type(a)==DOM_INT AND a≤0 THEN RETURN (−1)^(-a)*((sum((k-1)!/( (-a)!*(-z)^k),k,1,-a))*exp(-z)+ (1/(-a)!)*(Shi(z)-Chi(z))) END; IF (SIGN(z)==-1 AND type(a)==DOM_RAT)  AND (a<0 AND a>−1) THEN RETURN (−z^(a)*exp(−z)+( (Gamma(a+1,z)-Gamma(a+1))*(−1)^(a+1 -1)+Gamma(a+1)))/a END; DEFAULT RETURN Gamma(a,z); END; END; #end

It would be nice if xCas implemented the Gamma function - what do you think?

Best regards, Roberto.
 « Next Oldest | Next Newest »

 Messages In This Thread Gamma function, SinhIntegral, CoshIntegral - robmio - 11-06-2022 06:27 PM RE: Gamma function, SinhIntegral, CoshIntegral - lrdheat - 11-06-2022, 07:03 PM RE: Gamma function, SinhIntegral, CoshIntegral - robmio - 11-06-2022, 07:24 PM RE: Gamma function, SinhIntegral, CoshIntegral - lrdheat - 11-06-2022, 08:45 PM RE: Gamma function, SinhIntegral, CoshIntegral - Albert Chan - 11-07-2022, 02:31 PM RE: Gamma function, SinhIntegral, CoshIntegral - robmio - 11-07-2022, 03:34 PM RE: Gamma function, SinhIntegral, CoshIntegral - robmio - 11-08-2022, 11:49 AM

User(s) browsing this thread: 1 Guest(s)