The function Series
requires that the expansion order is an integer, i.e. for the input
Series[x^(1/4)+x^(1/3)+x^(1/2),{x,0,1/3}]
it will give the warning
Series::serlim: "Series order specification 1/3 is not a machine-sized integer."
and return the Series
unevaluated.
It seems to me that this is a well defined and easily solvable problem though. In fact, we can write our own series function as follows,
mySeries[expr_, {x_, x0_, n_?IntegerQ}] := Series[expr, {x, x0, n}]
mySeries[expr_, {x_, x0_, n_}] := Quiet[
Series[ expr /. x -> x^Denominator[n], {x, x0, Numerator[n]}] /.
SeriesData[y_, y0_, list_, nmin_, nmax_, nfrac_] :>
SeriesData[y, y0, list, nmin, nmax, Denominator[n] nfrac], SeriesData::sdatc]
Now,
mySeries[x^(1/4)+x^(1/3)+x^(1/2),{x,0,1/3}]
gives
SeriesData[x, 0, {1, 1}, 3, 6, 12]
(This is x^(1/4)+x^(1/3)+O(x^(1/2))
), as expected.
Why is this not the standard behaviour of Series
, is there something subtle I'm missing, or is this a bug?
Also note that SeriesCoefficient
works perfectly fine with rational powers.
Series
might give a result with fractional powers but I believe it does not like to see them in the input spec. $\endgroup$series(x^(1/4)+x^(1/3)+x^(1/2), x=0,1/3 );
givesError, invalid input: series expects its 3rd argument, n, to be of type {infinity, nonnegint}, but received 1/3
$\endgroup$