#1956: implement multivariate truncated power series arithmetic
-------------------------------------------+--------------------------------
Reporter: was | Owner: pernici
Type: enhancement | Status: needs_review
Priority: major | Milestone: sage-4.6.2
Component: commutative algebra | Keywords: multivariate power
series
Author: Niles Johnson | Upstream: N/A
Reviewer: Martin Albrecht, Simon King | Merged:
Work_issues: |
-------------------------------------------+--------------------------------
Comment(by pernici):
niles wrote:
> It sounds like you're willing to give that item a positive review. Are
you also willing to say that "The underlying concept is sound"?
I think it is sound to use a background univariate series
to implement total degree precision.
Concerning the 6th item (integration with the rest of sage)
we should discuss what other approaches are available in Sage to deal with
multivariate series.
Another approach to multivariate series is using series of series;
this can be done with Sage's univariate power series or `gp`.
It is a bit cumbersome to convert a polynomial into a series of series
with
Sage's univariate power series
{{{
sage: R.<x1> = QQ[[]]
sage: S.<x0> = R[[]]
sage: p = (1 + x0 + x1)^3
sage: a = p.list()
sage: q = sum((a[i] + O(x1^3))*x0^i for i in range(len(a))) + O(x0^3)
sage: q^-5
1 - 15*x1 + 120*x1^2 + O(x1^3) + (-15 + 240*x1 - 2040*x1^2 + O(x1^3))*x0 +
(120 - 2040*x1 + 18360*x1^2 + O(x1^3))*x0^2 + O(x0^3)
sage: (q-1)^2
9*x1^2 + 18*x1^3 + O(x1^4) + (18*x1 + 54*x1^2 + O(x1^3))*x0 + (9 + 54*x1 +
90*x1^2 + O(x1^3))*x0^2 + O(x0^3)
}}}
Using `gp` the notation is simpler
{{{
sage: q = gp('(1+x0+x1)^3 + O(x0^3) + O(x1^3)')
}}}
giving the same output for `q^-5` and `(q-1)^2` .
For long computations `gp` is much faster, especially with more than two
variables.
Should one integrate the multi-series multivariate series approach
with `PowerSeriesRing` ? It could be something like
{{{
sage: R = PowerSeriesRing(QQ, 2, 'x', "ms")
sage: q = (1 + x0 + x1)^3 + O(x0^3,x1^3)
sage: q
1 + 3*x1 + 3*x1^2 + O(x1^3) + (3 + 6*x1 + 3*x1^2 + O(x1^3))*x0 + (3 + 3*x1
+ O(x1^3))*x0^2 + O(x0^3)
}}}
One could implement series of series with Sage's univariate power series,
or better using PARI.
Clearly implementing this does not belong to this ticket.
The only thing to be decided in this ticket is if it is OK to keep the
total degree precision as the default option in `PowerSeriesRing`.
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/1956#comment:88>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sage-trac?hl=en.