From: abpetrov <abpetrov@uf...>  20130813 15:57:08

> Hi, > I just have tried make linear transformation for fermi operators. > But after such transformation result has strange property. > When I set switch factor on some sum's members dissapears. > When I set switch factor off they appears again. I suppose this is a bad > thing because in many situations it can lead to illegal interpretation > calculation results. > So, questions is > 1) Why dissapears some sum's members > 2) How can I avoid that situations? > I can add, that when I made new fermi operators a2 and a2c (see below) > as commutative variables they don't disappears. > The program with noncommutative variables below. > In program I have fermi operators a,ac with rules and > a2 and a2c with rules. After that I defined operator H, > in which I made linear transformation. > Last two outputs of operator H2 is different because of switch > factor on. > > > off lower$ > on intstr$ > > load_package noncom2; > > operator a,ac; > noncom a,a; > noncom ac,ac; > noncom a,ac; > > for all i let a(i)*ac(i) = 1  ac(i)*a(i); > for all i,j such that i neq j let a(i)*ac(j) = ac(j)*a(i); > for all i,j such that ordp(i,j) let a(i)*a(j) = a(j)*a(i); > for all i,j such that ordp(i,j) let ac(i)*ac(j) = ac(j)*ac(i); > > operator a2,a2c; > noncom a2,a2; > noncom a2c,a2c; > noncom a2,a2c; > > for all i let a2(i)*a2c(i) = 1  a2c(i)*a2(i); > for all i,j such that i neq j let a2(i)*a2c(j) = a2c(j)*a2(i); > for all i,j such that ordp(i,j) let a2(i)*a2(j) = a2(j)*a2(i); > for all i,j such that ordp(i,j) let a2c(i)*a2c(j) = a2c(j)*a2c(i); > > > operator H; > H := J1*ac(i)*a(i+1) + J1*ac(i+1)*a(i); > > operator U,UT,V,VT; > > sub_fermi := { a(~i) => U(i,j1)*a2(j1) + V(i,j1)*a2c(j1), > ac(~i) => VT(i,j2)*a2(j2) + UT(i,j2)*a2c(j2) }; > H2 := (H where sub_fermi); > on factor; > H2; > > > Best regards, Petrov Alexander > >  > Get 100% visibility into Java/.NET code with AppDynamics Lite! > It's a free troubleshooting tool designed for production. > Get down to codelevel detail for bottlenecks, with <2% overhead. > Download for free and get started troubleshooting in minutes. > http://pubads.g.doubleclick.net/gampad/clk?id=48897031&iu=/4140/ostg.clktrk > _______________________________________________ > Reducealgebradevelopers mailing list > Reducealgebradevelopers@... > https://lists.sourceforge.net/lists/listinfo/reducealgebradevelopers > I just have rewritten result for H2 as input expression and switched on factor. Result same as in prior program. So, linear transformaition hasn't relation to that behaviour of Reduce. Possible, something wrong with noncommutative operators or with on factor working with noncommutative operators. The new program, which show different view H2 depending from factor switch is: off lower$ load_package noncom2; operator a2,a2c; noncom a2,a2; noncom a2c,a2c; noncom a2,a2c; operator U,UT,V,VT; H2 := J1*(U(i + 1,j1)*UT(i,j2)*a2c(j2)*a2(j1) + U(i + 1,j1)*VT(i,j2)*a2(j2)*a2(j1) + U (i,j1)*UT(i + 1,j2)*a2c(j2)*a2(j1) + U(i,j1)*VT(i + 1,j2)*a2(j2)*a2(j1) + UT(i + 1,j2)*V(i,j1)*a2c(j2)*a2c(j1) + UT(i,j2)*V(i + 1,j1)*a2c(j2)*a2c(j1)  V(i + 1, j1)*VT(i,j2)*a2c(j1)*a2(j2)  V(i,j1)*VT(i + 1,j2)*a2c(j1)*a2(j2)); on factor; H2; Where is 4 first summand? Best regards, Petrov Alexander 