axiom-developer
[Top][All Lists]

## [Axiom-developer] a problem, maybe with strict typing

 From: Martin Rubey Subject: [Axiom-developer] a problem, maybe with strict typing Date: 18 Dec 2006 09:49:01 +0100 User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.4

```Dear all, especially all fans of strict typing!

I'm also sending this to aldor-l, although I can really describe the problem
only with a concrete example, it may well be that one of the aldor experts has
seen something like that before. In fact, I'd be already grateful for a
"reasonable" abstract description of my problem, since I find it difficult to
extract the "real" problem. On the other hand, what I want to do seems natural
to me...

I would like to determine a Taylor series expansion using undetermined
coefficients for an implicitely given function y. Suppose I am given the
equation for y as a function z: TS -> TS, where TS is a suitable Taylor series
domain. z stands for "zero", i.e., the power series solution g will satisfy

z g = O(x^something).

In the following:

UTS     ==> UnivariateTaylorSeries
SUP     ==> SparseUnivariatePolynomial -- the variable is displayed as ?
EXPR    ==> Expression
FRAC    ==> Fraction
INT     ==> Integer
TRANFUN ==> TranscendentalFunctionCategory -- allows computation of sin, etc.

Currently I use UTS(SUP F, x, 0) where F is a field of coefficients, for
example EXPR INT, or just FRAC INT.

Then I let g: UTS(SUP F, x, 0) be the power series consisting of those terms
whose coefficients are already computed (or given as initial values), plus one
term with coefficient monomial(1,1)\$SUP F, which is thus transcendental over F
and will serve as placeholder for the undetermined coefficient.

Now I can compute z g, and find the first non-zero coefficient, which will
usually be a linear polynomial in SUP F. (Otherwise I have to supply more
initial values, since only in the linear case the coefficient is uniquely
determined...)

This works very well. For example, I can compute asin with g +-> g sin x - x,
even things like g +-> g(g(x))-x and more complicated stuff work.

Now let F be EXPR INT, or, in fact, any domain that has TRANFUN. Already series
as simple as g +-> sin g - sin 1, g(0) = 1 fail: I get the error

"sincos: series expansion involves transcendental constants".

Of course, that's what I should get: SUP EXPR INT does not have TRANFUN, and it
cannot have it, since sin(?) is not a SUP EXPR INT. The error is raised when
one tries to compute sin of a series which has a constant term, which seems to
make sense. To compute the next term of our example, we set g = 1+?x and need
to compute sin(1+?x)-sin(1), which in turn wants to compute sin(1+?x) which
equals

sin(1) + cos(1) ? x - sin(1)/2 ?^2 x^2 - ...

(remember, the variable of a SUP is displayed as ?)

OK, SUP EXPR INT does not have TRANFUN, but EXPR has, and sin(1+?x) does not
involve anything that does not "fit" into SUP EXPR INT, for example,
sin(?). But how can I explain that to axiom?

Any ideas are greatly appreciated.

Martin

```