[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
## Re: [Axiom-developer] a problem, maybe with strict typing

**From**: |
William Sit |

**Subject**: |
Re: [Axiom-developer] a problem, maybe with strict typing |

**Date**: |
Mon, 18 Dec 2006 07:20:00 -0500 |

Martin:

`If I understand your question correctly, at least in the
``interpreter, there is no need to go to SUP F, especially
``for domains like F = EXPR INT. In the example you give,
``
``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:
`

`it would be possible to "find g" with enough initial data
``using, with t standing for the next undetermined
``coefficient
`
taylor(sin(1+t*x)-sin(1),x=0)

` t cos(1)x - O(x^2)
``
``Now you want this to be zero, say. so t = 0. You then
``iterate:
`
taylor(sin(1 + t*x^2) - sin(1), x=0)

`and of course you get g = 1. In general, you may want to
``use Puiseaux series. For example, if you want sin(g(x))=
``sqrt(x), g(0) = 0, you would get
`

`g(x) = sqrt(x)+(1/6)*x^(3/2)+(3/40)*x^(5/2)+t*x^(7/2)
``
``after a few iterations, which is the beginning terms of
``the series for asin(sqrt(x)) of course.
`

`Now if you want to write a package, you do not want to fix
``the variable x (which a user of your package may use t,
``for example). However, assuming you are only using input
``functions (like z and initial data) that are univariate in
``EXPR INT, you can extract the main variable, and assign it
``to x (in your package). Let axiom generate a new symbol
``and assign it to t, which will be different from x (even
``if the user also uses t for his main variable, it will be
``a different t). Now you form your partial series for g
``involving t and x, and substitute g for x to form z g.
``Then compute the resulting series ending up in
``R:=UPXS(EXPR F,x,a) or UPS(EXPR F,x,a), where F can be
``simply INT. (If you require your user to give input
``functions directly from GR:=UPXS(F,x,a) or UPS(F,x,a), you
``will need to first "embed" gr to SGR:=UPXS(SUP F,x,a) or
``UPS(SUP F,x,a), and you can assign t to the main variable
``of SUP F; then you have to repack everything (just the
``normal part of the series up to the order you need) back
``into EXPR F before forming the series in R). In any case,
``you can now compute your undetermine coefficient one at a
``time using arithmetic in EXPR F. The series for g may be
``retracted to GR. The user of your package would not need
``to know anything about your auxilliary variable t.
`

`Something similar to this can be found in IDEAL
``(PolynomialIdeals) package where we need an auxilliary
``variable (like your t) to turn inequations h \ne 0 into an
``equation of the form h*t-1 = 0 (here t must not be mixed
``up with user variables). A lot of type conversion is
``needed between different polynomial rings. So here, you
``need to write type conversion routines between EXPR INT
``and UPXS or UPS (one direction is given by series or
``taylor already).
`
William

**[Axiom-developer] a problem, maybe with strict typing**, *Martin Rubey*, `2006/12/18`
**Re: [Axiom-developer] a problem, maybe with strict typing**,
*William Sit* **<=**
**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`