符号的值

当 Wolfram 语言把表达式 x+x 变换成 2x 时,它是把 x 作为纯符号或形式的式子进行处理. 在这种情形下,x 是一个可以代表任何表达式的符号.

然而,常常需要给类似 x 的符号赋一个确定的. 这个值有时是一个数;更多的是另一个表达式.

要对表达式 1+2x 中的符号 x 赋一个确定的值,用户可以建立一个 Wolfram 语言变换规则,然后把这个规则用于该表达式. 例如,把 x 替换成 3,用户应建立变换规则 x->3. 您必须把 -> 作为一对字符输入,中间没有任何空格. x->3 这条规则的含义是x 取值为 3.

要对一个特定的 Wolfram 语言表达式进行变换,使用 expr/.rule. 替换符号 /. 是由两个字符组成,中间没有空格.

在表达式 1+2x 中使用变换规则 x->3.
In[1]:=
Click for copyable input
Out[1]=
可以用任何表达式替换 x. 这里用 2-y 替换 x.
In[2]:=
Click for copyable input
Out[2]=
这里给出一个变换规则,Wolfram 系统把它作为符号表达式处理.
In[3]:=
Click for copyable input
Out[3]=
这里使用上述规则,对表达式 x^2-9 进行变换.
In[4]:=
Click for copyable input
Out[4]=
expr/.x->valuevalue 替换表达式 expr 中的 x
expr/.{x->xval,y->yval}进行多个替换

用值替换表达式中的符号.

可以把多个替换规则写成列表一起使用.
In[5]:=
Click for copyable input
Out[5]=

替换算符 /. 使用户可以对一个特定表达式进行变换. 然而,有时用户想要定义一个总是 被使用的变换规则. 例如,无论 x 何时出现, x 总是被 3 替换.

如同在 "定义变量" 讨论的那样,这可以通过 x=3x 以值 3 来实现. 一旦用户做了赋值 x=3,无论 x 何时出现,x 总是被 3 替换.

这里给 x 赋以值 3.
In[6]:=
Click for copyable input
Out[6]=
现在 x 自动被 3 替换.
In[7]:=
Click for copyable input
Out[7]=
这里给 x 赋以表达式 1+a.
In[8]:=
Click for copyable input
Out[8]=
现在 x1+a 替换.
In[9]:=
Click for copyable input
Out[9]=

用户可以把符号的值定义成任何表达式,而不仅是能定义成数. 应该注意,一旦给出了定义,这个定义将一直被使用,直到用户明确改变或消除该定义. 在使用 Wolfram 语言时,忘记清除已经赋给符号的值是常见的出错原因.

x=value定义 x 的值,值将一直被使用
x=.清除定义给 x 的值

符号赋值.

符号 x 仍然有前边已赋给它的值.
In[10]:=
Click for copyable input
Out[10]=
这里清楚赋给 x 的值.
In[11]:=
Click for copyable input
现在 x 没有被定义值,因此它被用作纯符号变量.
In[12]:=
Click for copyable input
Out[12]=

在 Wolfram 语言中一个符号如 x 可以用作多种不同目的. 事实上,Wolfram 语言的伸缩性主要来自于能够按意愿混合这些目的. 然而,为了避免出错,用户需要直接使用 x 的某种用途. 最重要的区别在于把 x 作为另一个表达式的名称和只代表本身的符号变量.

传统的程序语言并不支持符号计算. 只允许变量作为已经赋值的对象的名称. 然而,在 Wolfram 语言中,x 能被作为一个纯形式变量进行处理,可以对x使用各种变换规则. 当然如果用户明确给出一个定义,如 x=3,那么 x 将总是被 3 代替,而不再作为形式变量.

应当明白,显示定义如 x=3 有一个全局效应. 而替换如 expr/.x->3 仅对指定的表达式 expr 有效. 除非绝对有必要,一般应避免使用显式定义,这样,保持所做的事情是正确的就容易多了.

用户可以将替换和赋值混合使用. 运用赋值,可以对想要作替换的表达式或替换规则给出一个名称.

这里赋给符号 t 一个值.
In[13]:=
Click for copyable input
Out[13]=
这里用 2 替换 t 中的 x.
In[14]:=
Click for copyable input
Out[14]=
这里用不同的值替换 tx 的值.
In[15]:=
Click for copyable input
Out[15]=
这里用 Pi 替换 tx 的值,然后计算近似结果.
In[16]:=
Click for copyable input
Out[16]=