<< simp_mode Polynomials varn >>

Scilab Help >> Polynomials > sylm

sylm

シルベスタ行列

呼び出し手順

S = sylm(a, b)

パラメータ

a,b

実数または複素数を係数とする2つの多項式.

S

実数または複素数の正方行列, サイズは degree(a*b) です.

説明

sylm(a,b) は,多項式aおよびb に関連するシルベスタ行列,すなわち, 以下のような行列Sを出力します:

coeff( a*x + b*y )' = S * [coeff(x)';coeff(y)'].

a およびbが規約分解多項式の場合,

rank(sylm(a,b))=degree(a)+degree(b)) となります. また,以下の命令は,

u = sylm(a,b) \ eye(na+nb,1)
x = poly(u(1:nb),'z','coeff')
y = poly(u(nb+1:na+nb),'z','coeff')

べズー分解,つまり, a*x+b*y = 1となるような最小次数の x および yを計算します.

x = poly(0,"x");
y = poly([1, 2, 3], "x", "coeff")
sylm(x, y)
--> x = poly(0, "x");
--> y = poly([1, 2, 3], "x","coeff")
 y  =
  1 +2x +3x²

--> sylm(x, y)
 ans  =
   0.   0.   1.
   1.   0.   2.
   0.   1.   3.

Resultant of two polynomials: It can be defined as the determinant of the Sylvester matrix of the two polynomials. It is null if and only if both polynomials have at least one common root.

a = poly([1 2 3 4], "x", "roots")
b = poly([-2 -1 5], "x", "roots")
det(sylm(a, b))

// Simpler case:
det(sylm((%s+1)^5, (%s+3)^3))
(-3 -(-1))^(5*3)     // Expected resultant
--> a = poly([1 2 3 4],"x","roots")
 a  =
  24 -50x +35x² -10x³ +x⁴

--> b = poly([-2 -1 5],"x","roots")
 b  =
  -10 -13x -2x² +x³

--> det(sylm(a,b))
 ans  =
   1036800.0

--> // Simpler case:
--> det(sylm((%s+1)^5,(%s+3)^3))
 ans  =
  -32768.000

--> (-3 -(-1))^(5*3)     // Expected resultant
 ans  =
  -32768.

参照


Report an issue
<< simp_mode Polynomials varn >>