Clustering Complex Zeros of Triangular Systems of Polynomials


This paper gives the first algorithm for finding a set of natural \(\epsilon \)-clusters of complex zeros of a regular triangular system of polynomials within a given polybox in \({{\mathbb {C}}}^n\), for any given \(\epsilon >0\). Our algorithm is based on a recent near-optimal algorithm of Becker et al. (Proceedings of the ACM on international symposium on symbolic and algebraic computation, 2016) for clustering the complex roots of a univariate polynomial where the coefficients are represented by number oracles. Our algorithm is based on recursive subdivision. It is local, numeric, certified and handles solutions with multiplicity. Our implementation is compared to with well-known homotopy solvers on various triangular systems. Our solver always gives correct answers, is often faster than the homotopy solvers that often give correct answers, and sometimes faster than the ones that give sometimes correct results.

This is a preview of subscription content, log in to check access.

Fig. 1


  1. 1.

    A multisetS is a pair \((\underline{S},\mu )\) where \(\underline{S}\) is an ordinary set called the underlying set and \(\mu :\underline{S}\rightarrow {\mathbb {N}}\) assigns a positive integer \(\mu (x)\) to each \(x\in \underline{S}\). Call \(\mu (x)\) the multiplicity of x in S, and \(\mu (S){\mathrel {\,{:}{=}\,}}\sum _{x\in \underline{S}}\mu (x)\) the total multiplicity of S. Also, let |S| denote the cardinality of \(\underline{S}\). If \(|S|=1\), then S is called a singleton. We can form the union \(S\cup S'\) of two multisets with underlying set \(\underline{S}\cup \underline{S'}\), and the multiplicities add up as expected.

  2. 2.

  3. 3.

  4. 4.

  5. 5.

    In general, \({\varvec{v}}_i\ne v_i\) since \({\varvec{v}}\) and \(v_i\) are independent variables. So our bold font variables \({\varvec{v}}\) do not entail the existence of non-bold font counterparts such as \(v_i\).

  6. 6.

    The two failure modes may be traced to our soft comparison of real numbers x : y (see [17, 27]). It is reduced to the interval comparison \((x)_L:(y)_L\) for increasing L. If we can conclude \(x>y\) or \(x<y\), it is a success, else it is a failure. There are two failure modes: if we can conclude \(\textstyle {\frac{1}{2}}x<y< 2x\), this is a \((-1)\)-failure (it is a potential “zero problem”). Otherwise it is a \((-2)\)-failure (we repeat the interval test with larger L).

  7. 7.

  8. 8.

  9. 9.

  10. 10.

    Other major homotopy solvers are NAG4M2 (for Macaulay2), PHCpack and HOM4PS-3. Bertini2 is still in development.

  11. 11.

  12. 12.

  13. 13.


  1. 1.

    Aubry, P., Lazard, D., Maza, M.M.: On the theories of triangular sets. J. Symb. Comput. 28(1), 105–124 (1999)

    MathSciNet  Article  Google Scholar 

  2. 2.

    Bates, D.J., Hauenstein, J.D., Sommese, A.J., Wampler, C.W.: Bertini: Software for numerical algebraic geometry. Available at with permanent

  3. 3.

    Batra, P.: Globally convergent, iterative path-following for algebraic equations. Math. Comput. Sci. 4(4), 507–537 (2010)

    MathSciNet  Article  Google Scholar 

  4. 4.

    Becker, R., Sagraloff, M., Sharma, V., Xu, J., Yap, C.: Complexity analysis of root clustering for a complex polynomial. In: Proceedings of the ACM on International Symposium on Symbolic and Algebraic Computation. pp. 71–78. ISSAC ’16, ACM, New York, NY, USA (2016)

  5. 5.

    Becker, R., Sagraloff, M., Sharma, V., Yap, C.: A near-optimal subdivision algorithm for complex root isolation based on Pellet test and Newton iteration. J. Symb. Comput. 86, 51–96 (2018)

    MathSciNet  Article  Google Scholar 

  6. 6.

    Beltrán, C., Leykin, A.: Certified numerical homotopy tracking. Exp. Math. 21(1), 69–83 (2012)

    MathSciNet  Article  Google Scholar 

  7. 7.

    Boulier, F., Chen, C., Lemaire, F., Moreno Maza, M.: Real root isolation of regular chains. In: Feng, R., Lee, W.S., Sato, Y. (eds.) Computer Mathematics, pp. 33–48. Springer, Berlin (2014)

    Google Scholar 

  8. 8.

    Cheng, J.S., Gao, X.S., Yap, C.K.: Complete numerical isolation of real roots in zero-dimensional triangular systems. J. Symb. Comput. 44(7), 768–785 (2009)

    MathSciNet  Article  Google Scholar 

  9. 9.

    Collins, G.E., Johnson, J.R., Krandick, W.: Interval arithmetic in cylindrical algebraic decomposition. J. Symb. Comput. 34(2), 145–157 (2002)

    MathSciNet  Article  Google Scholar 

  10. 10.

    Dahan, X., Maza, M.M., Schost, E., Wu, W., Xie, Y.: Lifting techniques for triangular decompositions. In: Proceedings of the 2005 International Symposium on Symbolic and Algebraic Computation, pp. 108–115. ISSAC ’05, ACM, New York, NY, USA (2005)

  11. 11.

    Darboux, G.: Sur les développements en série des fonctions d’une seule variable. Journal de mathématiques pures et appliquées (Liouville Journal) 3(II), 291–312 (1876)

  12. 12.

    Dayton, B.H., Zeng, Z.: Computing the multiplicity structure in solving polynomial systems. In: Proceedings of the 2005 International Symposium on Symbolic and Algebraic Computation, pp. 116–123. ACM (2005)

  13. 13.

    Dickenstein, A., Emiris, I. (eds.): Solving Polynomial Equations: Foundations, Algorithms, and Applications. Springer, Berlin (2005)

    Google Scholar 

  14. 14.

    Eigenwillig, A., Kettner, L., Krandick, W., Mehlhorn, K., Schmitt, S., Wolpert, N.: A descartes algorithm for polynomials with bit-stream coefficients. In: Ganzha, V., Mayr, E., Vorozhtsov, E. (eds.) CASC, LNCS, vol. 3718, pp. 138–149. Springer, Berlin (2005)

  15. 15.

    Giusti, M., Lecerf, G., Salvy, B., Yakoubsohn, J.C.: On location and approximation of clusters of zeros: case of embedding dimension one. Found. Comput. Math. 7(1), 1–58 (2007)

    MathSciNet  Article  Google Scholar 

  16. 16.

    Huber, B., Sturmfels, B.: A polyhedral method for solving sparse polynomial systems. Math. Comput. 64(212), 1541–1555 (1995)

    MathSciNet  Article  Google Scholar 

  17. 17.

    Imbach, R., Pan, V.Y., Yap, C.: Implementation of a near-optimal complex root clustering algorithm. In: Davenport, J.H., Kauers, M., Labahn, G., Urban, J. (eds.) Mathematical Software—ICMS 2018, pp. 235–244. Springer, Cham (2018)

  18. 18.

    Johansson, F.: Arb: efficient arbitrary-precision midpoint-radius interval arithmetic. IEEE Trans. Comput. 66, 1281–1292 (2017)

    MathSciNet  Article  Google Scholar 

  19. 19.

    Kobel, A., Rouillier, F., Sagraloff, M.: Computing real roots of real polynomials ... and now for real! In: Proceedings of the ACM on International Symposium on Symbolic and Algebraic Computation, pp. 303–310. ISSAC ’16, ACM, New York, NY, USA (2016)

  20. 20.

    Li, J., Cheng, J., Tsigaridas, E.: Local generic position for root isolation of zero-dimensional triangular polynomial systems. In: Koepf, W., Vorozhtsov, E. (eds.) CASC 2012—14th International Workshop on Computer Algebra in Scientific Computing. Lecture Notes in Computer Science, vol. 7442, pp. 186–197. Springer, Maribor (2012)

  21. 21.

    Mignotte, M.: On the distance between the roots of a polynomial. Appl. Algebra Eng. Commun. Comput. 6(6), 327–332 (1995)

    MathSciNet  Article  Google Scholar 

  22. 22.

    Moore, R.E., Kearfott, R.B., Cloud, M.J.: Introduction to Interval Analysis. SIAM, Philadelphia (2009)

    Google Scholar 

  23. 23.

    Niang Diatta, D., Diatta, S., Rouillier, F., Roy, M.F., Sagraloff, M.: Bounds for polynomials on algebraic numbers and application to curve topology. arXiv e-prints arXiv:1807.10622 (Jul 2018)

  24. 24.

    Strzebonski, A., Tsigaridas, E.: Univariate real root isolation in an extension field and applications. J. Symb. Comput. 92, 31–51 (2019)

    MathSciNet  Article  Google Scholar 

  25. 25.

    Wampler, I.C.W., et al.: The Numerical Solution of Systems of Polynomials Arising in Engineering and Science. World Scientific, Singapore (2005)

    Google Scholar 

  26. 26.

    Xu, J., Burr, M., Yap, C.: An approach for certifying homotopy continuation paths: Univariate case. In: Proceedings of the 2018 ACM International Symposium on Symbolic and Algebraic Computation, pp. 399–406. ISSAC ’18, ACM, New York, NY, USA (2018)

  27. 27.

    Yap, C., Sagraloff, M., Sharma, V.: Analytic root clustering: a complete algorithm using soft zero tests. In: The Nature of Computation. Logic, Algorithms, Applications. LNCS, vol. 7921, pp. 434–444. Springer, Berlin (2013)

  28. 28.

    Zhang, Z., Fang, T., Xia, B.: Real solution isolation with multiplicity of zero-dimensional triangular systems. Sci. China Inf. Sci. 54(1), 60–69 (2011)

    MathSciNet  Article  Google Scholar 

