CoefficientArrays[polys,vars]
多項式 polys の変数 vars の係数の配列を与える.
CoefficientArrays
CoefficientArrays[polys,vars]
多項式 polys の変数 vars の係数の配列を与える.
詳細とオプション
- CoefficientArraysはSparseArrayオブジェクトを含むリストを与える.SparseArrayオブジェクトはNormalを使って通常の配列に変換することができる.
- CoefficientArrays[polys,vars]が{m0,m1,m2,…}を与えるなら,polys をm0+m1.vars+m2.vars.vars+… として再構築することができる. »
- lhs==rhs という形を持つ polys の要素はどれも多項式 lhs-rhs に対応すると取れる. »
- CoefficientArrays[polys,{form1,form2,…}]はpolys 中の,formi のいずれかと一致するあらゆる式を変数と解釈する.
- CoefficientArrays[polys]はCoefficientArrays[polys,Variables[polys]]と等価である.
- リストCoefficientArrays[polys,vars]の長さは polys の全次数に1足したものと等価である.
- mi は階数
の疎な配列である. - 最初の要素 m0 はリストpolys と同じ長さである.
- polys がリストではなく1つの多項式である場合,m0 もまたリストではない.
- 線形方程式の場合,Thread[polys==0]の解はLinearSolve[m1,-m0]で与えられる.
- 非線形方程式の場合,mi は一意的ではない.デフォルトで,CoefficientArraysは変数が vars と同じ順序で現れる単項式にしか非零の係数を割り当てない.
- CoefficientArrays[polys,vars,"Symmetric"->True]はすべての mi をすべての指標で左右対称にする.結果の配列は一般にそれほど疎ではなくなる.
例題
すべて開く すべて閉じる例 (1)
CoefficientArrays[{a + x - y - z == 0, b + x + 2y + z == 0}, {x, y, z}]Normal[%]スコープ (4)
CoefficientArrays[2x + 3y + 4z + 5, {x, y, z}]Normal[%]CoefficientArrays[{2x + 3y + 4z + 5, 6x + 7y + 8z + 9}, {x, y, z}]Normal[%]CoefficientArrays[{(x + y + 1) ^ 2, (x - y - 2) ^ 3}, {x, y}]Normal[%]CoefficientArrays[{c + x ^ 2 - z == 0, x ^ 2 + 2y + z ^ 2 == 0}, {x, y, z}]Normal[%]オプション (1)
"Symmetric" (1)
CoefficientArrays[a x ^ 2 + b x y + c y ^ 2 + d x + e y + f, {x, y}]//Normal"Symmetric"->Trueとすると,CoefficientArraysは対称配列を返す:
CoefficientArrays[a x ^ 2 + b x y + c y ^ 2 + d x + e y + f, {x, y}, "Symmetric" -> True]//Normalアプリケーション (1)
線形方程式をLinearSolveに適した配列に変換する:
eqns = {2x + 3y + 4z == 5, 9x + 8y + 7z == 6, x + 9y + 2z == 8};{b, m} = CoefficientArrays[eqns, {x, y, z}]LinearSolve[m, -b]{x, y, z} /. Solve[eqns, {x, y, z}]特性と関係 (3)
多項式はDot (.)を使って再構成できる:
v = {x, y};f = Expand[(2x + 3y) ^ 2 + y ^ 3]c = CoefficientArrays[f, v]c[[1]] + c[[2]].v + c[[3]].v.v + c[[4]].v.v.v//Expandf = Expand[(2x + 3y) ^ 2 + y ^ 3]CoefficientArrays[f, {x, y}, "Symmetric" -> True]//NormalTable[D[f, {{x, y}, n}] / n!, {n, 0, 3}] /. {x -> 0, y -> 0}CoefficientArraysは総次数で並べられた多項式係数の配列のリストを返す:
f = (3x + 5y) ^ 4;ca = CoefficientArrays[f, {x, y}]CoefficientListは係数のテンソルを返す:
cl = CoefficientList[f, {x, y}]Coefficientを使って
の係数を求める:
Coefficient[f, x y ^ 3]caでは,この係数の位置は a 1と b 2が連結されて a+b+1となる(1と2は第1変数と第2変数を表す):
ca[[5, 1, 2, 2, 2]]clでは,x^a y^b の係数は位置{a+1,b+1}における要素である:
cl[[1 + 1, 1 + 3]]テクニカルノート
履歴
2003 で導入 (5.0)
テキスト
Wolfram Research (2003), CoefficientArrays, Wolfram言語関数, https://reference.wolfram.com/language/ref/CoefficientArrays.html.
CMS
Wolfram Language. 2003. "CoefficientArrays." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/CoefficientArrays.html.
APA
Wolfram Language. (2003). CoefficientArrays. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/CoefficientArrays.html
BibTeX
@misc{reference.wolfram_2026_coefficientarrays, author="Wolfram Research", title="{CoefficientArrays}", year="2003", howpublished="\url{https://reference.wolfram.com/language/ref/CoefficientArrays.html}", note=[Accessed: 04-September-2026]}
BibLaTeX
@online{reference.wolfram_2026_coefficientarrays, organization={Wolfram Research}, title={CoefficientArrays}, year={2003}, url={https://reference.wolfram.com/language/ref/CoefficientArrays.html}, note=[Accessed: 04-September-2026]}