Message Boards Message Boards

0
|
4099 Views
|
9 Replies
|
2 Total Likes
View groups...
Share
Share this post:

Series algorithm changed between Mathematica 11.0.0.0 and 11.1.0.0

Posted 7 years ago

The series algorithm appears to have changed in the latest Mathematica version.

Series[Exp[x]/Sqrt[x], {x, 0, 1}]

still yields a series expansion in O[x]^{1/2}

but

Series[Exp[1 - x]/Sqrt[1 - x], {x, 1, 1}]

now yields a series O[x-1] instead of O[x-1]^{1/2}, as it previously did. Is there some logic to this, or is this bug? If the latter, how does one go about reporting such a thing?

Thanks for your input.

9 Replies

Given that Taylor series are taught in first-year calculus courses, it seems to me that having a function to do them is a no-brainer.

POSTED BY: Frank Kampas

Do you have an actual, specific proposal? I've yet to see anything concrete, not even in answer to specific questions I raised. This is the sort of thing that typically gets removed by moderators.

POSTED BY: Daniel Lichtblau
Normal @ Series[(x - y)^2, {x, x0, 1}, {y, y0, 1}] // Expand

2 x x0 - x0^2 - 2 x y + 2 y y0 - y0^2

((x - y)^2 /. {x -> x0, 
     y -> y0}) + ((D[(x - y)^2, {{x, y}}]) /. {x -> x0, y -> y0}).{x -
      x0, y - y0} // Expand

2 x x0 - x0^2 - 2 x0 y - 2 x y0 + 2 x0 y0 + 2 y y0 - y0^2
POSTED BY: Frank Kampas

It would be nice if there were an option to Series so that it would give a correct Taylor series expansion when the expansion is done on more than one variable.

POSTED BY: Frank Kampas

(1) Multivariate series mean different things to different people. The iterated form supported makes perfect sense and works in a way that requires no departure from univariate.

(2) If what is wanted is a total degree series, the method to do this is fairly well known. It requires introduction of a new variable. I have to wonder how that would fit into the framework of Series? (Short answer: Quite poorly.)

(3) This would appear to be a case of hijacking a thread. It has naught to do with the Series changes that went into 11.1.

POSTED BY: Daniel Lichtblau

You're right. I'm talking about a feature that should have gone into Series when it was first introduced (or a separate function created), not the changes in the most recent version.

POSTED BY: Frank Kampas

This feature, does it have a specification beyond "implement multivariate series"? What might that spec be? For example what would be a sample input and output? What would be the restrictions on inputs? Holomorphic functions in some region? Something else? Would the result use order terms?

What I'm getting at is I don't see this as in any way a part of the current Series function. A TaylorPolynomial function might be useful. But it would be a different function. I see no way this could be construed as feature missing from Series.

Will such a function show up in a future release? I'm not sure. There is an ongoing project to extend multivariate capabilities in some areas related to this, so it would not surprise me. But I do not have definite knowledge one way or the other.

POSTED BY: Daniel Lichtblau

Yes this was by design. It might help to look at the input forms to see why it is useful.

the first example is a straightforward Puiseux series in sqrt(x).

InputForm[Series[Exp[x]/Sqrt[x], {x, 0, 1}]]                            

(* Out[3]//InputForm= SeriesData[x, 0, {1, 0, 1}, -1, 3, 2] *)

Translating from the origin to +1, would be:

InputForm[Series[Exp[x-1]/Sqrt[x-1], {x, 1, 1}]]                        

(* Out[4]//InputForm= SeriesData[x, 1, {1, 0, 1}, -1, 3, 2] *)

So we have the same series coefficients, we just shifted our base point.

The key point to realize is that fractional powers of (x-1) differ from fractional powers of(1-x). In not accounting for this, for a long timeSeries` did not behave well at branch points. The change below is part of several that were intended to address this deficiency.

InputForm[Series[Exp[1 - x]/Sqrt[1 - x], {x, 1, 1}]]                    

(* Out[5]//InputForm= SeriesData[x, 1, {1/Sqrt[1 - x], -(1/Sqrt[1 - x])}, 0, 2, 1] *)

This is a very different object. It has fractional powers inside the coefficients. While this is not so desirable it is vastly preferable to giving a result that would be just wrong in a nontrivial part of any neighborhood around the base point, which is what would result from pretending that Sqrt[1 - x] can be recast using Sqrt[x-1].

To get a "nicer" expansion one might restrict the domain to real x larger than 1, where such a rewrite can be done.

InputForm[Series[Exp[1 - x]/Sqrt[1 - x], {x, 1, 1}, Assumptions->1<x<1+ /1000]]                                                                         

(* Out[6]//InputForm= SeriesData[x, 1, {-I, 0, I}, -1, 3, 2] *)

I'm not sure if the order term is an issue of contention but I should state in any case that the attempt is to have the same "order" that would have shown up previously, provided we now account for coefficients that are "almost" fractional powers of x-basepoint, in particular, fractional powers of c*(x-basepoint) where c is some constant that is not positive and thus cannot blindly be pulled out of the radical (which was the error of the old ways...)

POSTED BY: Daniel Lichtblau

This also exhibits the same change:

Series[Exp[-x]/Sqrt[-x], {x, 0, 1}, Assumptions -> x \[Element] Reals]
(*  SeriesData[x, 0, {-(-x)^Rational[1, 2]/x, (-x)^Rational[1, 2]/x}, 0, 2, 1]  *)

The output in V11.0.0 is

(*  SeriesData[x, 0, {Complex[0, -1], 0, Complex[0, 1]}, -1, 3, 2]  *)

One advantage to the change is that expressions remain real, but I don't have an explanation for the order of the remainder/tail of the series.

You can report bugs etc. by going to the Help menu: Help > Give Feedback...

POSTED BY: Michael Rogers
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract