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") 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 >> |