Rank Reduction algorithm for Bivariate systems based on generalization of Moser-Barkatou algorithm  (ISSAC'2014) 

MoserPfaff computes an equivalent system to that of the input system, whose subsystems have individually and simultaneously the true Poincare ranks. The output consists of the matrices of the equivalent system, the transformation, and computation time.  


Function calls:
 

 

MoserPfaff(Input matrices with the poles in both or any of the two variables, the first variable, the second variable, the truncation in the first variable (in case of power series entries), truncation in the second variable).  

 

In the following examples, the input system is: 

dF/dx = A(x,y) F 

dF/dy = B(x,y) F 

 

> A := Matrix(2, 2, [`/`(`*`(`+`(`*`(`^`(x, 3)), y)), `*`(`^`(x, 4))), `/`(`*`(`^`(y, 2)), `*`(`^`(x, 4))), `+`(`-`(`/`(1, `*`(`^`(x, 4))))), `/`(`*`(`+`(`*`(`^`(x, 3)), `-`(y))), `*`(`^`(x, 4)))]); 1; ...
A := Matrix(2, 2, [`/`(`*`(`+`(`*`(`^`(x, 3)), y)), `*`(`^`(x, 4))), `/`(`*`(`^`(y, 2)), `*`(`^`(x, 4))), `+`(`-`(`/`(1, `*`(`^`(x, 4))))), `/`(`*`(`+`(`*`(`^`(x, 3)), `-`(y))), `*`(`^`(x, 4)))]); 1; ...
 

 

 

A := Matrix(%id = 18446744078272799318)
B := Matrix(%id = 18446744078272799798)
Equivalent_A, Equivalet_B, Transformation, Computation_time := Matrix(%id = 18446744078272801238), Matrix(%id = 18446744078272801358), Matrix(%id = 18446744078272801478), 0.60e-1 (3.1)
 

> A := Matrix(%id = 18446744078272803294); -1; B := Matrix(%id = 18446744078272803414); -1; Equivalent_A, Equivalet_B, Transformation, Computation_time := MoserPfaff(A, B, x, y, 10, 10); 1
A := Matrix(%id = 18446744078272803294); -1; B := Matrix(%id = 18446744078272803414); -1; Equivalent_A, Equivalet_B, Transformation, Computation_time := MoserPfaff(A, B, x, y, 10, 10); 1
 

Equivalent_A, Equivalet_B, Transformation, Computation_time := Matrix(%id = 18446744078272804854), Matrix(%id = 18446744078272804974), Matrix(%id = 18446744078272805094), 0.59e-1 (3.2)
 

>
 

> A := Matrix(%id = 18446744078272806534); -1; B := Matrix(%id = 18446744078272806654); -1; Equivalent_A, Equivalet_B, Transformation, Computation_time := MoserPfaff(A, B, x, y, 10, 10); 1
A := Matrix(%id = 18446744078272806534); -1; B := Matrix(%id = 18446744078272806654); -1; Equivalent_A, Equivalet_B, Transformation, Computation_time := MoserPfaff(A, B, x, y, 10, 10); 1
 

Equivalent_A, Equivalet_B, Transformation, Computation_time := Matrix(%id = 18446744078272807510), Matrix(%id = 18446744078272807630), Matrix(%id = 18446744078272807750), 0.82e-1 (3.3)
 

> A := Matrix(%id = 18446744078272809790); -1; B := Matrix(%id = 18446744078272809910); -1; Equivalent_A, Equivalet_B, Transformation, Computation_time := MoserPfaff(A, B, x, y, 10, 10); 1
A := Matrix(%id = 18446744078272809790); -1; B := Matrix(%id = 18446744078272809910); -1; Equivalent_A, Equivalet_B, Transformation, Computation_time := MoserPfaff(A, B, x, y, 10, 10); 1
 

Equivalent_A, Equivalet_B, Transformation, Computation_time := Matrix(%id = 18446744078272810630), Matrix(%id = 18446744078272810750), Matrix(%id = 18446744078272810870), 0.88e-1 (3.4)
 

> A := Matrix(%id = 18446744078272833046); -1; B := Matrix(%id = 18446744078272833166); -1; Equivalent_A, Equivalet_B, Transformation, Computation_time := MoserPfaff(A, B, x, y, 10, 10); 1
A := Matrix(%id = 18446744078272833046); -1; B := Matrix(%id = 18446744078272833166); -1; Equivalent_A, Equivalet_B, Transformation, Computation_time := MoserPfaff(A, B, x, y, 10, 10); 1
 

Equivalent_A, Equivalet_B, Transformation, Computation_time := Matrix(%id = 18446744078272834486), Matrix(%id = 18446744078272834606), Matrix(%id = 18446744078272834726), 0.40e-1 (3.5)
 

> A := Matrix(%id = 18446744078272836662); -1; B := Matrix(%id = 18446744078272836782); -1; Equivalent_A, Equivalet_B, Transformation, Computation_time := MoserPfaff(A, B, x, y, 10, 10); 1
A := Matrix(%id = 18446744078272836662); -1; B := Matrix(%id = 18446744078272836782); -1; Equivalent_A, Equivalet_B, Transformation, Computation_time := MoserPfaff(A, B, x, y, 10, 10); 1
 

Equivalent_A, Equivalet_B, Transformation, Computation_time := Matrix(%id = 18446744078272839302), Matrix(%id = 18446744078272839422), Matrix(%id = 18446744078272839542), 0.97e-1
Equivalent_A, Equivalet_B, Transformation, Computation_time := Matrix(%id = 18446744078272839302), Matrix(%id = 18446744078272839422), Matrix(%id = 18446744078272839542), 0.97e-1
(3.6)
 

>
 

>
 

>
 

>
 

>