Download references

Author information



Corresponding author

Correspondence to Rémi Imbach.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rémi’s work is supported by the European Union’s Horizon 2020 research and innovation programme No. 676541, NSF Grants # CCF-1563942, # CCF-1564132 and # CCF-1708884. Chee’s work is supported by NSF Grants # CCF-1423228 and # CCF-1564132.

Appendix: Error Analysis

Appendix: Error Analysis

This Appendix contains all the proofs for our error analysis. Section 3 is an excerpt.

Given \(f,{\widetilde{f}}\in {{\mathbb {C}}}[{\varvec{z}}]\) and \({\varvec{b}}, \widetilde{{\varvec{b}}}\in {{\mathbb {C}}}^n\), our basic goal is to bound the evaluation error

$$\begin{aligned} \Vert f({\varvec{b}})-{\widetilde{f}}(\widetilde{{\varvec{b}}})\Vert \end{aligned}$$

in terms of \(\delta _f {\mathrel {\,{:}{=}\,}}\Vert f-{\widetilde{f}}\Vert \) and \(\delta _{\varvec{b}}{\mathrel {\,{:}{=}\,}}\Vert {\varvec{b}}-\widetilde{{\varvec{b}}}\Vert \). This will be done by induction on n. Our analysis aims not just to produce some error bound, but to express this error in terms that are easily understood, and which reveals the underlying inductive structure. Towards this end, we introduce the following \(\beta \)-bound function: if d is a positive integer and \(b\in {{\mathbb {C}}}\),

