$多个变量的假设

时间:2010-11-30 13:22:47

标签: wolfram-mathematica

我想将我的变量限制在整个笔记本的某个范围内,有没有一种方法可以一次性完成,而无需为每个变量输入不同的$假设行?

编辑:我想为笔记本中的所有计算定义变量域(谷歌搜索帮助我更好地满足我的需求!)

2 个答案:

答案 0 :(得分:3)

全球定义如下

$Assumptions = b >= 0 && c >= 0 && {u11, u13, u14} \[Element] Reals

然后使用全局定义的变量如下

Simplify[expression  with global variables] 

答案 1 :(得分:2)

如果您的所有变量都是(例如)Real,那么您可以intercept the creation of new symbols并将该假设添加到$Assumptions。 E.g。

$Assumptions = True;
$NewSymbol = If[#2 === "Global`",
    Print["Created new Global` variable named ", #1, ". It is assumed to be real."];
    $Assumptions = $Assumptions && Element[Symbol[#2 <> #1], Reals],
    Null (* other, probably a system symbol is created *)] &;

然后,如果您创建一个不想成为真实的新符号,那么您可以跟进$Assumptions = Most[$Assumptions]之类的内容。


注意:我不一定声称这种做法是个好主意...... 最好只为您要使用的变量定义$Assumptions。这可以使用MapTable等以编程方式完成。