Serious bug in FunctionExpand
- To: mathgroup at smc.vnet.net
- Subject: [mg25632] Serious bug in FunctionExpand
- From: Jack Goldberg <jackgold at math.lsa.umich.edu>
- Date: Mon, 16 Oct 2000 03:04:50 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
Hi group; I'll cut to the quick (whatever that means): Let p[x] = x^6-x^4+2x-10 This polynomial has two real root, x1 = 1.4774 and x2 = -1.4774. The remaining 4 roots are complex with moderately sized imaginary parts. A simple plot shows that p[x] > 0 whenever x is exterior to [-x1,x2] and is < 0 in (x1,x2). From this we can conclude that UnitStep[ p[x] ] = 1 for x exterior to (x1,x2) UnitStep[ p[x] ] = 0 for x interior to (x1,x2) We find FunctionExpand[ UnitStep[p[x] ] -> 0 a terrible error from my perspective! (I will now have to rewrite a key component of my package on Piecewise Functions.) I have done some exploring and can offer the following tidbits: (1). Change 10 (the constant term in p[x]) to 10. and FunctionExpand gives the correct answer as can be verified by Ploting the output of FunctionExpand with UnitStep[ p[x] ]. (2). FunctionExpand gives the incorrect answer for almost all (but not all!) changes in the constant term. Try the polynomial family Table[ p[x_,k_] := x^6-x^4+2x - k, {k,30,120}] (3). I believe part of the problem is due to the fact that p[x] is a cubic in x^2. I have tried many different polynomials and never had a problem with FunctionExpand until I accidentally hit upon this one. (4). FunctionExpand fails with the 12th degree polynomial q[x] = x^12-x^8+2x^4-10 obtain from p[x] by replace x with x^2. BUT it works with h[x] = x^3-x^2+2x-10 obtained from p[x] by replacing x^2 by x.