$$\begin{aligned} \beta (d,b){\mathrel {\,{:}{=}\,}}\sum _{i=0}^d |b|^i. \end{aligned}$$

A simple application of this \(\beta \)-bound is:

Lemma 8

Let \(b\in {{\mathbb {C}}}\) and \(f\in {{\mathbb {C}}}[z]\). If d is the degree of f, then

$$\begin{aligned} |f(b)|\le \Vert f\Vert \cdot \beta (d, b),\qquad |f'(b)|\le d\Vert f\Vert \cdot \beta (d-1, b). \end{aligned}$$

Note that \(\beta (d,b)\le \max \left\{ d+1, \frac{|b|^{d+1}-1}{|b|-1} \right\} \).

We first treat the case \(n=1\). It will serve as the base for the inductive proof. Its proof requires a complex version of the Mean Value Theorem. Since this result is not well-known, we provide a statement and proof.

Theorem 3

(Complex mean value theorem) If \(f:{{\mathbb {C}}}\rightarrow {{\mathbb {C}}}\) is holomorphic, then for any \(a, b\in {{\mathbb {C}}}\),

$$\begin{aligned} f(b)-f(a) = \omega \cdot (b-a)\cdot f'(\xi ) \end{aligned}$$

for some \(\xi \) in the line segment [ab] and some \(\omega \in {{\mathbb {C}}}\) with \(|\omega |\le 1\).


This is a simple application of a similarly little known theorem of Darboux [11] which gives a finite Taylor expansion of f; see Bünger’s formulation and proof in [3, Appendix]. For any \(k\ge 1\), the theorem says

$$\begin{aligned} f(b)=\sum _{i=0}^{k-1} \frac{(b-a)^i}{i!}f^{(i)}(a) + \omega \frac{(b-a)^k}{k!} f^{(k)}(\xi ) \end{aligned}$$

for some \(\xi \) in the line segment [ab] and \(\omega \in {{\mathbb {C}}}\) with \(|\omega |\le 1\). Choosing \(k=1\), \(f(b)=f(a)+\omega (b-a)f'(\xi )\) or \(f(b)-f(a)=\omega (b-a)f'(\xi )\). \(\square \)

Corollary 9

(Complex mean value inequality) For all \(a,b\in {{\mathbb {C}}}\), there is some \(\xi \in [a,b]\) such that

$$\begin{aligned} |f(b)-f(a)| \le |b-a|\cdot |f'(\xi )|. \end{aligned}$$

Lemma 10

