Assuming[assum,expr]
将 assum 追加到 $Assumptions,计算 expr,从而使诸如 Refine、Simplify 和 Integrate 等函数所使用的缺省假定中包含 assum.
Assuming
Assuming[assum,expr]
将 assum 追加到 $Assumptions,计算 expr,从而使诸如 Refine、Simplify 和 Integrate 等函数所使用的缺省假定中包含 assum.
更多信息
- 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[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 语言. 2003. "Assuming." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/Assuming.html.
APA
Wolfram 语言. (2003). Assuming. Wolfram 语言与系统参考资料中心. 追溯自 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: 10-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: 10-September-2026]}