Talk:Quartic function

Latest comment: 11 months ago by D.Lazard in topic this method is numerically unstable

Title

edit

This article is virtually completely about quartic equations. Why then is it called quartic functions? --Digamma (talk) 20:27, 24 May 2017 (UTC)Reply

\Delta _subscript^superscript combinations confusing

edit

I would suggest to change   to   to distinguish exponents from super scripts. — Preceding unsigned comment added by 82.83.141.243 (talk) 17:44, 3 October 2019 (UTC)Reply

"Biquadratic function" listed at Redirects for discussion

edit
 

An editor has asked for a discussion to address the redirect Biquadratic function. Please participate in the redirect discussion if you wish to do so. SpinningSpark 18:40, 9 April 2020 (UTC)Reply

Not equal

edit

The article mentions that “ , where   is the determinant,” but I found (at least a few) examples where this equality doesn’t hold. Is there something wrong with the formulas given to compute  ,  , and  ? CielProfond (talk) 08:21, 12 July 2023 (UTC)Reply

Please, provide your examples for allowing to search where is the error. D.Lazard (talk) 11:03, 12 July 2023 (UTC)Reply
@CielProfond: I have tested the formula on several thousand cases, and it worked correctly for all of them. I think, therefore, you must have made a mistake of some kind. I agree, therefore, with D.Lazard's suggestion that you provide your examples, so that we can check them. (Incidentally, you mean "discriminant", not "determinant".) JBW (talk) 15:33, 12 July 2023 (UTC)Reply
Apologies. Please delete my comment. It seems to have been caused by rounding errors. And yes, I did mean “discriminant,” not “determinant.” Thank you for catching that!
CielProfond (talk) 23:42, 12 July 2023 (UTC)Reply

this method is numerically unstable

edit

Hi,

the Ferrari's method and the one based on the depressed quartic are both known to be numerically unstable (e.g. see Refs. [2] and [3]). For example, consider the polynomial: 16.048 - 32.072 x + 24.036 x^2 - 8.006 x^3 + x^4 whose roots are 2.003, 2.002, 2.001 and 2. By using the present method you will obtain the following very bad estimates of quartic roots:

2.006000 + 0.000000*I

2.000071 + 0.000126*I

2.000071 - 0.000126*I

1.999857 - 0.000000*I

for a thorough discussion and other tests see Ref. [2]. For a numerically stable and efficient quartic solver, see https://github.com/cridemichel/quarticpp. Refs. [2] and [3] can be downloaded from my website https://www.roma1.infn.it/~demichel

best regards,

Cristiano De Michele

[1] S. L. Shmakov, A universal method of solving quartic equations. Int. J. Pure Appl. Math. 71, 2 251–259 (2011) [2] A.Orellana and C. De Michele ACM Transactions on Mathematical Software, Vol. 46, No. 2, 20 (2020), https://doi.org/10.1145/3386241 [3] C. De Michele, ACM Transactions on Mathematical Software, Vol. 48, No. 46, pp 1-3 (2022), https://doi.org/10.1145/3564270 Cridemichel (talk) 11:31, 5 January 2024 (UTC)Reply

The problem is that your coefficients are wrong. The correct coefficients of your polynomial are : 1 x^4 -8.006 x^3 + 24.036011 x^2 -32.072044006 x + 16.048044012. Because your roots are so close to each other, rounding the coefficients produce the wrong results, which are technically not that far from the real ones... But try again with the full precision of coefficient values, and see what it does. Dhrm77 (talk) 13:26, 5 January 2024 (UTC)Reply
I you plot your equation (with the rounded coefficients), you will find that 2.006000, 2.000071 and 1.999857 are precisely where the curve meets with the Y axis. So the estimates are not that bad after all. Dhrm77 (talk) 13:38, 5 January 2024 (UTC)Reply
I tried the same equation at wolframalpha.com, and without rounding, it finds the right roots, but the slightest rounding, even by 1 digit, will produce complex roots. Dhrm77 (talk) 14:01, 5 January 2024 (UTC)Reply
The whole point of the concept of numerical instability is that the results are highly sensitive to small numerical inaccuracies such as rounding of coefficients, so that is not a valid criticism of the original post by Cristiano. Nevertheless, I agree with Dhrm77 that the estimates are not that bad, really, as far as absolute error is concerned. However, whether that means that the numerical stability is not too bad, or just that the example given isn't a very good one to illustrate the point, I don't know. As for producing complex roots, that is something which happens as a result of tiny errors in coefficients if the roots are very close together, even with exact methods of solution, and in this case the imaginary parts are smaller than the errors in the real parts, so I'm doubtful that the presence of nonzero imaginary parts is evidence of instability. JBW (talk) 14:11, 5 January 2024 (UTC)Reply
There are two kinds of unstabilities that must not be confused here: Unstabilities that result from approximations made during the computation and unstabilities that result from approximations of input coefficients. The former unstabilities result generally from subtraction of two close numbers, and can sometimes be avoided by changing the algorithm. For example, when a quadratic equation has a root that is close to zero, the roots are better approximated as   and   Wilkinson's polynomial is an example of he latter unstabilities, where a very small change of one coefficient changes dramatically the nature of the roots.
As Ferrari's method contains additions and subtractions, it is normal that it is unstable when applied numerically.
Nevertheless, the discussion on numerical stability of Ferrari's method and its variants is totally useless since the general root-finding algorithms (in particular Newton's method) have a better stability and are more efficient. Indeed, for applying algebraic methods, one needs an application of Newton's method for each square or cube root appearing in the formula. This is one reason for not mentioning this work in Wikipedia. A stronger reason is that it is WP:OR (no secondary source), and a probable WP:COI. D.Lazard (talk) 17:50, 5 January 2024 (UTC)Reply