Mathematica 9 is now available

3.1.1 数的类型

Mathematica 中建立了四种基本的数的类型.

Mathematica 中数的类型

有理数是两个整数的比,化简为最简形式

近似实数通过小数点来区分

近似实数可以有任意的位数

复数中可以有整数或有 理数的成份

复数中也可以有近似实数的成份

数123的几种类型

通过查看数的头可以区分数的不同类型 ( 虽然 Mathematica 中 的数象其它表达式一样有头. 但没有明确的元素来提取它们.)

对象 123 被看作精确整 数,它具有头 Integer

小数点的出现使 123. 被 处理为近似实数,它具有头 Real

检验不同类型的数

NumberQ[x] 检测任何类

5. 作为实数处理,所以 IntegerQ 得出 False

如果经常使用复数,应当注意一些微妙之处. 当输入一个数如 123. 时, Mathematica 把它作为实数处理,而假定它的虚部是精确的 0,有时可能会输入 虚部是具有一定精度的 0,但不是精确的 0 的近似复数.

当虚部是精确数 0 时,Mathematica 把该复数简化为实数

这里虚部只是具有确定精 度的 0,故 Mathematica 保持它为复数形式

区分虚部是精确的 0 和虚部是具有一定精度的 0 的复数,这似乎是太学究气了. 但是,在 3.2.7 节讨论复数的幂和根的解释时,这个区别就很有意义了.

确定数的类型的一种方法是使用 Head[expr] 来找出它的头. 然而, 在许多情况下,最好使用函数如 IntegerQ, 它明确地检测特定的类型. 当这些函数的自变量是所需类型时,该函数返回 True,否则返 False. 因此,除非x是一个整数,否则,IntegerQ[x] 将返回 False.

然而,在做符号运算时,有时用户想把 x 作为整数处理,既使没有给它 明确赋以整数值. 通过明确约定 x/: IntegerQ[x] = True. 可以使 x 不是整数的假定无效. 该约定指明,当用 IntegerQ[x] 测试 x 时, 它将给出结果 True . 然而,应当认识到,该约定并不改变 x 的头. 因此, x 仍然不与 n_Integer. Mathematica 也不自动做基于该约定的推论. 例如,在这个约定下, 它不能单独决定 IntegerQ[x^2] 也为 True.

x 没有头 Integer,所以 Integer 返回 False

这里实际上指定x是一个整数. x/: 指明规则是关

x,而不是 IntegerQ 的上定义使 x 不是整数的 缺省假定无效



Any questions about topics on this page? Click here to get an individual response.Buy NowMore Information
THIS IS DOCUMENTATION FOR AN OBSOLETE PRODUCT.
SEE THE DOCUMENTATION CENTER FOR THE LATEST INFORMATION.