axiom-math
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

## Re: [Axiom-math] Curious behavior of Taylor series

 From: William Sit Subject: Re: [Axiom-math] Curious behavior of Taylor series Date: Wed, 30 Aug 2006 06:25:02 -0400

```
"Igor Khavkine" <address@hidden> writes:

```
```OK, but the following definitely looks like a bug.

(279) -> monx := monomial(1,1)\$UTS(EXPR INT,x,0)
(279)  x
```
Type: UnivariateTaylorSeries(Expression Integer,x,0)
```(281) -> sqrt(monx*monx)
(281) ->
(281)  1
```
Type:
```
```
In the Windows version, I get the correct answer. So this bug is newly introduced.
```                        AXIOM Computer Algebra System
```
Version of Tuesday November 30, 2004 at 21:11:14
```-----------------------------------------------------------------------------
Issue )copyright to view copyright notices.
```
Issue )summary for a summary of useful system commands.
```   Issue )quit to leave AXIOM and return to shell.
-----------------------------------------------------------------------------

(1) -> )set mess auto off
(1) -> monx := monomial(1,1)\$UTS(EXPR INT,x,0)

(1)  x
```
Type: UnivariateTaylorSeries(Expression Integer,x,0)
```(2) -> sqrt(monx*monx)

(2)  x
```
Type: UnivariateTaylorSeries(Expression Integer,x,0)
```(3) -> x

(3)  x
```
Type: Variable x
```
```
Note in particular (3), which illustrates that Axiom treats undefined identifiers as symbols (or variables). Even though x has been used in (1) and (2), it is still undefined! The reason is the way UTS (or any univariate domain) is constructed in Axiom: since it is univariate, Axiom designers decided that it is not necessary to associate the main variable to an identifier. The x that appears in the output (and input) is external to the UTS computing environment and a pure notation in I/O for the convenience of the user. Internally, the main variable is represented by a place holder (and denoted by the local identifier ?). One reason for this set up is to allow coefficient domains to include Symbol (that is, all identifiers) and since ? is only a local identifier, it will not get mixed up with anything in the coefficient domain. This explains why in your example, x*y gives x*x (which is really x*?). It is important to know that the line
```
y:=taylor x

```
does NOT define x, only y. You cannot use x to mean the main variable until you define it. So you can do this:
```
(1) -> y:=taylor x

(1)  x
```
Type: UnivariateTaylorSeries(Expression Integer,x,0)
```(2) -> x:UTS(EXPR INT,x,0):='x

(2)  x
```
Type: UnivariateTaylorSeries(Expression Integer,x,0)
```(3) -> x*y

2
(3)  x
```
Type: UnivariateTaylorSeries(Expression Integer,x,0)
```

William

```

reply via email to

 [Prev in Thread] Current Thread [Next in Thread]