<<RISC`OreSys`

Package OreSys version 1.2 written by Stefan Gerhold
Copyright 2002-2009, Research Institute for Symbolic Computation (RISC),
Johannes Kepler University, Linz, Austria

1.Differential System

dsys={y1'[x]==(x^2-1)y1[x]+1/x y2[x]-1,
y2'[x]==-x y1[x]+2/(x-1)y2[x]-y3[x],
y3'[x]==-y1[x]+y2[x]};

Timing[UncoupleDifferentialSystem[dsys,{y1[x],y2[x],y3[x]},{z1[x],z2[x],z3[x]},x,Method->Zuercher]]
Timing[UncoupleDifferentialSystem[dsys,{y1[x],y2[x],y3[x]},{z1[x],z2[x],z3[x]},x,Method->IncompleteZuercher]]
Timing[UncoupleDifferentialSystem[dsys,{y1[x],y2[x],y3[x]},{z1[x],z2[x],z3[x]},x,Method->AbramovZima]]
Timing[UncoupleDifferentialSystem[dsys,{y1[x],y2[x],y3[x]},x,Method->Gauss]]

2. Difference System

deltasys={y1[x+1]==2y1[x]-y2[x]+y3[x]-1,
y2[x+1]==x y1[x]-1/x y2[x]+y3[x]-x,
y3[x+1]==y1[x]-y2[x]+2y3[x]};

Timing[UncoupleDifferenceSystem[deltasys,{y1[x],y2[x],y3[x]},{z1[x],z2[x],z3[x]},x,Method->Zuercher]]
Timing[UncoupleDifferenceSystem[deltasys,{y1[x],y2[x],y3[x]},{z1[x],z2[x],z3[x]},x,Method->IncompleteZuercher]]
Timing[UncoupleDifferenceSystem[deltasys,{y1[x],y2[x],y3[x]},{z1[x],z2[x],z3[x]},x,Method->AbramovZima]]
Timing[UncoupleDifferenceSystem[deltasys,{y1[x],y2[x],y3[x]},x,Method->Gauss]]

3. q-Difference System

qsys={y1[q x]==y1[x]-q x y2[x]+y3[x]+1,
y2[q x]==1/x y1[x]+q y2[x]-y3[x]+q^2x^3,
y3[q x]==y1[x]-y2[x]+q y3[x]};

Timing[UncoupleqDifferenceSystem[qsys,{y1[x],y2[x],y3[x]},{z1[x],z2[x],z3[x]},x,q,Method->Zuercher]]
Timing[UncoupleqDifferenceSystem[qsys,{y1[x],y2[x],y3[x]},{z1[x],z2[x],z3[x]},x,q,Method->IncompleteZuercher]]
Timing[UncoupleqDifferenceSystem[qsys,{y1[x],y2[x],y3[x]},{z1[x],z2[x],z3[x]},x,q,Method->AbramovZima]]
Timing[UncoupleqDifferenceSystem[qsys,{y1[x],y2[x],y3[x]},x,q,Method->Gauss]]

4. Algebraic System

algsys={y1+y2-x y3+y4==1,y1-x y2+y3-2y4==1,y1-y2+y3==-x,y1+y2+x y3-y4==0};

Timing[UncoupleAlgebraicSystem[algsys,{y1,y2,y3,y4},{z1,z2,z3,z4},Method->Zuercher]]
Timing[UncoupleAlgebraicSystem[algsys,{y1,y2,y3,y4},{z1,z2,z3,z4},Method->IncompleteZuercher]]
Timing[UncoupleAlgebraicSystem[algsys,{y1,y2,y3,y4},{z1,z2,z3,z4},Method->AbramovZima]]
Timing[UncoupleAlgebraicSystem[algsys,{y1,y2,y3,y4},Method->Gauss]]