[Date Index]
[Thread Index]
[Author Index]
Enhancements to special functions in Version 5.2
*To*: mathgroup at smc.vnet.net
*Subject*: [mg58709] Enhancements to special functions in Version 5.2
*From*: Maxim <ab_def at prontomail.com>
*Date*: Fri, 15 Jul 2005 03:02:27 -0400 (EDT)
*Sender*: owner-wri-mathgroup at wolfram.com
Here are three expressions which are equivalent for x>0:
In[1]:=
expr1 = MeijerG[{{0, 1}, {}}, {{1/2}, {}}, x];
expr2 = -Sqrt[Pi]*E^(1/(2*x))*
(BesselK[0, 1/(2*x)] - BesselK[1, 1/(2*x)])/(2*x);
expr3 = Pi*HypergeometricU[3/2, 2, 1/x]/(2*x);
One problem is that we still cannot evaluate expr1 numerically near x = 0.
Mathematica 5.1 just returned results with zero precision, no matter how
high the value of $MaxExtraPrecision was set. Mathematica 5.2 gives an
incorrect result:
In[4]:=
N[expr1 /. x -> 1/100, 20]
Out[4]=
4.3516430954922696409302990656967`20.*^22
(all digits are incorrect). If we increase the value of $MinPrecision,
then Mathematica will be able to compute several significant digits, but
still the answer will be wrong in the sense of the Mathematica
significance arithmetic model: with $MinPrecision = 50 the precision of
the answer will be 50, but only about 6 digits will be correct. I suppose
this could be called an improvement.
The series expansions about x = 0:
In[5]:=
Series[expr1, {x, 0, 1}]
Series[expr2, {x, 0, 1}] // Simplify[#, x > 0]&
Series[expr3, {x, 0, 1}] // Simplify[#, x > 0]&
Out[5]=
MeijerG[{{0, 1}, {}}, {{1/2}, {}}, 0] + Derivative[0, 0, 1][MeijerG][{{0,
1}, {}}, {{1/2}, {}}, 0]*x + O[x]^2
Out[6]=
Pi*Sqrt[x]/2 + O[x]^1
Out[7]=
Pi*Sqrt[x]/2 + O[x]^1
Out[5] is incorrect because the leading term should be O(sqrt(x)) for
positive x.
The series expansions about x = Infinity:
In[8]:=
Series[expr1, {x, Infinity, 1}]
Series[expr2, {x, Infinity, 1}]
Series[expr3, {x, Infinity, 1}]
Out[8]=
MeijerG[{{0, 1}, {}}, {{1/2}, {}}, x]
Out[9]=
Sqrt[Pi] + Sqrt[Pi]*(1 + EulerGamma - Log[4] + Log[1/x])/(2*x) + O[x,
Infinity]^2
Out[10]=
Sqrt[Pi] + Sqrt[Pi]*(-1 + 2*EulerGamma + PolyGamma[0, 3/2])/(2*x) + O[x,
Infinity]^2
Now Out[10] is incorrect, because the Log[x]/x term is missing.
Overall, obtaining asymptotic expansions about singular points is still
hopeless: such examples can probably be constructed for any of the higher
transcendental functions in Mathematica, e.g., Series[StruveL[1, Sqrt[z]],
{z, Infinity, 1}], which goes into infinite recursion and returns a
meaningless result, or Series[HypergeometricPFQ[{1/2, 1/2, 1}, {3/4, 5/4},
1/a], {a, 0, 1}], which returns ComplexInfinity + HypergeometricPFQ[{1/2,
1/2, 1}, {3/4, 5/4}, ComplexInfinity].
Integration:
In[11]:=
Integrate[(expr1 - Sqrt[Pi])/x, {x, 1, Infinity}]
Integrate[(expr2 - Sqrt[Pi])/x, {x, 1, Infinity}]
Integrate[(expr3 - Sqrt[Pi])/x, {x, 1, Infinity}]
Out[11]=
-Sqrt[E*Pi]*BesselK[0, 1/2]
Out[12]=
-Infinity
Integrate::gener : Unable to check convergence.
Out[13]=
-EulerGamma*Sqrt[Pi] - Sqrt[E*Pi]*BesselK[0, 1/2] + Sqrt[Pi]*Log[4]
Out[11] and Out[12] are both incorrect. Taking into account that I picked
the initial MeijerG function and the two identities for it pretty much at
random, all this seems rather disappointing.
The identities expr1 == expr2 == expr3 are the formulas 07.34.03.0393.01
and 07.34.03.0392.01 from functions.wolfram.com. The domain of validity
for the second one is given as !IntervalMemberQ[Interval[{-1, 0}], z],
which seems to be incorrect: if z approaches a negative real value from
above, then 1/z approaches the real line from below, so expr1 is
continuous from above and expr3 isn't. Hence, their values on the branch
cut of HypergeometricU cannot be the same.
Maxim Rytin
m.r at inbox.ru
Prev by Date:
**Re: Light and surface colors**
Next by Date:
**Re: Light and surface colors**
Previous by thread:
**Re: Comparison of Mathematica on Various Computers**
Next by thread:
**Re: How can get the Path of current Notebook ?**
| |