simplify



Sometime ago on this list (search "sfactor"), I suggested a symbolic Newton
method for
trying to do things like this; untested code:

 (%i43) sfactor(p,x) := block([n, cf, s, d],
  p : ratexpand(p),
  n : hipow(p,x),
  (if n <= 1 then p else (
    cf : coeff(p,x,n),
    s : x,
    d : expand(cf * s^n - p),
    while hipow(d,x) > 0 do (
       d : ratexpand(first(divide(cf * s^n - p, n * cf * s^(n-1),x))),
       s : s - d),
     cf * s^n + sfactor(p - cf * s^n,x))))$

(%i47) expand((x-1)^6 + (x-a)^4)$

(%i48) sfactor(%,x);
(%o48) (x-a)^4+(x-1)^6

(%i49) sfactor(x^2 + 5*x - 42,x);
(%o49) (x+5/2)^2-193/4

(%i46) sfactor(x^5-14*x^4+94*x^3-264*x^2+409*x-242,x);
(%o46) (868681*x)/14625+(78*(x-556/585)^3)/5+
(x-14/5)^5-7251304382/128334375

Barton

-----maxima-bounces at math.utexas.edu wrote: -----


>Stavros Macrakis wrote: > .... > And of course many useful transformations
>will not be found anyway. > For instance, I don't know of any practical
>way to perform > "simplifications" like
>x^5-14*x^4+94*x^3-264*x^2+409*x-242 => > (x+1)^4+(x-3)^5. >