Is there a way to force Mathematica to use its Built-in functions instead basic functions?
For instance, the Hypergeometric1F1[a,b,x] function has a exponential form when its firsts parameters are integers. Mathematica replace for the exponential form automatically. For example,
Hypergeometric1F1[1,2,x]
the Hypergeometric1F1[1,2,x] is transformed in (-1 + E^x)/x. It is a problem if you want to evaluate numerically for x near to 0, because the exponential form has round-off errors.
One way to avoid this problem is using delayed definitions, which evaluates the built-in functions before its replacement. But it is not enough if you want to use this functions in different operations, like differentiating, before evaluate it.
f[x_]:=Hypergeometric[1,2,x]
g[x_]=Hypergeometric[1,2,x]
The map f[x] will use the Build-in function in Mathematica, but g[x] will not. But if you differentiate both functions, you'll get the exponential form:
D[f[x],x]
D[g[x],x]
The result will be
-((-1 + E^x)/x^2) + E^x/x
Instead of
(1/2)*Hypergeometric1F1[2, 3, x]
I want to force Mathematica use its Hypergeometric Build-in function, but I don't know how.
![Hypergeometric1F1[1,2,x] -> (-1 + E^x)/x](../../images/5bf9a2714eec8e1b44ba9afc7e357946.webp)
LogLogPlot[Hypergeometric1F1[1, 2, x], {x, 10^(-15), 10^(-5)}], it plots just fine. – JimB May 25 '16 at 15:58WorkingPrecisionresult in values around 2.718 rather than 1.0 ? – JimB May 25 '16 at 18:04LogLogPlothas attributeHoldAllso theHypergeometric1F1does not get simplified prior to its numerical evaluation. The OP's plot command is equivalent toLogLogPlot[{Evaluate[Hypergeometric1F1[1, 2, x]], Hypergeometric1F1[1, 2, x]}, {x, 10^(-15), 10^(-5)}]– Bob Hanlon May 25 '16 at 19:26WorkingPrecsionissue with log scales is a known bug : http://mathematica.stackexchange.com/q/15628/2079 . I think that's unrelated to this particular question though. – george2079 May 25 '16 at 21:55WorkingPrecisionis invoked which should more correctly be around 1.0 (approximatelyLog[2.718]). – JimB May 25 '16 at 22:28D[Inactive[Hypergeometric1F1][a, b, x], x]doesn't quite work. – J. M.'s missing motivation May 31 '16 at 13:44