Mathematica 9 is now available

2.5.4 标准运算过程

本节描述 Mathematica 计算表达式的标准过程,该过程适用于大部分表达式. 但用来表示 Mathematica 程序和控制结构等一些类型的表达式不按标准方式 处理,这些将在下节讨论.
在标准计算过程中,Mathematica 先计算表达式的头部,然后再计算表达式 的元素,这些元素本身也是表达式,其计算过程也是这样递推地进行.

3 个 Print 函数逐个处理,打印出它们的变量,返回值为 Null

把符号 ps 设置为 Plus

光处理头部 ps,所以这个表达式就是求几项之和

Mathematica 处理完一个表达式的头部以后,它就判断该头部是否是具有 一定属性的符号.如果该符号具有 Orderless, FlatListable 属性,则在 处理完表达式的元素后 Mathematica 立即进行与这些属性有关的变换.
标准计算过程的下一步就是用 Mathematica 已知的定义对表达式进行计算, Mathematica 先使用用户给出的定义,如果没有合适的用户定义可用, Mathematica 就试用内部的定义. 当 Mathematica 找到一个可用的定义后,它就对 表达式进行相应的变换.其结果仍然是一个表达式,这个表达式再按 标准计算过程进行处理.

标准计算过程

2.5.1 节所述,Mathematica 遵循的原则是将一个表达式一直计算到没有定义可 用为止,这意味着 Mathematica 反复进行计算直到结果不再变化为止. 下面是一个显示标准计算过程的例子,其中我们取 a=7.

Mathematica计算的一个简单例子

Mathematica 提供了跟踪计算过程的一些方法. 函数 Trace[expr] 给出 了显示计算过程中产生的子表达式的嵌套列表.

首先令 a=7

这里给出了计算过程中所产生的子表达式的嵌套列表

Mathematica 中适合不同定义的顺序是十分重要的. Mathematica 在内部定义 之前使用你所给出的定义,这意味着用户给出的定义超越内部定义.

这表达式用内部定义 ArcSin 计算

可以自己给出 ArcSin 的定义,但必须先清除保护属性

在内部定义之前使用了刚给出的定义

2.4.10 节的讨论知道,可以把符号与定义通过上值或下值联系起来, Mathematica 在下值之前试用上值,对表达式 Mathematica 在与 有关的定义.这一顺序遵循特殊定义在一般定义之前使用的原则. 通过在与函数有关的下值之前使用与变量有关的上值,Mathematica 允许 定义一些能超越一般函数的特殊变量.

这里定义了 f[g[x_]] f 有关的一个规则

这里定义了 f[g[x_]] g 有关的一个规则

g 有关的规则先于与 f 有关的规则而使用

删除了与g有关的规则后,就使用与f有关的规则

定义使用的顺序

Plus 等大部分 Mathematica 的内部函数有下值,一些 Mathematica 的内部对象也有上值. 例如,表示幂级数的 SeriesData 对各种数学运算有内部定义的上值.  等表达式在 Mathematica 的标准运算过程中试用的 所有定义的顺序为

• 用户给出的与 有关的定义;
 有关的内部定义;
• 用户给出的与 有关的定义
 有关的内部定义

上值在下值前使用在许多情况下是很重要的.在定义一个复合运算时, 可以定义复合对象的上值,一旦这些对象出现,上值就被使用. 也可以对这个 复合给出一个过程,这个过程在没有出现特定对象的情况下使用. 对这一 过程可以定义下值,因为下值在上值之后使用,所以仅当所有对象都没有 上值时才使用此过程.

q 有关的对象的复合

comp 有关的复合的一般规则

给出两个对象 q 时,与 q 有关的规则就被使用

给出两个 r 对象时,与 comp 有关的一般规则就被使用

在一个表达式中一般会有几个对象具有上值,Mathematica 先检查表达式的头部, 并试用与它有关的上值,随后检查表达式的每个元素,试用其上值. Mathematica 先对用户定义的上值,再对内部定义的上值实施这一过程.在 一系列元素中,先出现元素的上值优先于晚出现元素的上值.

定义 p 关于 c 的上值

定义 q 的值

使用哪一个上值依赖于 c 中哪一个变量先出现



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.