Re: critical points of a third order polynomial fit (simplification)

*To*: mathgroup at smc.vnet.net*Subject*: [mg68490] Re: [mg68466] critical points of a third order polynomial fit (simplification)*From*: Andrzej Kozlowski <akoz at mimuw.edu.pl>*Date*: Mon, 7 Aug 2006 01:41:11 -0400 (EDT)*References*: <200608060656.CAA23460@smc.vnet.net> <5951C758-2C5C-4727-AD67-41E11F62F79E@mimuw.edu.pl> <acbec1a40608060838n1c214499ledaa6ebdc94e0ebc@mail.gmail.com> <A35E92CF-D0AD-4DB3-8BCF-C23ECF0E51A4@mimuw.edu.pl> <acbec1a40608060945k24193537uf04f334949cede30@mail.gmail.com>*Sender*: owner-wri-mathgroup at wolfram.com

On 6 Aug 2006, at 18:45, Chris Chiasson wrote: > Per offlist discussion with Andrzej Kozlowski, it is seen that > Mathematica is capable of detecting the numerical ill conditioning in > this problem when using arbitrary precision numbers. This can be > tested by appending the following replacements to the definition of > bracket: > > /. x_Real?InexactNumberQ :> SetPrecision[x, 14] > > /. x_Real?InexactNumberQ :> SetPrecision[x, 32] Actually, what hapens in this case is that unless you use precision of at least 24 both expressions will return the same (not very useful) output: {ComplexInfinity, Indeterminate}. You need precision of at leat 25 to get one guaranteed correct digit, in which case you will get Precision[x/.rep[3]/.rep[5]//InputForm] 1.42222 Precision[x/.rep[4]/.rep[5]//InputForm] 1.42222 With lower precision at some point of the computation Mathematica attempts to evaluate 1/0``11.03871382942938 (which it interprets as ComplexInfinity) issues a warning to the effect that it encountered division by zero and then returns the answer {ComplexInfinity, Indeterminate}. Although this answer is not very useful, it will be the same for both expression and you can see from it that Mathematica arrived at an approximate 0, which has 0 digits of Precision (and 11 of accuracy). This tells you that you should significantly increase the precision of your input. All of this can be avoided by using exact numbers in the input and writing everything as N[expression to be computed,n] where n is the number of correct digits you want to have in the output. Mathematica should then itself choose the right precision in the input that guarantees the requested number of digits in the output. I think that in most cases this approach is more efficient and convenient than using SetPrecision. Andrzej Kozlowski

**References**:**critical points of a third order polynomial fit (simplification)***From:*"Chris Chiasson" <chris@chiasson.name>