2.5.8 条件Mathematica 中有一系列设置条件的方法,这可以使表达式在一定的条件 满足时才进行计算. 条件的结构 的值为 False,故返回值为 y
Out[1]= |  |
此处仅计算 " " 表达式的值
在编程时,可以用If函数控制的多个分支来给出一个定义,也可以用 /; 条件 控制来给出几个定义 . 通常用多个定义可以使程序清楚和容易修改. 定义阶梯函数 : x > 0 时值为1,其余值为 -1 用 /; 定义阶梯函数正的哪一部分 这里定义阶梯函数负的哪一部分 这里显示了用 /; 给出的全部定义
If 函数提供了两种情况下选择方法,用多个选择时,就可以使用 If 的嵌套形式, 但通常用 Which 和 Switch 更好一些. 这里定义了一个分三段的函数,用 True 作第三个测试以使用默认值 0 用了 Witch 的第一种情况
Out[8]= |  |
这里用了第三种情况
Out[9]= |  |
定义一个依赖于自变量在模 3 下的值 Mod[7,3]=1 ,故用了 Switch 的第二种情况
Out[11]= |  |
17 与 0 和 1 不匹配,但与 _ 匹配
Out[12]= |  |
Mathematica 等符号系统中的条件可能产生既不是 True,也不是 False 的结果. 例如 x y 不给出 True 或 False 的结果,除非对它们都指定了确定的值. 由于测试的结果既不是 True, 也不是 False,故 If 没有被计算
Out[13]= |  |
可以在 If 中添入第 4 个变量,当测试结果既非 True,也非 False 时使用它
Out[14]= |  |
处理符号条件的函数 Mathematica 仍将它作为一个符号方程
Out[15]= |  |
当 expr 的值不是 True 时,都认为是 False
Out[16]= |  |
= 测试两个表达式是否恒等, 此处它们不恒等
Out[17]= |  |
和 = 区别是 = 的返回值是 True 或 False,而 可以以符号等式的形式出现. 测试两个表达式的结构时用 =,测试数学上相等时用 . 在模式匹配中 Mathematica 用 = 检查两个表达式是否匹配.
用 = 去测试表达式的结构
Out[18]= |  |
给出了一个无用的结果
Out[19]= |  |
在设置条件时,常常用到 等组合测试. 重要的一点是当这些测试中任一个测试的结果为 False,组合测试的结果就是 False 时. Mathematica 逐次进行每个测试, 当某一个测试的结果为 False 时就停止. 逻辑表达式的计算 涉及两个测试的函数 两个测试都进行了计算
Out[21]= |  |
第一个测试的结果是 False,故第二个不再进行
Out[22]= |  |
Mathematica 处理逻辑表达式的方式允许进行组合测试,在组合测试中只有前面 的条件满足时,后面的测试才起作用. 这种特性与C语言等类似,可以使我们 很方便地编写各种 Mathematica 程序.
|