Product 
詳細とオプション
- Product[f,{i,imax}]は
f と入力できる. - ∏は
prod
または\[Product]と入力できる. - Product[f,{i,imin,imax}]は
f と入力できる. - 極限は,通常の入力では∏の真下付き文字と真上付き文字で,他のテキストに入れ込まれる場合は下付き文字と上付き文字で表される.
- Productは,Wolfram言語の標準的な反復の指定を使用する.
- 反復変数 i は,実質的にBlockを使って局所的なものとして取り扱われる.
- 乗積範囲が有限の場合,一般に i には一連の値が割り当てられ,そのそれぞれについて f が評価される.
- 多乗積では,最も外側の変数の範囲がまず与えられる.
- 乗積の極限は数値である必要はなく,Infinityあるいは記号式でもよい.
- 乗積が有限個の項で乗ずることにより具体的に実行できない場合,Productは記号的な結果を求めることを試みる.この際,f が初めに記号的に評価される.
- 不定形の積
は連続する
を持つ項の割合が
を返すと定義できる. - 定和分と不定和分はどのような順序ででも混ぜることができる.
- 次は,使用可能なオプションである.
-
Assumptions $Assumptions パラメータについての仮定 GenerateConditions False パラメータについての条件を含む答を生成するかどうか GeneratedParameters None 生成されたパラメータにどのように名前を付けるか Method Automatic 使用するメソッド Regularization None 使用する正規化 VerifyConvergence True 収束を確かめるかどうか - Regularizationの可能な値にはNoneと"Dirichlet"がある.{reg1,reg2,…}は多重積において異なるスキームに異なる変数を指定する.
- Productは標準的な本の公式集に載っているすべての基礎的な乗積を行うことができる.
- Productは∏を使ってStandardFormで出力される.
- Parallelize[Product[f,iter]]またはParallelProduct[f,iter]はProduct[f,iter]をすべてのサブカーネルで並列に計算する. »
例題
すべて開く すべて閉じる例 (5)
Product[i ^ 2, {i, 1, 6}]Product[i ^ 2, {i, 1, n}]Subsuperscript[∏, i = 1, n]i ^ 2Product[1 - 1 / i ^ 4, {i, 2, Infinity}]Product[2 ^ (j + i), {i, 1, p}, {j, 1, i}]スコープ (28)
基本的な用法 (9)
Product[f[i], {i, 1, 4}]Product[f[i], {i, 1, 4, 2}]Product[f[i], {i, {a, b, c}}]{DiscretePlot[(11 / 12) ^ i (2 + Sin[i 2Pi / 15]), {i, 50}, PlotRange -> All], DiscretePlot[Product[(11 / 12) ^ i(2 + Sin[i 2Pi / 15]), {i, j}], {j, 50}, PlotRange -> All]}Product[f[i, j], {i, 1, 3}, {j, 1, 3}]Product[f[i, j], {i, 1, 3, 2}, {j, 1, 3, 1 / 2}]Grid@{{DiscretePlot3D[(1 + (11 / 12) ^ i * Sin[i 2Pi / 15]) (1 + 1 / j ^ 2), {i, 25}, {j, 25}, PlotRange -> All, ExtentSize -> Full, ImageSize -> 250], DiscretePlot3D[Log[1 + Product[(1 + (11 / 12) ^ i * Sin[i 2Pi / 15]) (1 + 1 / j ^ 2), {i, i}, {j, l}]], {i, 25}, {l, 25}, PlotRange -> All, ExtentSize -> Full, ImageSize -> 250]}}最も外側の積の境界は,より内側の変数に依存することができる:
Product[f[i, j], {i, 1, 3}, {j, 1, i}]Product[f[i, j], {i, {a, b, c}}, {j, 1, 3}]list = Table[Graphics[{c, Disk[]}, ImageSize -> 20], {c, {Red, Green, Blue}}];Product[f[i, j], {i, list}, {j, 1, 3}]Product[(1 + 1 / i ^ 2), {i, ∞}]Product[1 + 1 / (i ^ 2 + 1), {i, -∞, ∞}]Product[1 + 1 / (1 + i + j) ^ 3, {i, ∞}, {j, ∞}]//QuietProduct[a^i, {i, n}]Product[a ^ i, {j, m}, {i, j}]p = Product[i, i]DiscreteRatio[p, i](p /. i -> n + 1) / (p /. i -> 1)Product[i, {i, n}]Product[i j, i, j]DiscreteRatio[%, i, j]//FullSimplifyProduct[i j, {i, 1, n}, j]GenerateConditionsを使って答が真となる条件を求める:
Product[1 + a ^ i, {i, ∞}, GenerateConditions -> True]結果の答をRefineする:
Refine[%, Abs[a] < 1]Assumptionsを使ってProductに仮定を直接与える:
Product[1 + a ^ i, {i, ∞}, Assumptions -> -1 / 2 < a < 1 / 2, GenerateConditions -> True]未評価の積にNを適用することは,事実上,NProductを使うことになる:
Product[1 - 1 / (3 ^ i i ^ 5), {i, 1, Infinity}]N[%]特殊な不定形の積 (10)
Product[f[i + 1] / f[i], i]Product[DiscreteRatio[a^f[i], i], i]Product[a ^ i, i]Sum[i, i]{Product[a ^ (1 / (i(i + 1))), i], a ^ Sum[1 / (i(i + 1)), i]}First[%] / Last[%]//Simplify{Product[a ^ (b ^ i), i], a ^ Sum[b ^ i, i]}First[%] / Last[%]//SimplifyProduct[(i + 1)(i + 2), i]Product[(i + 1) / (i + 2), i]Product[(i + 1) / (i + 2) / (i + 1 / 2), i]Product[(i^2 + 1/i^5 + 1), i]超幾何項数列はBarnesGを使って表すことができる:
Product[i!, i]DiscreteRatioはすべての超幾何項数列について有理である:
DiscreteRatio[i!, i]hl = {a ^ i, i!, Gamma[i], Pochhammer[a, i], FactorialPower[a, i], Binomial[i, a], Binomial[b, i], CatalanNumber[i]};DiscreteRatio[hl, i]DiscreteRatio[Times@@RandomChoice[hl, 3], i]一般にこれらの積にはBarnesGが必要である:
Product[Gamma[i]Pochhammer[a, i] / CatalanNumber[i], i]Product[3 q^2i + 5, i]p[x_] := (x - 1 / 2)(x + 3 / 2)(x + 200)p[q ^ i]Product[%, i]q有理関数の積は常にq有理関数とq階乗関数によって得ることができる:
Product[(q^8 (i + 1) + 11/q^8 i + 11), i]Product[DiscreteRatio[(q^i + 2 q^2i/q^i + 5 + 7), i](2 q^i + 1), i]r[x_] := (x/x^5 + 11x + 2)r[q ^ i]一般にRootオブジェクトが必要である:
Product[%, i]DiscreteRatio[%, i]Product[Sin[3i + 5], i]Product[Sin[3i + 5] + Cos[3i], i]Product[Tan[3i + 5], i]Product[Sinh[3i + 5], i]Product[Cosh[2i - 5] + Tanh[2i], i]Product[(2i + 3)^3i + 7, i]Product[((i + 1/i^2 + 3))^3i + 7, i]Product[Ceiling[i + 1 / 2], i, Assumptions -> i∈Integers]Product[Floor[i^2 + 1], i, Assumptions -> i∈Integers]Product[Cos[Floor[i + 3 / 2]], i, Assumptions -> i > 2]Product[Cos[i + 1], i]DiscretePlot[1 + Mod[i^2 + 1, 3], {i, 25}, PlotRange -> {0, 3}]Product[1 + Mod[i^2 + 1, 3], i]Product[(1/1 + Sin[i 2Pi / 3]), i]DiscretePlot[Sin[(1/1 + Mod[i ^ 2, 3])], {i, 25}, PlotRange -> {0, 1}]Product[Sin[(1/1 + Mod[i ^ 2, 3])], i]Product[((1/i(i + 1)))^Mod[i, 3], i]Product[2 + Sin[i π / 2] + (1/i), i]Product[DiscreteRatio[f[i] ^ 2, i], i]Product[DiscreteRatio[Cos[b i + x]^b i + x + Sin[b i + x], i], i]特殊積 (9)
Product[a^1 / i, {i, 1, n}]Product[a^1 / i^2, {i, 1, ∞}]Product[a^HarmonicNumber[i] / i ^ 2, {i, 1, ∞}]Product[1 - 1 / (13i ^ 2), {i, 1, n}]Product[1 - 1 / (13i ^ 2), {i, 1, ∞}]Product[(i^3 - 1/i^3 + 1), {i, 2, ∞}]Product[1 + 1 / i, {i, 1, ∞}]超幾何項の積はBarnesGによって表すことができる:
Product[i!, {i, 0, n}]Product[(i!Pochhammer[a, i]Binomial[a - i, i]/(2i)!! Beta[i + 1, a - 1]), {i, n}]Product[q^3 i + 1, {i, 0, n}]q有理関数の積の中にはq有理関数によって表すことのできるものがある:
Product[(q^8 (i + 1) + 11/q^8 i + 11), {i, a, b}]Product[(q^3i/q^2i + q^i + 1), {i, n}]Product[(2^i/4^i + Sqrt[2]^i + 1), {i, n}]Product[1 + Sin[3i + 5], {i, 1, n}]Product[1 + 1 / Sinh[3i + 5], {i, 1, n}]Product[ (i^3/1 + Max[i^2 - 1, i^3 - 3]), {i, ∞}]Product[1 + (1/k^2)FractionalPart[(2k^2 + 5/3k^2 + 2)], {k, 1, ∞}]Product[1 + (1/k^2 + Floor[ (k/k + 1) + Floor[(12/1 + k^2)]]), {k, 1, ∞} ]Product[1 + 1 / Prime[i] ^ s, {i, ∞}]Product[1 + z ^ 2 ^ i, {i, n}]Product[((i + 1) ^ 2 / (i(i + 2))) ^ (Log[i] / Log[2]), {i, 1, ∞}]Product[1 - (4 / 3)Sin[x / 3 ^ i] ^ 2, {i, ∞}]Product[DiscreteRatio[f[i], i], {i, 1, n}]Product[DiscreteRatio[Sin[b i + x], i], {i, 1, n}]Product[i j, {j, 1, p}, {i, 1, q}]一般化と拡張 (1)
ParallelProductはProductを並列に計算する:
ParallelProduct[N[π^(1/i)], {i, 10 ^ 6}]Productは,事実上ParallelProductを使って自動的に並列化できる:
Parallelize[Product[N[π^(1/i)], {i, 10 ^ 6}]]オプション (4)
Assumptions (1)
Assumptionsを使ってパラメータに関する条件が異なる場合の動作を調べる:
Product[1 - q ^ i, {i, Infinity}, Assumptions -> Abs[q] > 1]Product[1 - q ^ i, {i, Infinity}, Assumptions -> Abs[q] < 1]GenerateConditions (1)
Regularization (1)
Product[Prime[i], {i, Infinity}]Regularizationを使ってこの積に有限の値を割り当てる:
Product[Prime[i], {i, Infinity}, Regularization -> "Dirichlet"]VerifyConvergence (1)
Product[i, {i, 1, Infinity}]VerifyConvergenceをFalseに設定するとこのような場合に有限の値が割り当てられることがある:
Product[i, {i, Infinity}, VerifyConvergence -> False]アプリケーション (6)
積によって定義される関数 (1)
Factorialを含む多くの特殊関数は積によって定義される:
Product[i, {i, n}]Product[x + i, {i, 0, n - 1}]FullSimplify[% - Pochhammer[x, n]]Product[x - i, {i, 0, n - 1}]FullSimplify[% - FactorialPower[x, n]//FunctionExpand, n∈Integers && n > 0]Product[1 - a q ^ i, {i, 0, n - 1}]Product[i ^ i, {i, n}]およびBarnesG:
Product[Gamma[i], {i, n - 1}]定数の積表示 (1)
Piを含む多くの定数が積によって表現できる:
2 Product[(4 k ^ 2) / ((2 k - 1) (2 k + 1)), {k, 1, ∞}]2 E Product[(1 + 2 / k) ^ ((-1) ^ (k + 1) k), {k, 1, ∞}]E:
2 Product[1 + 1 / (k ^ 2 Pi ^ 2), {k, 1, Infinity}]//TrigToExp2 Product[1 + 4 / ((2 k - 1) ^ 2 Pi ^ 2), {k, 1, Infinity}]//TrigToExp(%% + %) / 2E ^ (EulerGamma / 12) (2 Pi) ^ (1 / 12) Product[k ^ (1 / k ^ 2), {k, 1, Infinity}] ^ (1 / (2 Pi ^ 2))//FullSimplify関数の積表示 (1)
初等関数のワイエルシュトラス(Weierstrass) 因子分解:
Product[1 - z ^ 2 / (Pi ^ 2 i ^ 2), {i, 1, ∞}]Product[1 - (4 z ^ 2) / (Pi ^ 2 (2 i - 1) ^ 2), {i, 1, ∞}]Product[Pi ^ 2 (2 i - 1) ^ 2 / (Pi ^ 2 (2 i - 1) ^ 2 - 4 z ^ 2), {i, 1, ∞}](1 / z) Product[(Pi ^ 2 i ^ 2) / (Pi ^ 2 i ^ 2 - z ^ 2), {i, 1, ∞}]ラグランジュ補間を使った近似表示 (1)
LagrangePolynomial[data_, x_] /; MatrixQ[data] :=
Module[{n = Length[data], xl, yl},
{xl, yl} = Transpose[data];
Sum[Product[(x - xl[[i]]) / (xl[[j]] - xl[[i]]), {i, Complement[Range[n], {j}]}]yl[[j]], {j, n}]
]LagrangePolynomial[data_, x_] /; VectorQ[data] :=
LagrangePolynomial[Transpose[{Range[Length[data]], data}], x]q = LagrangePolynomial[{{x1, y1}, {x2, y2}, {x3, y3}}, x]Table[q, {x, {x1, x2, x3}}]記号としての値についてのニュートン(Newton)補間多項式:
r = InterpolatingPolynomial[{{x1, y1}, {x2, y2}, {x3, y3}}, x]Simplify[q - r]積からの最適化表示 (1)
s = Product[(3 / 2) ^ i, {i, 1, n}]formula = Table[{n, Timing[s;][[1]]}, {n, 2 ^ Range[3, 12]}]procedure = Table[{n, Timing[Product[(3 / 2) ^ i, {i, 1, n}];][[1]]}, {n, 2 ^ Range[3, 12]}]ListLogPlot[{formula, procedure}, Filling -> Axis, PlotRange -> All, Joined -> True]パラメータ推定のための尤度関数 (1)
likelihood[f_, data_] := Product[Evaluate[PDF[f, x]], {x, data}]小さいデータ集合のExponentialDistributionについての尤度関数:
l = likelihood[ExponentialDistribution[λ], {1, 5, 4, 3, 7}]Maximize[{l, λ ≥ 0}, λ]BernoulliDistributionの尤度関数:
l = likelihood[BernoulliDistribution[θ], {1, 0, 0, 0, 1, 1, 1}]Maximize[{l, 0 ≤ θ ≤ 1}, θ]特性と関係 (4)
NProductは数値的方法を使って積を計算する:
NProduct[1 + 5 / i ^ 2, {i, 1, Infinity}]Product[1 + 5 / i ^ 2, {i, 1, Infinity}]N[%]Nを未評価の積に適用する際には,実質的にNProductが使われる:
Product[1 - 1 / (2 ^ i i ^ 3), {i, 1, Infinity}]N[%]DiscreteRatioは不定形の積の逆である:
DiscreteRatio[Product[f[i], i], i]Product[DiscreteRatio[f[i], i], i]Productは,実質的にRSolveで解くのと同じように特殊差分方程式を解く:
RSolve[y[n + 1] == 2y[n] && y[0] == 1, y[n], n]Product[2, {i, 1, n}]RSolve[y[n + 1] == (n + 1)y[n] && y[1] == 1, y[n], n]Product[i, {i, 1, n}]//FunctionExpand考えられる問題 (2)
Product[1 + 1 / i, {i, 1, Infinity}]Product[i, {i, 1, n}]% /. n -> 5.5Product[i, {i, 1, 5.5}]GenerateConditionsを使って明示的な推定を得る:
Product[i, {i, 1, n}, GenerateConditions -> True]% /. n -> 5.5Product[i, {i, a, b, δ}]GenerateConditionsを使うと推定が明示的になる:
Product[i, {i, a, b, δ}, GenerateConditions -> True]おもしろい例題 (2)
Product[(4i - 1) ^ (4i - 1), {i, n}]Product[i ^ E ^ (-a i), {i, 1, Infinity}]flist = Inactive[Product][#1, {k, #2, #3}]&@@@ {{((k + 1)^3 (k + 5)/k^2), 1, n}, {k!, 0, n}, {1 + (1/k^2), 1, Infinity}, {1 - (4/3) Sin[(x/3^k)]^2, 1, Infinity}, {1 + (1/Prime[k]^s), 1, Infinity}, {((k + 3/k + 1))^k, 1, n}, {(Sin[3 k + 5]/Cos[3 k + 1]), 1, n}};Grid[Join[{{Text["Product"], Text["Result"]}}, Transpose[{flist, Activate[flist]}]], IconizedObject[«Grid options»]]//TraditionalFormテクニカルノート
-
▪
- 和と積 ▪
- 実装に関するノート: 代数と解析
履歴
1988 で導入 (1.0) | 1996 で更新 (3.0) ▪ 2008 (7.0) ▪ 2019 (12.0)
テキスト
Wolfram Research (1988), Product, Wolfram言語関数, https://reference.wolfram.com/language/ref/Product.html (2019年に更新).
CMS
Wolfram Language. 1988. "Product." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2019. https://reference.wolfram.com/language/ref/Product.html.
APA
Wolfram Language. (1988). Product. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/Product.html
BibTeX
@misc{reference.wolfram_2026_product, author="Wolfram Research", title="{Product}", year="2019", howpublished="\url{https://reference.wolfram.com/language/ref/Product.html}", note=[Accessed: 14-November-2026]}
BibLaTeX
@online{reference.wolfram_2026_product, organization={Wolfram Research}, title={Product}, year={2019}, url={https://reference.wolfram.com/language/ref/Product.html}, note=[Accessed: 14-November-2026]}