>> Hello everyone,> I'm trying to use the solutions of Solve from solving a cubic equation -> however, it keeps returning complex answers when there are real solutions.> For example:>> Solve[z + 5 (z^2 - 1) + 1 z^3 == 1, z]>> This equation has 3 real solutions. However, the answers returned when I> ask mathematica for a decimal answer are complex (which I need to do later> on when an integration needs solving numerically):> {{z -> 0.925423 + 0. I}, {z -> -4.47735 +> 2.22045*10^-16 I}, {z -> -1.44807 - 4.44089*10^-16 I}}>> I'm guessing this is to do with the finite precision that is used in the> calculations as the imaginary components are very small, but am unsure how> to deal with them and they shouldn't be there. Any suggestions?>>> The second problem I am having is that I need to solve for s in a function> B[s] == 10^-5, where B is some (complicated) function of s.>> The form of the function depends on s - and this is handled by If[]> commands in the function B. For example, the s dependance might be:>> B[s]:=If[s<0.5,Erfc[-x],Erfc[-x]+Erfc[y]-Erfc[z]]>> B[s] is a smooth function of s.>> The problem seems to arise because, before it has found a solution for s,> it can't decide which form of the function to use - and so just returns an> error message (I've tried using Solve, NSolve, and FindRoot with different> methods). However, since I'm only looking for a numerical solution it is> easily possible to solve this manually using trial and improvement - which> seems to be something that Mathematica should be able to do? But I can't> figure out how.>> Please feel free to contact me directly at sy81@sussex.ac.uk with advice.> Thank you in advance for any help!>> Regards,> Sam>>