axiom-math
[Top][All Lists]
Advanced

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

[Axiom-math] Again on symbolic computation


From: Fabio Stumbo
Subject: [Axiom-math] Again on symbolic computation
Date: Tue, 4 Apr 2006 10:34:23 +0200 (CEST)


I said that symbolic computation was ok, but making more and more examples
I found some problem.

I refer to

http://wiki.axiom-developer.org/SandBoxNoncommutativePolynomials

with notations

Q=FRAC INT
K=Q(a,b)
H=K[x,y]


Now I use relations of degree 3 for x and y, namely:

yxy=xyx
x^3=ax^2+bx+c
y^3=ax^2+by+c

Accordingly, I modified the core function subs to

subs(w:M):H ==
  -- y*x*y=x*y*x
  n:=div(w,(y::V*x::V*y::V)$M)$M
  n case ok => monom(n.ok.lm,1)$H * (x::V*y::V*x::V)$H * monom(n.ok.rm,1)$H
  -- x*x*x=a*x*x+b*x+c
  n:=div(w,(x::V^3)$M)$M
  n case ok => monom(n.ok.lm,1)$H * (a::K*(x::V)^2+b::K*x::V+c::K)$H * 
monom(n.ok.rm,1)$H
  -- y*y*y=a*y*y+b*y+c
  n:=div(w,(y::V^3)$M)$M
  n case ok => monom(n.ok.lm,1)$H * (a::K*y::V*y::V+b::K*y::V+c::K)$H * 
monom(n.ok.rm,1)$H
  -- no change
  monom(w,1)$H

and I use the auxilliary function

reduce(p:H):H ==
  p2 := newpoly(p)
  p3 := newpoly(p2)
  while p3 ~= p2 repeat
   p2 := p3
   p3 := newpoly(p2)
  p3

The problem is that not every monomial gets reduced to its "lowest degree"
form. Take, for example,
w=xxyxxyx

you get

reduce(w)=w

and this happens because it doesn't contain any yxy,xxx,yyy. On the other
hand, it DOES reduce:

xxyxxyx
    ---
xxyxyxy
  ---
xxxyxxy

and so now a x^3 appears, which can be reduced.

Adding the relation for xyx=yxy doesn't help: you go in loop in many
cases. So, how to handle this kind of problem?


Thanks again

Fabio

PS: I tried to add this to the relative sandbox page, but I have not been able: I added the "reduce" function, but it complains that H is not a valid type. That is, it doesn't load automatically all the previous definition. How do I get this?




reply via email to

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