2.5.1 计算原理Mathematica 最基本的功能是计算,输入一个表达式后 Mathematica 就计算出其结果. Mathematica 中的计算是通过一系列定义来实现的,有些定义是直接输入的,有些是 内部固有的. 例如在计算 6+7 时就调用内部的整数加法过程,计算表达式 x-3x+1 时就调用内部的化简过程,当定义 x=5 时,Mathematica 就计算出 x-3x+1 等于 -9. Mathematica 中两个核心的概念是表达式和运算. 2.1 节中讨论了用统一的方式使用 表达式去处理不同的对象,这一节将讨论怎样用统一的方式来看待 Mathematica 中的运算. 运算的说明 Mathematica 是一个无限的计算系统,输入一个表达式后 Mathematica 将一直用已 知的定义来计算它,直到无定义可用时才停止. 先用 x2 来定义 x1,再给出 x2 的定义
Out[1]= |  |
用到 x1 时 Mathematica 将用所有的定义来计算从而给出结果
Out[2]= |  |
这是阶乘函数的一个递推定义 求 fac[10] 时 Mathematica 将一直使用所给出的定义,直到结果不再改变为止
Out[4]= |  |
Mathematica 使用完已知的定义后给出结果,有时结果是一个数,但通常是 含有符号的表达式. Mathematica 使用了和的内部定义来化简表达式,但由于 f[3] 无定义,故该项仍以符号形式出现
Out[5]= |  |
Mathematica 的原则是将定义使用到结果不再改变为止,这意味着把 Mathematica 的最后结果再输入时输出不再改变. 输入一个 Mathematica 的结果后得到的是同样的表达式
Out[6]= |  |
在任何时候,Mathematica 仅使用当时已知的定义,添加的一些定义随后 就可以使用,此时 Mathematica 给出的结果可能变化. 函数 f 的新定义
Out[7]= |  |
有了新定义后,以前的结果可以变化
Out[8]= |  |
计算的简单例子包括使用把一个表达式变换为另一个表达式的定义 f[x_] = x^2 计算也是执行 Mathematica 内部程序的一个过程. 例如一个由 Mathematica 的表达式序列组成的过程 (其中一些可能是条件或循环) 的执行就是对应着这些表达式的计算. 有时计算过程会涉及循环计算某一表达式多次. Print[zzzz] 在 Do 表达式中执行了三次
|