[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[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
- [Axiom-developer] a problem, maybe with strict typing,
Martin Rubey <=
- Re: [Axiom-developer] a problem, maybe with strict typing, William Sit, 2006/12/18
- Re: [Axiom-developer] a problem, maybe with strict typing, Martin Rubey, 2006/12/18
- Re: [Axiom-developer] a problem, maybe with strict typing, William Sit, 2006/12/18
- Re: [Axiom-developer] a problem, maybe with strict typing, Martin Rubey, 2006/12/19
- Re: [Axiom-developer] a problem, maybe with strict typing, William Sit, 2006/12/19
- Re: [Axiom-developer] a problem, maybe with strict typing, Martin Rubey, 2006/12/20
- Re: [Axiom-developer] a problem, maybe with strict typing, William Sit, 2006/12/21