Assuming[assum,expr]
$Assumptionsに assum を付加して expr を評価し,assum がRefine,Simplify,Integrate等の関数のデフォルトの仮定に使用されるようにする.
Assuming
Assuming[assum,expr]
$Assumptionsに assum を付加して expr を評価し,assum がRefine,Simplify,Integrate等の関数のデフォルトの仮定に使用されるようにする.
詳細
- AssumingはAssumptionsオプションを持つすべての関数のデフォルトの仮定に影響を与える.
- 仮定は方程式,不等式,領域指定,リストあるいはこれらの論理結合であり得る.
- Assumingのネストした呼出しによる仮定は組み合せられる.
- Assuming[assum,expr]はBlock[{$Assumptions=$Assumptions&&assum},expr]に実質的に等しい.
- Assumingは仮定のリスト{a1,a2,…}を a1&&a2&&… に変換する.
例題
すべて開く すべて閉じる例 (2)
スコープ (3)
operations := {Refine[Sin[n Pi]], Simplify[Mod[n ^ p, p]], FullSimplify[EulerPhi[p ^ n] - p ^ n], FunctionExpand[Factorial2[n]]};Assuming[n∈Integers && p∈Primes && n > 0, operations]Integrateについての積分変換における仮定を指定する:
Assuming[a > 0, {Integrate[1 / (x + a), {x, 0, 1}], FourierTransform[1 / (x ^ 2 + a), x, w]}]Assuming[a > 0, {Limit[x ^ a, x -> Infinity], Series[Min[x ^ 2, 1 + a]Cos[x] + Sin[x], {x, 0, 2}]}]アプリケーション (1)
仮定を使うコードを書き,a x2+b x+c の実根の数を求める:
numberOfRealRoots[{a_, b_, c_}, assum_] :=
Assuming[assum,
If[Refine[a == 0],
If[Refine[b == 0],
If[Refine[c == 0], Infinity, 0, Indeterminate],
1,
Indeterminate],
Switch[Refine[Sign[b ^ 2 - 4a c]],
1, 2,
0, 1,
-1, 0,
_, Indeterminate],
Indeterminate]]numberOfRealRoots[{a, b, a}, a > b > 0]numberOfRealRoots[{a, b, a}, b > 2a > 0]numberOfRealRoots[{0, b, c}, b != 0]特性と関係 (5)
Assumingは局所的に$Assumptionsの値を設定する:
Assuming[x > 0, {$Assumptions, Refine[Sqrt[x ^ 2]]}]ネストして実行したAssumingからの仮定は結合される:
Assuming[x ≥ 0, Assuming[y < 0, Refine[Sqrt[x ^ 2y ^ 2]]]]Blockもまた$Assumptionsの値を局所的に設定するのに使うことができる:
Block[{$Assumptions = x > 0}, {$Assumptions, Refine[Sqrt[x ^ 2]]}]以下では,Assumingの仮定がBlockの中では使われていない:
Assuming[x ≥ 0, Block[{$Assumptions = y < 0}, Refine[Sqrt[x ^ 2y ^ 2]]]]次はネストしたAssumingを使うのに等しい:
Assuming[x ≥ 0, Block[{$Assumptions = $Assumptions && y < 0}, Refine[Sqrt[x ^ 2y ^ 2]]]]Assumingは,Assumptions :> $Assumptionsオプション設定を使う関数に影響する:
Quiet[Select[ToExpression /@ Names["System`*"], Head[#] === Symbol && MemberQ[Options[#], Assumptions :> $Assumptions]&]]ある種の関数には,仮定は引数としてもオプション値としても与えることができる:
Assuming[Mod[m, 2] == 0, Simplify[Cos[k Pi] ^ m, Element[k, Integers]]]考えられる問題 (1)
Assumptionsオプションを直接設定すると,Assumingで指定された仮定は使われない:
Assuming[x > 0, Simplify[Sqrt[x ^ 2 y ^ 2], Assumptions -> y < 0]]テクニカルノート
-
▪
- 仮定の使用
履歴
2003 で導入 (5.0)
テキスト
Wolfram Research (2003), Assuming, Wolfram言語関数, https://reference.wolfram.com/language/ref/Assuming.html.
CMS
Wolfram Language. 2003. "Assuming." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/Assuming.html.
APA
Wolfram Language. (2003). Assuming. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/Assuming.html
BibTeX
@misc{reference.wolfram_2026_assuming, author="Wolfram Research", title="{Assuming}", year="2003", howpublished="\url{https://reference.wolfram.com/language/ref/Assuming.html}", note=[Accessed: 11-September-2026]}
BibLaTeX
@online{reference.wolfram_2026_assuming, organization={Wolfram Research}, title={Assuming}, year={2003}, url={https://reference.wolfram.com/language/ref/Assuming.html}, note=[Accessed: 11-September-2026]}