Mathematica 9 is now available
THIS IS DOCUMENTATION FOR AN OBSOLETE PRODUCT.
SEE THE DOCUMENTATION CENTER FOR THE LATEST INFORMATION.
Mathematica >
How to | 创建和使用规则
Mathematica 中的变换规则使您可以为符号、函数及所有其它类型的表达式设置局部值. 规则的使用提供了一个强大和可扩展的方法,用您指定的值来取代另一表达式的全部或一部分.
规则的缩写形式使用一个右箭头,它可以通过输入 得到(在 - 和 > 之间无空格). 在进一步输入时, Mathematica 前端自动将 转化为 . 任何一个符号都是 Rule 的缩写形式.
创建下述变换规则,它可以被认为是"":
In[1]:=
Click for copyable input
Out[1]=
通过观察 的输出,您可以看到该规则并不做任何事情:输出仅仅是规则本身. 这是因为当规则单独存在时,它们是没有任何作用的. 您必须将规则与表达式合用才会有所用处.
规则可以通过使用 应用于表达式(ReplaceAll 的缩写形式). 一般的语法为 .
将规则用于表达式:
In[57]:=
Click for copyable input
Out[57]=
要将多个规则用于一个表达式,要把它们放到一个列表中
In[58]:=
Click for copyable input
Out[58]=
如果对同一变量给出两个规则,Mathematica 将仅用第一个规则:
In[59]:=
Click for copyable input
Out[59]=
可以将变量用任何表达式代替,而不只是单独的值.
替换 :
In[60]:=
Click for copyable input
Out[60]=
可以使用一个规则代替表达式的一大部分:
In[62]:=
Click for copyable input
Out[62]=
事实上,规则可以用于包括函数在内的任何表达式.
替换 :
In[65]:=
Click for copyable input
Out[65]=
使用一个规则. 注意该规则与 完全匹配,并不影响
In[64]:=
Click for copyable input
Out[64]=
要代替函数 ,而不论其自变量如何,您必须在规则中使用一种模式.
规则 可以被读作 "":
In[18]:=
Click for copyable input
Out[18]=
关于使用模式的更多信息,请参见"模式引言."
    
使用 设置的规则是即时规则. 也就是说,右端与规则同时计算:
In[1]:=
Click for copyable input
Out[1]=
您有时可能要使用延时规则,这种规则在用于表达式之前保持不被计算. 延时规则通过 RuleDelayed 创建.
延时规则的缩写形式是 (: 和 > 之间无空格). Mathematica 前端会自动将 转换成 . 任何一个都代表 RuleDelayed 的缩写形式:
In[2]:=
Click for copyable input
Out[2]=
考虑这样一个问题:您希望使用一个规则来生成3个在0和1之间的随机实数. 使用即时规则生成的是3个相同的数:
In[3]:=
Click for copyable input
Out[3]=
要得到三个不同数值,使用延时规则:
In[4]:=
Click for copyable input
Out[4]=
    
显式使用 的赋值具有全局效应,而规则仅对使用它的表达式产生影响.
赋为 ,然后计算 来查看它的值:
In[19]:=
Click for copyable input
In[2]:=
Click for copyable input
Out[2]=
使用规则将一个值赋给
In[20]:=
Click for copyable input
计算 ,可以看到赋给它的值并没有保存:
In[4]:=
Click for copyable input
Out[4]=
规则必须用于表达式才有作用. 然而,您可以将一个规则赋给一个符号,然后像使用规则一样使用这个符号.
使用 将规则 赋给 ,然后将 应用于一个表达式:
In[68]:=
Click for copyable input
In[69]:=
Click for copyable input
Out[69]=
由于 现在作为符号 被全局保存,您可以继续在 的地方使用 .
类似地,您可以将一个表达式赋给一个符号,然后对这个符号应用规则:
In[22]:=
Click for copyable input
In[6]:=
Click for copyable input
Out[6]=
当您将表达式用于多个计算时,这样做尤其方便.
Ask a question about this page  |  Suggest an improvement  |  Leave a message for the team
格式:   HTML  |  CDF