Dear Sumant,

You have sent an excellent example!

"Sumant S.R. Oemrawsingh" <[EMAIL PROTECTED]> writes:

> Say, I wish to define a piece-wise function,
> 
> (1) -> f(x|x<0)==-x**2
>                                                                    Type: Void
> (2) -> f(x)==x**2
>                                                                    Type: Void
> (3) -> draw(f(x),x=-1..1)
>    Compiling function f with type Variable x -> Polynomial Integer 

Reading this line, you might find out what happened: axiom interprets your
function f as being from Variable x to Polynomial Integer.  Try - in a fresh
session -

  )set message bottom on

(or shorter, )se me bo on) and

  x<0

You will see, x is interpreted as a polynomial integer! Thus, the inequality
x<0 in your function definition will never hold!

There is a way out though: tell axiom to draw a function from DoubleFloat to
DoubleFloat:

  draw(f, -1..1)

Look carefully at the messages, and look up "draw" in HyperDoc or with

  )display operations draw

(shorter: )di op draw)


> If I now continue to integrate,
> 
> (4) -> integrate(f(x),x=-1..1)

Here, I think, you are out of luck.  axiom's Expression Domain does not yet
provide piecewise functions.  You can only do it numerically:

(19) -> romberg(f, -1,1,0.1,0.1,10,20)

   (19)  [value= 0.0,error= 0.0,totalpts= 2049,success= true]
   Type: Record(value: Float,error: Float,totalpts: Integer,success: Boolean)

hope that helps,

Martin



_______________________________________________
Axiom-mail mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/axiom-mail

Reply via email to