read desing: # The desing_trailing procedure only desingularizes the trailing # coefficient, which means that the degree of the trailing coefficient # will be minimized. # The desing_leading procedure does the same for the leading coefficient, # and the desing_both procedure treats both coefficients. # The output is the operator you multiply by. The desingularization is # then the product of the output times the input. lprint("Trailing coefficient, Example T-1:"); L := 4*(x-1)*(x-2)*(x-3)*tau^2-(x-3)*(5*x^3-12*x^2-3*x+2)*tau-4*x^2*(x-2); Multiply_L_on_the_left_by := desing_trailing(L, [tau,x]); DesingularizedOperator := mult(%, L, [tau,x]); lprint("Trailing coefficient, Example T-2:"); L := (x-1)*(x-2)*(x-3)*tau^2+(x-3)*(3*x^2-3*x+1)*tau+(x-2)*x^2; Multiply_L_on_the_left_by := desing_trailing(L, [tau,x]); DesingularizedOperator := mult(%, L, [tau,x]); lprint("Trailing coefficient, Example T-3:"); L := (x-2)*(x-1)^3*tau^2+(-2*x+2+x^3)*x*(x-2)*tau+2*x^3*(x-1); Multiply_L_on_the_left_by := desing_trailing(L, [tau,x]); DesingularizedOperator := mult(%, L, [tau,x]); lprint("Leading coefficient, Example L-1:"); L := (1+16*x)^2*tau^2-(224+512*x)*tau-(x+1)*(17+16*x)^2; Multiply_L_on_the_left_by := desing_leading(L, [tau,x]); DesingularizedOperator := mult(%, L, [tau,x]); lprint("Both coefficients, Example B-1:"); L := 4*(x-1)*(x-2)*(x-3)*tau^2-(x-3)*(5*x^3-12*x^2-3*x+2)*tau-4*x^2*(x-2); Multiply_L_on_the_left_by := desing_both(L, [tau,x]); DesingularizedOperator := mult(%, L, [tau,x]);