多項式実ゼロ (複数)カウンタ
- 更新日2025-07-30
- 4分で読める
ゼロの値を決定せずに、開始および終了によって定義された実数区間の実多項式P(x)のゼロの数を計算します。

入力/出力
P(x)
—
P(x)は、多項式を表す配列です。この配列の最初の要素はP(x)の定数係数に関係します。
開始
—
開始は、区間の左端のポイントです。デフォルトは0.0です。
終了
—
終了は、区間の右端のポイントです。デフォルトは0.0です。
ゼロ数
—
ゼロ数は、区間(開始,終了)内にあるP(x)のゼロの正確な数です。
エラー
—
エラーは、VIからのエラーまたは警告を返します。開始が終了より大きい場合、アプリケーションはエラーと判断します。エラーは「エラーコードからエラークラスタ」VIに配線して、エラーコードまたは警告をエラークラスタに変換できます。 |
このVIは、Sturmアルゴリズムを使ってゼロの数を計算します。シュトゥルムアルゴリズムは2つの状態を処理します。p(x)をxの実多項式、p'(x)をp(x)の微分係数とします。d(x)がp(x)とp'(x)の最大公約数を表す場合は、
d(x) = gcd(p(x), p´(x))ここで、d(x) が非定数多項式の場合、p(x) には複数のゼロがあります。つまり、多項式p(x)/d(x) は単一のゼロのみを持つことになります。
この構想を繰り返して、各多項式が単一の実数のゼロを含む単純な多項式の積として多項式p(x)を組み合わせることができます。p(x) のゼロの数は、単一のゼロしか含まない定義済みの単純多項式のすべてのゼロの合計に等しくなります。
単一のゼロの特性を持つ実多項式p(x) のゼロの数を求めるには、以下のユークリッドアルゴリズムを使用します。
p(x) =q1(x)p1(x) -p2(x) p1(x) =q2(x)p2(x) -p3(x) ⋮ pr - 2(x) =qr - 1(x)pr - 1(x) - pr(x)Strurmチェーン
(p(x), p1(x), …, pr(x))を使用して、W(開始)およびW(終了)の2つの値を決定します。W(x)は、チェーンの符号変更数です。
(p(x), p1(x), …, pr(x))p(x)のすべてのゼロの数は、W(終了) – W(開始)と完全に一致します。
実数多項式のすべての実数ゼロに興味がある場合は、次のように選びます。
start = -max{(|a0|+ ... +|an-1|)/|an|, 1}
であり、 end = max{(|a0|+ ... +|an-1|)/|an|, 1}
ここで、a0,a1, ..., an は多項式の要素である。
P(x)
—
開始
—
ゼロ数
—