(Case \(n=1\)) Let \(f,{\widetilde{f}}\in {{\mathbb {C}}}[z]\), \(b,\widetilde{b}\in {{\mathbb {C}}}\), and \({\varvec{d}}({\widetilde{f}})\le {\varvec{d}}(f) \le d\). If \({\widetilde{f}}= f{\pm }\delta _f\) and \(\widetilde{b}=b{\pm } \delta _b\), then:

  1. (i)

    \(|f(b)-f(\widetilde{b})|\)\(\le \)\(\delta _b\cdot \Vert f'\Vert \cdot \beta (d,|b|+\delta _b)\)   where \(f'\) is the differentiation of f.

  2. (ii)

    \(|f(\widetilde{b})-{\widetilde{f}}(\widetilde{b})|\)\(\le \)\(\delta _f \cdot \beta (d,|b|+\delta _b)\)

  3. (iii)

    \(|f(b)-{\widetilde{f}}(\widetilde{b})|\)\(\le \)\(\Big [ \delta _f + \delta _b \cdot \Vert f'\Vert \Big ]\cdot \beta (d,|b|+\delta _b).\)


  1. (i)

    By the complex mean value inequality (Corollary 9):

    $$\begin{aligned} | f(b) -f(\widetilde{b}) |\le & {} |b -\widetilde{b}| \cdot |f'(b{\pm }\delta _b)| \\\le & {} \delta _b \cdot \sum _{i=1}^{d} \left| i f_i (|b|+\delta _b)^{i-1} \right| \\\le & {} \delta _b \cdot \Vert f'\Vert \sum _{i=0}^{d-1} \left| (|b|+\delta _b)^i\right| . \end{aligned}$$
  2. (ii)


    $$\begin{aligned} | f(\widetilde{b}) -{\widetilde{f}}(\widetilde{b}) |= & {} \Big |\sum _{i=0}^d (f_i-{\widetilde{f}}_i)\widetilde{b}^i\Big | \\\le & {} \delta _f\cdot \sum _{i=0}^d \Big |\widetilde{b}^i\Big | \\\le & {} \delta _f\cdot \beta (d,|b|+\delta _b). \end{aligned}$$
  3. (iii)

    This follows from the triangular inequality

    $$\begin{aligned} | f(b) - {\widetilde{f}}(\widetilde{b}) | \le | f(b) -f(\widetilde{b}) | + |f(\widetilde{b}) - {\widetilde{f}}(\widetilde{b})|. \end{aligned}$$

    and the bounds in parts (i) and (ii).

\(\square \)

The appearance of \(\Vert f'\Vert \) in the above bound may be replaced by \(d\Vert f\Vert \). Below, we develop similar bounds on partial derivatives in the multivariate case. For a general \(n>1\), we need to generalize the notations:

$$\begin{aligned} f,{\widetilde{f}}\in {{\mathbb {C}}}[{\varvec{z}}],\qquad {\varvec{b}},\widetilde{{\varvec{b}}}\in {{\mathbb {C}}}^n \end{aligned}$$

satisfying \(\widetilde{{\varvec{b}}}={\varvec{b}}{\pm } \varvec{\delta }{\varvec{b}}\) (i.e., \(\widetilde{{\varvec{b}}}_i={\varvec{b}}_i {\pm } \varvec{\delta }{\varvec{b}}_i\) for each i). Let \({\varvec{d}}= {\varvec{d}}(f)\) (i.e., \({\varvec{d}}_i = \mathop {deg}_{{\varvec{z}}_i}(f)\) for each i). The support of f is \(\mathop {Supp}(f)\subseteq {{\mathbb {N}}}^n\) where \(f = \sum _{{\varvec{\alpha }}\in \mathop {Supp}(f)} c_{\varvec{\alpha }}{\varvec{z}}^{\varvec{\alpha }}\) where \(c_{\varvec{\alpha }}\in {{\mathbb {C}}}\setminus \left\{ 0 \right\} \). Here, \({\varvec{z}}^{\varvec{\alpha }}{\mathrel {\,{:}{=}\,}}\prod _{i=1}^n {\varvec{z}}_i^{{\varvec{\alpha }}_i}\). We assume that \(\mathop {Supp}({\widetilde{f}})\subseteq \mathop {Supp}(f)\).

Our induction variable is \(k=1,\ldots ,n\). For \({\varvec{\alpha }}\in {{\mathbb {N}}}^n\), let \(\pi _k({\varvec{\alpha }}){\mathrel {\,{:}{=}\,}}(0,\ldots ,0,{\varvec{\alpha }}_{k+1},\ldots ,{\varvec{\alpha }}_n)\). E.g., if \(k=n\) then \(\pi _k({\varvec{\alpha }})=\varvec{0}\). Thus \({\varvec{\alpha }}-\pi _k({\varvec{\alpha }}) = ({\varvec{\alpha }}_1,\ldots ,{\varvec{\alpha }}_k,0,\ldots ,0)\). Next define \(\mathop {Supp}_k(f){\mathrel {\,{:}{=}\,}}\left\{ \pi _k({\varvec{\alpha }}): {\varvec{\alpha }}\in \mathop {Supp}(f) \right\} \). With this notation, we can write

$$\begin{aligned} f = \sum _{{\varvec{\alpha }}\in \mathop {Supp}_k(f)} f_{\varvec{\alpha }}{\varvec{z}}^{\varvec{\alpha }}\end{aligned}$$

where each \(f_{\varvec{\alpha }}\in {{\mathbb {C}}}[{\varvec{z}}_{(k)}]\). E.g., if \(k=n\) then \(\mathop {Supp}_k(f)=\left\{ \varvec{0} \right\} \) and so \(f_{\varvec{0}}=f\).

Running Example Consider

$$\begin{aligned} f=xy+(x^3-1)y^2z + (x^2-y^2)z^3 \end{aligned}$$

where \({\varvec{z}}=(x,y,z)\). Then \(\mathop {Supp}(f)=\left\{ 110, 321, 021, 203, 023 \right\} \). We can represent f using the support \(\mathop {Supp}_1(f)=\left\{ 010, 021, 003, 023 \right\} \) as follows: \( f = f_{010}\cdot y+f_{021}\cdot y^2z + f_{003}\cdot z^3 f_{023}\cdot y^2z^3 \) where \(f_{010}=x\), \(f_{021}=x^3-1\), \(f_{003}=x^2\), \(f_{023}=-1\). Alternatively, using the support \(\mathop {Supp}_2(f)=\left\{ 000, 001, 003 \right\} \), we can write \( f = f_{000}+f_{001}\cdot z + f_{003}\cdot z^3 \) where \(f_{000}=xy\), \(f_{001}=(x^3-1)y^2\), \(f_{003}=(x^2-y^2)\).

Using (8), the partial specialization \(f({\varvec{b}}_{(k)})\in {{\mathbb {C}}}[z_{k+1},\ldots ,z_n]\) may be written

$$\begin{aligned} f({\varvec{b}}_{(k)}) = \sum _{{\varvec{\alpha }}\in \mathop {Supp}_k(f)} f_{\varvec{\alpha }}({\varvec{b}}_{(k)})\cdot {\varvec{z}}^{\varvec{\alpha }}\end{aligned}$$

It follows that

$$\begin{aligned} \Vert f({\varvec{b}}_{(k)})\Vert =\max _{{\varvec{\alpha }}\in \mathop {Supp}_k(f)} \Big |f_{\varvec{\alpha }}({\varvec{b}}_{(k)})\Big |. \end{aligned}$$

The k-th partial derivative is \(\partial _{k} f {\mathrel {\,{:}{=}\,}}\frac{\partial f}{\partial z_k} = \sum _{{\varvec{\alpha }}\in \mathop {Supp}_k(f)} (\partial _{k}f_{\varvec{\alpha }}) {\varvec{z}}^{\varvec{\alpha }}.\) Upon evaluation at \({\varvec{b}}_{(k)}\), its norm is given by

$$\begin{aligned} \Vert \partial _{k} f({\varvec{b}}_{(k)})\Vert =\max _{{\varvec{\alpha }}\in \mathop {Supp}_k(f)} \Big |\partial _{k} f_{\varvec{\alpha }}({\varvec{b}}_{(k)})\Big |. \end{aligned}$$

Using our running example (8), let \(k=2\). Then \(f=f_{000}+f_{001}\cdot z + f_{003}\cdot z^3\) with \(f_{001}=xy\), \(f_{001}=(x^3-1)y^2\), \(f_{003}=(x^2-y^2)\). Thus \(\partial _{2} f = x + (x^3-1)2y\cdot z -2y\cdot z^3\). If \({\varvec{b}}_{(2)}=(-1,3)\), then \(\Vert f({\varvec{b}}_{(2)})\Vert =\max \left\{ 3, 18, 8 \right\} =18\) and \(\Vert \partial _{2} f({\varvec{b}}_{(2)})\Vert =\max \left\{ 1, 12, 6 \right\} =12\).

We are ready for the generalization of Lemma 10.

Assume that we are given \(f,{\widetilde{f}}\in {{\mathbb {C}}}[{\varvec{z}}]={{\mathbb {C}}}[{\varvec{z}}_{(n)}]\) and \({\varvec{b}},\widetilde{{\varvec{b}}}\in {{\mathbb {C}}}\). Also the degree sequences satisfies \({\varvec{d}}({\widetilde{f}})\le {\varvec{d}}(f)\), that is the inequality holds componentwise. Then we may define these quantities for \(k=1,\ldots ,n\):

$$\begin{aligned} \begin{array}{llll} \delta _k {\varvec{b}}&{}{\mathrel {\,{:}{=}\,}}&{} |{\varvec{b}}_k -\widetilde{{\varvec{b}}}_k|, \\ \delta _k f &{}{\mathrel {\,{:}{=}\,}}&{} \Vert f({\varvec{b}}_{(k)})-{\widetilde{f}}(\widetilde{{\varvec{b}}}_{(k)})\Vert &{} \qquad (\text {with } \delta _0 f=\Vert f-{\widetilde{f}}\Vert ),\\ {\varvec{\beta }}_k &{}{\mathrel {\,{:}{=}\,}}&{} \beta ({\varvec{d}}_k, {\varvec{b}}_k) \\ \widetilde{\varvec{\beta }}_k &{}{\mathrel {\,{:}{=}\,}}&{} \beta ({\varvec{d}}_k, |{\varvec{b}}_k| + \delta _k{\varvec{b}}). \end{array} \end{aligned}$$

Note that \(\delta _k\) is a operator that must attach to some function f or vector \({\varvec{b}}\) to denote the “kth perturbation” of f or \({\varvec{b}}\). We may restate Lemma 10(iii) using the new notations:

Corollary 11

For a univariate f,

$$\begin{aligned} \delta _1 f \le \Big [ \delta _0 f + \delta _1 {\varvec{b}}\cdot {\varvec{d}}_1 \cdot \Vert f\Vert \Big ]\widetilde{\varvec{\beta }}_1. \end{aligned}$$

We now address the case of multivariate f:

Lemma 12

(=Lemma 5 in Text) For \(n\ge 1\) and each \(k=1,\ldots ,n\):

  1. (i)

    \(\Vert f({\varvec{b}}_{(k)})-f({\varvec{b}}_{(k-1)})(\widetilde{{\varvec{b}}}_k) \Vert \)\(\le \)\(\delta _k {\varvec{b}}\cdot \Vert \partial _{k}f({\varvec{b}}_{(k-1)})\Vert \cdot \widetilde{\varvec{\beta }}_k\).

  2. (ii)

    \(\Vert f({\varvec{b}}_{(k-1)})(\widetilde{{\varvec{b}}}_k)-{\widetilde{f}}(\widetilde{{\varvec{b}}}_{(k)})\Vert \)\(\le \)\(\delta _{k-1} f \cdot \widetilde{\varvec{\beta }}_k\).

  3. (iii)

    \(\delta _k f\)\(\le \)\(\Big [ \delta _k {\varvec{b}}\cdot \Vert \partial _{k}f({\varvec{b}}_{(k-1)})\Vert + \delta _{k-1} f \Big ]\cdot \widetilde{\varvec{\beta }}_k\).


We note that (iii) amounts to adding the inequalities of (i) and (ii): specifically, \(\delta _k f \le \Vert f({\varvec{b}}_{(k)})-f({\varvec{b}}_{(k-1)})(\widetilde{{\varvec{b}}}_k) \Vert + \Vert f({\varvec{b}}_{(k-1)})(\widetilde{{\varvec{b}}}_k)-{\widetilde{f}}(\widetilde{{\varvec{b}}}_{(k)})\Vert \). Thus we only have to verify (i) and (ii). This will be shown by induction on k.

Suppose \(k=1\). This will be an application of Lemma 10(i) and (ii). We use the fact that \(f = \sum _{{\varvec{\alpha }}\in \mathop {Supp}_1(f)} f_{\varvec{\alpha }}{\varvec{z}}^{\varvec{\alpha }}\), and \(f({\varvec{b}}_{(k-1)})=f({\varvec{b}}_{(0)})=f\). Then (i) becomes

$$\begin{aligned} \begin{array}{llll} \Vert f({\varvec{b}}_1)-f(\widetilde{{\varvec{b}}}_1) \Vert &{}=&{} \Vert \sum _{{\varvec{\alpha }}\in \mathop {Supp}_1(f)} (f_{\varvec{\alpha }}({\varvec{b}}_1)- f_{\varvec{\alpha }}(\widetilde{{\varvec{b}}}_1)) {\varvec{z}}^{\varvec{\alpha }}\Vert \\ &{}=&{} \max _{{\varvec{\alpha }}\in \mathop {Supp}_1(f)} |f_{\varvec{\alpha }}({\varvec{b}}_1)- f_{\varvec{\alpha }}(\widetilde{{\varvec{b}}}_1)| \\ &{}\le &{} \max _{{\varvec{\alpha }}\in \mathop {Supp}_1(f)} \delta _1{\varvec{b}}\cdot \Vert f_{\varvec{\alpha }}^{'}\Vert \cdot \widetilde{\varvec{\beta }}_1 &{} (\text {by } Lemma~10(i)) \\ &{}=&{} \max _{{\varvec{\alpha }}\in \mathop {Supp}_1(f)} \delta _1{\varvec{b}}\cdot \Vert \partial _{1} f_{\varvec{\alpha }}\Vert \cdot \widetilde{\varvec{\beta }}_1\\ &{}=&{} \delta _1{\varvec{b}}\cdot \Vert \partial _{1} f\Vert \cdot \widetilde{\varvec{\beta }}_1. \end{array} \end{aligned}$$

Similarly, (ii) follows from

$$\begin{aligned} \begin{array}{llll} \Vert f(\widetilde{{\varvec{b}}}_1)-{\widetilde{f}}(\widetilde{{\varvec{b}}}_1) \Vert &{}=&{} \Vert \sum _{{\varvec{\alpha }}\in \mathop {Supp}_1(f)} (f_{\varvec{\alpha }}(\widetilde{{\varvec{b}}}_1)- {\widetilde{f}}_{\varvec{\alpha }}(\widetilde{{\varvec{b}}}_1)) {\varvec{z}}^{\varvec{\alpha }}\Vert \\ &{}=&{} \max _{{\varvec{\alpha }}\in \mathop {Supp}_1(f)} \Big |f_{\varvec{\alpha }}(\widetilde{{\varvec{b}}}_1)-{\widetilde{f}}_{\varvec{\alpha }}(\widetilde{{\varvec{b}}}_1)\Big |\\ &{}\le &{} \max _{{\varvec{\alpha }}\in \mathop {Supp}_1(f)} \delta _{f_{\varvec{\alpha }}}\cdot \widetilde{\varvec{\beta }}_1 &{} (\text {by } Lemma~10(ii)) \\ &{}=&{} \Vert f -{\widetilde{f}}\Vert \cdot \widetilde{\varvec{\beta }}_1\\ &{}=&{} \delta _0 f \cdot \widetilde{\varvec{\beta }}_1. \end{array} \end{aligned}$$

Suppose \(k>1\). We now prove (i). The left hand side (LHS) \(\Vert f({\varvec{b}}_{(k)})-f({\varvec{b}}_{(k-1)})(\widetilde{{\varvec{b}}}_k) \Vert \) is the maximum of

$$\begin{aligned} |f_{\varvec{\alpha }}({\varvec{b}}_{(k)}) -f_{\varvec{\alpha }}({\varvec{b}}_{(k-1)})(\widetilde{{\varvec{b}}}_k)| \end{aligned}$$

where \({\varvec{\alpha }}\) ranges over \(\mathop {Supp}_k(f)\). We can rewrite (A) in the form \(|f_{\varvec{\alpha }}({\varvec{b}}_{(k-1)})({\varvec{b}}_k) -f_{\varvec{\alpha }}({\varvec{b}}_{(k-1)})(\widetilde{{\varvec{b}}}_k)|\). Applying Lemma 10(i), we can upper bound (A) by “\(\delta _b\cdot \Vert f'\Vert \cdot \beta (d,|b|+\delta _b)\)” where “\(\delta _b\)” here is \(|{\varvec{b}}_k-\widetilde{{\varvec{b}}}_k|=\delta _k\), “\(\Vert f'\Vert \)” is \(\Vert \partial _{k}f_{\varvec{\alpha }}({\varvec{b}}_{(k-1)})\Vert \) and “\(\beta (d,|b|+\delta _b)\)” is \({\varvec{\beta }}_k\). This establishes (i). Finally (ii) is proved by a similar invocation of Lemma 10(ii). \(\square \)

We now have a recursive bound \(\Vert \delta _n f\Vert \). But we need to convert the bound to only depend on the data \(\Vert {\varvec{b}}\Vert , \Vert f\Vert , \delta _k{\varvec{b}}\). In particular, we remove any occurrences of \(\partial _{k}f_{\varvec{\alpha }}\) with the help of the next lemma:

Lemma 13

(= Lemma 6 in Text) For \(k=1,\ldots ,n\):

  1. (i)

    \(\Vert f({\varvec{b}}_{(k)})\Vert \le \Vert f\Vert \cdot \prod _{i=1}^k {\varvec{\beta }}_i\)

  2. (ii)

    For \({\varvec{\alpha }}\in \mathop {Supp}_k(f)\),

    $$\begin{aligned} \Big \Vert \partial _{k}f_{\varvec{\alpha }}({\varvec{b}}_{(k-1)})\Big \Vert \le {\varvec{d}}_k\cdot \Vert f_{\varvec{\alpha }}({\varvec{b}}_{(k-1)})\Vert . \end{aligned}$$
  3. (iii)

    \(\Vert \partial _{k}f({\varvec{b}}_{(k-1)})\Vert \le {\varvec{d}}_k \cdot \Vert f\Vert \cdot \prod _{i=1}^{k-1} {\varvec{\beta }}_i\)


  1. (i)

    The LHS of the inequality is equal to the maximum of \(|f_{\varvec{\alpha }}({\varvec{b}}_{(k)})|\) where \({\varvec{\alpha }}\in \mathop {Supp}_k(f)\). First consider \(k=1\). In this case, \(f_{\varvec{\alpha }}\) is a univariate polynomial in \({\varvec{z}}_1\) of degree at most \({\varvec{d}}_1\), say \(f_{\varvec{\alpha }}({\varvec{z}}_1)=\sum _{i=0}^{{\varvec{d}}_1}c_i {\varvec{z}}_1^i\) where c is a coefficient of f. By Lemma 8,

    $$\begin{aligned} |f_{\varvec{\alpha }}({\varvec{b}}_1)| \le \Vert f_{\varvec{\alpha }}\Vert {\varvec{\beta }}_1 \le \Vert f\Vert {\varvec{\beta }}_1, \end{aligned}$$

    proving the result for \(k=1\). For \(k>1\), each \(f_{\varvec{\alpha }}\) is a polynomial in \({\varvec{z}}_{(k)}\), and we can write \(f_{\varvec{\alpha }}({\varvec{b}}_{(k)})\) as \(f_{\varvec{\alpha }}({\varvec{b}}_{(k-1)})({\varvec{b}}_k)\). By induction, the polynomial \(f_{\varvec{\alpha }}({\varvec{b}}_{(k-1)})({\varvec{z}}_k)\) has norm at most \(\Vert f\Vert \cdot \prod _{i=1}^{k-1}{\varvec{\beta }}_i\). Moreover, its degree is at most \({\varvec{d}}_k\). So evaluating it at \({\varvec{b}}_k\) gives a value of size at most \(\Vert f\Vert \cdot \prod _{i=1}^{k}{\varvec{\beta }}_i\).

  2. (ii)

    Write \(f_{\varvec{\alpha }}({\varvec{b}}_{(k-1)}) = \sum _{i=0}^{{\varvec{d}}_k} c_i {\varvec{z}}_k^i\) where \(c_i\in {{\mathbb {C}}}\) satisfies \(|c_i|\le \Vert f_{\varvec{\alpha }}({\varvec{b}}_{(k-1)})\Vert \). Thus \(\partial _{k}f_{\varvec{\alpha }}({\varvec{b}}_{(k-1)})\) is a polynomial with norm

    $$\begin{aligned} \Big \Vert \partial _{k}f_{\varvec{\alpha }}({\varvec{b}}_{(k-1)})\Big \Vert \le {\varvec{d}}_k \Vert f_{\varvec{\alpha }}({\varvec{b}}_{(k-1)})\Vert . \end{aligned}$$
  3. (iii)

    Letting \({\varvec{\alpha }}\) range over \(\mathop {Supp}_k(f)\),

    $$\begin{aligned} \begin{array}{llll} \Vert \partial _{k}f({\varvec{b}}_{(k-1)})\Vert &{}=&{} \max _{{\varvec{\alpha }}} \Vert \partial _{k}f_{\varvec{\alpha }}({\varvec{b}}_{(k-1)})\Vert &{}\\ &{}\le &{} \max _{{\varvec{\alpha }}} {\varvec{d}}_k \cdot \Vert f_{\varvec{\alpha }}({\varvec{b}}_{(k-1)})\Vert &{} \qquad (\text {from part (ii) second formula})\\ &{}\le &{} {\varvec{d}}_k \cdot \max _{{\varvec{\alpha }}} \Vert f_{\varvec{\alpha }}({\varvec{b}}_{(k-1)})\Vert \\ &{}\le &{} {\varvec{d}}_k \cdot \Vert f({\varvec{b}}_{(k-1)})\Vert \\ &{}\le &{} {\varvec{d}}_k \cdot \Vert f\Vert \cdot \prod _{i=1}^{k-1}{\varvec{\beta }}_i &{} \qquad (\text {from part (i)})\\ \end{array} \end{aligned}$$

\(\square \)

Putting it all together:

Theorem 4

(=Theorem 2 in Text) For \(k=1,\ldots ,n\),

$$\begin{aligned} \delta _k f \le \Big [ \delta _0 f + \Vert f\Vert \cdot \sum _{i=1}^k {\varvec{d}}_i\cdot \delta _i {\varvec{b}}\Big ] \cdot \Big (\prod _{i=1}^k \widetilde{\varvec{\beta }}_i\Big ). \end{aligned}$$


When \(k=1\), our formula is

$$\begin{aligned} \delta _1 f \le \Big [ \delta _0 f + \Vert f\Vert \cdot {\varvec{d}}_1\cdot \delta _1 {\varvec{b}}\Big ] \widetilde{\varvec{\beta }}_1. \end{aligned}$$

follows from the case \(k=1\) of Lemma 12(iii). For \(k>1\), we use induction:

$$\begin{aligned} \delta _k f\le & {} \Big [ \delta _k {\varvec{b}}\cdot \Vert \partial _{k}f({\varvec{b}}_{(k-1)})\Vert + \delta _{k-1} f \Big ]\cdot \widetilde{\varvec{\beta }}_k\,\, \qquad \qquad \qquad \qquad \qquad \qquad \qquad \quad \qquad \qquad \text {(By Lemma~12(iii)}\\\le & {} \Big [ \delta _k {\varvec{b}}\cdot \Vert \partial _{k}f({\varvec{b}}_{(k-1)})\Vert + \Big \{ \delta _0 f + \Vert f\Vert \cdot \sum _{i=1}^{k-1} {\varvec{d}}_i\cdot \delta _i {\varvec{b}}\Big \} \cdot \Big (\prod _{i=1}^{k-1} \widetilde{\varvec{\beta }}_i\Big ) \Big ] \cdot \widetilde{\varvec{\beta }}_k\,\, \qquad \quad \text {(By induction)}\\\le & {} \Big [ \delta _k {\varvec{b}}\cdot {\varvec{d}}_k \cdot \Vert f\Vert \cdot \Big (\prod _{i=1}^{k-1} {\varvec{\beta }}_i\Big ) + \Big \{ \delta _0 f + \Vert f\Vert \cdot \sum _{i=1}^{k-1} {\varvec{d}}_i\cdot \delta _i {\varvec{b}}\Big \} \cdot \Big (\prod _{i=1}^{k-1} \widetilde{\varvec{\beta }}_i\Big ) \Big ] \cdot \widetilde{\varvec{\beta }}_k\,\,\,\, \text {(By Lemma~13(iii))}\\\le & {} \Big [ \delta _k {\varvec{b}}\cdot {\varvec{d}}_k \cdot \Vert f\Vert + \Big \{ \delta _0 f + \Vert f\Vert \cdot \sum _{i=1}^{k-1} {\varvec{d}}_i\cdot \delta _i {\varvec{b}}\Big \} \Big ] \cdot \Big (\prod _{i=1}^{k} \widetilde{\varvec{\beta }}_i\Big )\,\,\,\,\, \qquad \qquad \qquad \qquad \text {(since }{\varvec{\beta }}_i\le \widetilde{\varvec{\beta }}_i)\\= & {} \Big [ \delta _0 f + \Vert f\Vert \cdot \sum _{i=1}^{k} {\varvec{d}}_i\cdot \delta _i {\varvec{b}}\Big ] \cdot \Big (\prod _{i=1}^{k} \widetilde{\varvec{\beta }}_i\Big ). \end{aligned}$$

\(\square \)

The next lemma answers the question: given \(\delta _L>0\), how can we ensure that

$$\begin{aligned} \delta _{n-1}f {\mathrel {\,{:}{=}\,}}\Vert f({\varvec{b}}_{(n-1)})-{\widetilde{f}}(\widetilde{{\varvec{b}}}_{(n-1)})\Vert \end{aligned}$$

is upper bounded by \(\delta _L\)?

Lemma 14

(=Lemma 7 in Text)

Given \(\delta _L>0\), \(f,{\widetilde{f}}\in {{\mathbb {C}}}[{\varvec{z}}]\) and \({\varvec{b}},\widetilde{{\varvec{b}}}\in {\mathbb {C}}^{n-1}\) where \(n>1\).

Let \(d=\max _i (\mathop {deg}_{{{z}}_i}(f))\) and \(M=\Vert {\varvec{b}}\Vert +1\).


$$\begin{aligned} \delta _f \le \frac{\delta _L}{2((d+1)M^d)^{n-1}} \quad (*) \end{aligned}$$


$$\begin{aligned} \delta _{\varvec{b}}\le \min (1, \frac{\delta _L}{2d\Vert f\Vert (n-1)((d+1)M^d)^{n-1}}), \quad {(**)} \end{aligned}$$


$$\begin{aligned} \delta _{n-1} f \le \delta _L. \end{aligned}$$


Note that \(\delta _f {\mathrel {\,{:}{=}\,}}\Vert f-{\widetilde{f}}\Vert \) in (*) and \(\delta _{\varvec{b}}{\mathrel {\,{:}{=}\,}}\Vert {\varvec{b}}-\widetilde{{\varvec{b}}}\Vert \) in (**). Since \(\delta _{\varvec{b}}\le 1\), we conclude that \(\Vert \widetilde{{\varvec{b}}}\Vert \le M\). Using the bounds \({\varvec{\beta }}_k\le \widetilde{\varvec{\beta }}_k\le (d+1)M^d\), the bound of Theorem 4 for the case \(k=n-1\) becomes

$$\begin{aligned} \delta _{n-1} f\le & {} \Big (\prod _{i=1}^{n-1} \widetilde{\varvec{\beta }}_i\Big ) \Big [ \delta _f + \Vert f\Vert \cdot \sum _{i=1}^{n-1} \Big ( {\varvec{d}}_i\cdot \delta _i {\varvec{b}}\Big ) \Big ]\\\le & {} \Big ((d+1)M^d \Big )^{n-1} \Big [ \delta _f + d\Vert f\Vert \delta _{\varvec{b}}(n-1) \Big ]. \end{aligned}$$

The inequalities (*) on \(\delta _f\), and (**) on \(\delta _{\varvec{b}}\), are designed to ensure that \(\delta _{n-1} f \le \delta _L\). \(\square \)

Rights and permissions

Reprints and Permissions

About this article

Verify currency and authenticity via CrossMark

Cite this article

Imbach, R., Pouget, M. & Yap, C. Clustering Complex Zeros of Triangular Systems of Polynomials. Math.Comput.Sci. (2020).

Download citation


  • Complex root finding
  • Triangular polynomial system
  • Near-optimal root isolation
  • Certified algorithm
  • Complex root isolation
  • Oracle multivariable polynomial
  • Subdivision algorithm
  • Pellet’s theorem

Mathematics Subject Classification

  • 65H10
  • 30C15
  • 65G00