Solve--Solutions

*To*: mathgroup at yoda.physics.unc.edu*Subject*: Solve--Solutions*From*: rvs at amnesix.kfunigraz.ac.at (Reinhard V.Simonovits)*Date*: Mon, 28 Feb 1994 11:39:06 +0100

Dear MathGroupers! I found following not satisafying behavior of Mma: (1) Find the zeroes of a third order polynomial: In[1]:= Solve[ 11x^3 - 20 x^2 - 10x + 22 == 0, x] //N -16 -16 Out[1]= {{x -> 1.61319 - 1.11022 10 I}, {x -> -1.01567 - 2.32933 10 I}, -16 > {x -> 1.22065 + 3.43956 10 I}} This solution is wrong. It does not exist a complex solution. Plot the function between 1.21 and 1.62! I found this type of solution several times and now in the book of Werner Burkhardt where this example is from. Ok, you can get rid of the imaginary numbers by using Chop. But anyway, you are interested in an analytic expression. (Without //N). Can you trust it? Appearently no! Everybody can construct polynomials with small imaginary parts and therefore you are not sure if there are really complex solutions. What to do? Forget about the analytic solution and use "brutal force": In[2]:= NSolve[ 11x^3 - 20 x^2 - 10x + 22 == 0, x] Out[2]= {{x -> -1.0156658802924896}, {x -> 1.220654426396538}, > {x -> 1.61319327207777}} But the worse thing is In[5]:= Solve[ 11x^3 - 20 x^2 - 10x + 22 == 0, x,VerifySolutions->True] //N -16 -16 Out[5]= {{x -> 1.61319 - 1.11022 10 I}, {x -> -1.01567 - 2.32933 10 I}, -16 > {x -> 1.22065 + 3.43956 10 I}} that the Option VerifySolutions does not realize the wrong solution. Anyway, the WRI experts will say, this comes why..... and they are right. But I think the user is at first interested in believable results. I am sure there is a solution to this problem. Probably a first way out is a warning message or a finetuned VerifySolutions Options that works. (2) Integration with Sqrt. In[9]:= Integrate[ 1/Sqrt[(4-x)^2],x] 1 Out[9]= Integrate[--------------, x] 2 Sqrt[(4 - x) ] I suggest the WRI should do at least one branch cutting using PowerExpand automatically and accompanying the result with a message that others branches are available by an Option Branches -> All. In[12]:= Integrate[PowerExpand[ 1/Sqrt[(x-4)^2]],x] Out[12]= Log[-4 + x] Integrate::branch: Integrand ambivalent! 1/(x-4) was integrated. Branches -> All provides other branches. Every comment is welcome. Kind regards, Reinhard Simonovits University Graz, Theor. Physics