Mathematica 9 is now available

2.5.8 条件

Mathematica 中有一系列设置条件的方法,这可以使表达式在一定的条件 满足时才进行计算.

条件的结构

 的值为 False,故返回值为 y

此处仅计算 " " 表达式的值

在编程时,可以用If函数控制的多个分支来给出一个定义,也可以用 /; 条件 控制来给出几个定义 . 通常用多个定义可以使程序清楚和容易修改.

定义阶梯函数 : x > 0 时值为1,其余值为 -1

/; 定义阶梯函数正的哪一部分

这里定义阶梯函数负的哪一部分

这里显示了用 /; 给出的全部定义

If 函数提供了两种情况下选择方法,用多个选择时,就可以使用 If 的嵌套形式, 但通常用 WhichSwitch 更好一些.

这里定义了一个分三段的函数,用 True 作第三个测试以使用默认值 0

用了 Witch 的第一种情况

这里用了第三种情况

定义一个依赖于自变量在模 3 下的值

Mod[7,3]=1 ,故用了 Switch 的第二种情况

17 与 0 和 1 不匹配,但与 _ 匹配

Mathematica 等符号系统中的条件可能产生既不是 True,也不是 False 的结果. 例如 x Equal y 不给出 TrueFalse 的结果,除非对它们都指定了确定的值.

由于测试的结果既不是 True, 也不是 False,故 If 没有被计算

可以在 If 中添入第 4 个变量,当测试结果既非 True,也非 False 时使用它

处理符号条件的函数

Mathematica 仍将它作为一个符号方程

expr 的值不是 True 时,都认为是 False

Equal= 测试两个表达式是否恒等, 此处它们不恒等

EqualEqual= 区别是 Equal= 的返回值是 TrueFalse,而 Equal 可以以符号等式的形式出现. 测试两个表达式的结构时用 Equal=,测试数学上相等时用 Equal. 在模式匹配中 MathematicaEqual= 检查两个表达式是否匹配.

Equal= 去测试表达式的结构

Equal 给出了一个无用的结果

在设置条件时,常常用到  等组合测试. 重要的一点是当这些测试中任一个测试的结果为 False,组合测试的结果就是 False 时. Mathematica 逐次进行每个测试, 当某一个测试的结果为 False 时就停止.

逻辑表达式的计算

涉及两个测试的函数

两个测试都进行了计算

第一个测试的结果是 False,故第二个不再进行

Mathematica 处理逻辑表达式的方式允许进行组合测试,在组合测试中只有前面 的条件满足时,后面的测试才起作用. 这种特性与C语言等类似,可以使我们 很方便地编写各种 Mathematica 程序.



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.