fullseye

poly_roots — MATH interp_poly op

使い方

All roots of a polynomial (coefficients highest-power-first) — complex included.

Roots are the eigenvalues of the companion matrix (np.roots); the polynomial must have degree ≥ 1 and a non-zero leading coefficient (fail-closed: a zero leading coefficient means the stated degree is a lie — trim it explicitly rather than have it silently dropped).

Returns complex128, sorted by real part then imaginary part (deterministic). Complex answers are honest answers: x² + 1 really does have roots ±i, and hiding them would misreport the polynomial. Pass real_only=True to keep only roots whose imaginary part is negligible (|imag| <= imag_tol * max(1, |root|)) and get them back as a sorted float64 array — possibly empty, which is the correct answer for x² + 1.

Numerical note: root-finding conditioning degrades with degree and with clustered roots (a double root moves ~sqrt(eps) under coefficient noise — Wilkinson’s classic analysis); treat high-degree roots as approximate. HALCON: no root-finding tuple operator.

ファミリ共通の入力契約(fail-closed)

mathops の全 op は入力を検証してから計算する(黙って通さない):

詳しい使い方ガイド

参考(サンプルデータ・文献)

実行できる例(この op を実際に呼ぶ検証済みサンプル)

型が繋がる次の op(roots を入力に取れる)

同カテゴリ(interp_poly)

interp_linear · interp_cubic · interp_scattered · poly_fit · poly_eval


Provenance: mathops.py — MATH operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.