量词

在一个如 的语句中,Mathematica 把变量 当作具有确定但是未指定的值来处理. 然而,有时候,提供 的可能值集合的语句是有用的. 可以使用量词 来实现这个功能.

ForAll[x,expr]exprx 所有值成立
ForAll[{x1,x2,...},expr]expr对所有 xi 的所有值成立
ForAll[{x1,x2,...},cond,expr]expr对所有满足condxi 成立
Exists[x,expr]存在 x 的值使得 expr 成立
Exists[{x1,x2,...},expr]存在 的值使得 expr 成立
Exists[{x1,...},cond,expr]存在 的值满足 cond 并使得 expr 成立

量词的结构.

用户可以在 Mathematica 中像使用方程、不等式或逻辑语句一样经常地使用量词. 在绝大多数情况下,量词将不会因为计算立即被改变. 但是,它们可以通过函数如 FullSimplifyReduce 简化或消去.

这里声明存在一个 使得不等式成立. 这里的输出就是输入的一个格式化版本.
In[1]:=
Click for copyable input
Out[1]=
FullSimplify 验证了该声明为真.
In[2]:=
Click for copyable input
Out[2]=
这里给出 False,因为当 等于零时,不等式不成立.
In[3]:=
Click for copyable input
Out[3]=

Mathematica 支持在谓词逻辑和纯数学中使用的量词的标准记号版本. 可以输入 作为 \[ForAll] 或者 ,并且可以输入 作为 \[Exists] 或者 . 然而,为了使得记号更为精确,Mathematica 使量化的变量作为一个下标. 变量所满足的条件也可以在下标中提供,使用逗号分隔.

xexprForAll[x,expr]
{x1,x2,...}exprForAll[{x1,x2,...},expr]
x,condexprForAll[x,cond,expr]
xexprExists[x,expr]
{x1,x2,...}exprExists[{x1,x2,...},expr]
x,condexprExists[x,cond,expr]

量词记号.

给定一个包含量词的语句,有一些可能把它求解为可以消去量词的相当语句的重要例子. 与求解一个方程类似,这样的量词消去法把关于对所有 x 或一些 x 什么为真的明确语句转化为关于条件成立的明确语句.

Resolve[expr]试图从 expr 中消去量词
Resolve[expr,dom]试图消去量词,其中假定所有变量都在域 dom

消去量词.

这里显示存在一个 使得方程为真.
In[4]:=
Click for copyable input
Out[4]=
这里显示只有当 遵循某个条件,方程才能成立.
In[5]:=
Click for copyable input
Out[5]=

Resolve 可以总是在复数范围内的多项式等式和不等式集合,以及实数范围内的多项式等式和不等式集合中消去量词. 它也可以从布尔表达式中消去量词.

这里寻找使得在实数范围内二次项为正的条件.
In[6]:=
Click for copyable input
Out[6]=
这里显示有一种办法可以对 赋予真值,从而使得表达式为真.
In[7]:=
Click for copyable input
Out[7]=

也可以以 Reduce 的方式使用量词. 如果用户给 Reduce 提供了一个等式或者不等式的集合,那么它将会试图产生完整解集的具体表示. 但是有时候,用户可能想要表示一个更为全局的问题,比如,解集是否包含 x 的所有值,或者它是否不包含任何值. 量词给我们提供了指明这些问题的方便的途径.

这里给出解集的完整结构.
In[8]:=
Click for copyable input
Out[8]=
这里给出一个解存在的条件.
In[9]:=
Click for copyable input
Out[9]=

对于大量数学问题都可能可以使用量词表示成数学公式.

这里寻找使得一个圆包含在任意圆锥体内的条件.
In[10]:=
Click for copyable input
Out[10]=
这里寻找一条线与一个圆相交的条件.
In[11]:=
Click for copyable input
Out[11]=
这里定义 为一般的首一四次多项式.
In[12]:=
Click for copyable input
这里寻找使得四次多项式相等的所有根对的条件.
In[13]:=
Click for copyable input
Out[13]=

虽然在整数上消去量词在计算上是不可能的问题,然而 Mathematica 在特殊情况下可以实现这个功能.

这里显示 不可能是一个有理数.
In[14]:=
Click for copyable input
Out[14]=
是一个有理数.
In[15]:=
Click for copyable input
Out[15]=
New to Mathematica? Find your learning path »
Have a question? Ask support »