Main Content

polynomialReduce

除算による多項式の簡約

説明

r = polynomialReduce(p,d) は、symvar によって決まる p 内の変数すべてについて、 d による p多項式の簡約を返します。入力 d は多項式のベクトルにすることができます。

r = polynomialReduce(p,d,vars)vars 内の多項式変数を使用します。

r = polynomialReduce(___,'MonomialOrder',MonomialOrder) は、前述の構文の入力引数に加えて指定された単項式順序も使用します。オプションは、'degreeInverseLexicographic''degreeLexicographic'、または 'lexicographic' です。既定では、polynomialReduce'degreeInverseLexicographic' を使用します。

[r,q] = polynomialReduce(___) はまた、q に商も返します。

すべて折りたたむ

x^3 - x*y^2 + 1x + y によって除算された場合の商と余りを求めます。

syms x y
p = x^3 - x*y^2 + 1;
d = x + y;
[r,q] = polynomialReduce(p,d)
r =
1
q =
x^2 - y*x

商と余りから元の多項式を再構成します。isAlways を使用して、再構成された多項式が p に等しいことをチェックします。

pOrig = expand(sum(q.*d) + r);
isAlways(p == pOrig)
ans =
  logical
   1

多項式変数は、polynomialReduce の 2 番目の引数として指定します。

a をシンボリック パラメーターとして、多項式変数 [x y] を使用して exp(a)*x^2 + 2*x*y + 1x - y で除算します。

syms a x y
p = exp(a)*x^2 + 2*x*y + 1;
d = x - y;
vars = [x y];
r = polynomialReduce(p,d,vars)
r =
(exp(a) + 2)*y^2 + 1

x^5 - x*y^6 - x*yx^2 + yx^2 - y^3 で簡約します。

syms x y
p = x^5 - x*y^6 - x*y;
d = [x^2 + y, x^2 - y^3];
[r,q] = polynomialReduce(p,d)
r =
-x*y
q =
[ x^3 - x*y^3, x*y^3 - x*y]

商と余りから元の多項式を再構成します。isAlways を使用して、再構成された多項式が p に等しいことをチェックします。

pOrig = expand(q*d.' + r);
isAlways(p == pOrig)
ans =
  logical
   1

既定では、polynomialReduce は項の順序 degreeInverseLexicographic によって多項式の項を順序付けます。名前と値のペアの引数 'MonomialOrder' を使用して項の順序を lexicographic または degreeLexicographic に変更します。

項の順序 lexicographic を使用して 2 つの多項式を除算します。

syms x y
p = x^2 + y^3 + 1;
d = x - y^2;
r = polynomialReduce(p,d,'MonomialOrder','lexicographic')
r =
y^4 + y^3 + 1

項の順序 degreeLexicographic を使用して同じ多項式を除算します。

r = polynomialReduce(p,d,'MonomialOrder','degreeLexicographic')
r =
x^2 + y*x + 1

入力引数

すべて折りたたむ

除算される多項式。シンボリック式またはシンボリック関数として指定します。

除算する多項式。シンボリック式またはシンボリック関数、あるいはシンボリック式またはシンボリック関数のベクトルとして指定します。

多項式の変数。シンボリック変数のベクトルとして指定します。

除数の単項式順序。'degreeInverseLexicographic''degreeLexicographic'、または 'lexicographic' として指定します。vars を指定した場合、polynomialReducevars 内の変数の順序に基づいて変数を並べ替えます。

  • lexicographic は、辞書式順序を使用して多項式の項を並べ替えます。

  • degreeLexicographic は、各項の全次数に応じて多項式の項を並べ替えます。項の全次数が等しい場合、polynomialReduce は項を辞書式順序で並べ替えます。

  • degreeInverseLexicographic は、各項の全次数に応じて多項式の項を並べ替えます。項の全次数が等しい場合、polynomialReduce は項を逆辞書式順序で並べ替えます。

出力引数

すべて折りたたむ

多項式の除算の余り。シンボリック多項式として返されます。

多項式の除算の商。シンボリック多項式、あるいはシンボリック多項式のベクトルとして返されます。

詳細

すべて折りたたむ

多項式の簡約

多項式の縮小とは、除数の多項式 d1, d2, …, dn による多項式 p の除算のことです。除数の多項式の項は、特定の項の順序に従って配列されます。商 q1, q2, …, qn と余り r は、次の方程式を満たします。

p=q1d1+q2d2++qndn+r.

r の項は、除数 d1, d2, …, dn のいずれの最初の項でも除算できません。

バージョン履歴

R2018a で導入