建立连续计算

使用之前的结果
在进行计算时,经常需要使用以前获得的结果. 在 Wolfram 语言中,% 始终代表最后一次计算的结果.
%
生成的最后一个结果
%%
倒数第二个结果
%%% (k times)
之前第 k 个结果
%n
输出行 Out[n] 的结果(慎用)
引用以前的结果的方法.
第一个结果:
上一次的结果加 1:
使用上一次的结果以及倒数第二个结果:
你会注意到 Wolfram 语言中的所有输入和输出行均已编号. 可以使用这些数字来引用以前的结果.
将第 2 行和第 3 行的结果相加:
如果使用 Wolfram 系统基于文本的界面,则连续的输入和输出行将始终按顺序显示. 但是,如果使用 Wolfram 系统的笔记本界面(如使用笔记本界面中所述),则连续的输入和输出行不必按顺序出现. 例如,可以回到前面,在笔记本中的任意位置插入下一个计算. 应该注意到 % 始终被定义为 Wolfram 语言生成的最后一个结果. 这可能是也可能不是显示在笔记本当前位置上方的结果. 使用笔记本界面时,了解特定结果是何时生成的唯一方法是查看 Out[n] 标签. 因为你可以在笔记本中的任何位置插入和删除,所以笔记本中结果的文本顺序与结果生成的顺序无关.
定义变量
当进行长时间计算时,为中间结果命名通常会带来很多方便。就像在标准数学或其他计算机语言中一样,可以通过引入命名变量来做到这一点.
将变量 x 的值设为 5
每当 x 出现时,Wolfram 语言就会将其替换为 5
x 分配一个新值:
pi 被设为 值,精度为 40 位:
这是为 pi 定义的值:
下面给出 的值,与 pi 有同样的精度:
x=value
为变量 x 赋值
x=y=value
xy 赋值
x=.
or
Clear[x]
删除 x 的值
为变量赋值.
分配给变量的值是永久性的,这一点非常重要. 将值分配给特定变量后,该值将一直保留,直到明确地被删除为止. 如果启动全新的 Wolfram 语言会话,则该值会消失.
使用 Wolfram 语言时,忘记先前所做的定义是导致错误的最常见原因. 如果设置 x=5,则 Wolfram 语言将假定你始终希望 x 的值为 5,除非另外明确指出. 为避免出现错误,使用完定义的值后,应立即将其删除.
使用完变量后,立即删除赋给变量的值.
使用 Wolfram 语言时应注意的有益原则.
可以为你定义的变量分配任何名称. 名称的长度没有限制. 但是,一个限制是变量名不能以数字开头. 例如,x2 可以是一个变量,但是 2x 表示 2*x.
Wolfram 语言同时使用大写和小写字母. 有一个约定,内置 Wolfram 语言对象的名称始终以大写字母开头. 为避免混淆,你自己定义的变量应始终以小写字母开头.
aaaaa
只含有小写字母的变量名
Aaaaa
内置对象,以大写字母开头
命名约定.
可以像数学中一样在 Wolfram 语言中键入含有变量的公式. 但是,有几点要注意.
x y 表示 x 乘以 y.
xy 没有空格,是名为 xy 的变量.
5x 表示 5 乘以 x.
x^2y 表示 (x^2) y,不是 x^(2y).
在 Wolfram 语言中使用变量时需要注意的几点.
符号的值
当 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
可以将 x 替换为任何表达式. 下面用 2-y 替换所有的 x
这里是一个转换规则. Wolfram 语言将其视为与其他符号表达一样:
将上面的转换规则应用于表达式 x^2-9
expr/.x->value
将表达式 expr 中的 x 替换为 value
expr/.{x->xval,y->yval}
同时执行几个替换
用数值替换表达式中的符号.
可以通过将规则放在列表中来同时应用规则:
替换运算符 /. 允许你将转换规则应用于特定的表达式. 但是,有时你想要定义应始终起作用的转换规则. 例如,每当 x 出现时,就将 x 替换为 3.
定义变量中所述,可通过 x=33 赋值x 来实现. 一旦完成赋值 x=3,只要出现 xx 就会被 3 替代.
将值 3 赋值给 x
现在,只要出现 x,就会自动被 3 替换:
将表达式 1+a 设为 x 的值:
x 被替换为 1+a
可以将符号的值定义为任意表达式,而不仅仅是数字. 应该意识到,一旦给出了这样的定义,只要该符号出现,就会一直使用该该定义,直到你明确地更改或删除该定义. 对于大多数人而言,忘记删除赋给符号的值是使用 Wolfram 语言时最常见的错误来源.
x=value
定义一个将始终使用的 x
x=.
删除为 x 定义的任何值
为符号赋值.
符号 x 的值依旧是你为它赋的值:
删除赋给 x 的值:
现在,x 没有定义,因此可将其用作纯符号变量:
x 这样的符号可以在 Wolfram 语言中有许多用途,实际上,Wolfram 语言的许多灵活性来自能够随意组合这些用法. 但是,你需要保留 x 的某些不同用法,以免出错. 最重要的区别是在用 x 作为另一个表达式的名称,还是用作仅代表自身的符号变量.
不支持符号计算的传统编程语言仅允许将变量用作对象(通常是数字)的名称,这些对象已被赋值给变量. 但是,在 Wolfram 语言中,x 也可以被视为纯形式变量,可对其应用各种转换规则. 当然,如果明确给出一个定义,例如 x=3,则 x 将始终被 3 代替,并且不再可以用作形式变量.
应该了解的是像 x=3 这样的显式定义具有全局作用. 另一方面,如 expr/.x->3 这样的替换仅影响特定表达式 expr. 除非必要,避免使用显式定义通常会使事情变得简单.
可以将替换与赋值混合使用. 通过赋值,可以为要在其中进行替换的表达式命名,或为要用于替换的规则命名.
为符号 t 赋值:
t 的值,将其中的 x 替换为 2
x 取不同值时 t 的值:
x 被替换为 Pit 的值,以数值方式进行计算:
Wolfram 语言中的四种括号
Wolfram 语言使用了四种括号. 每种括号的含义大不相同. 重要的是要记住所有这些括号.
(term)
分组括号
f[x]
函数的方括号
{a,b,c}
列表的大括号
v[[i]]
用于索引的双括号 ( Part[v,i] )
Wolfram 语言中的四种括号.
当输入的表达式很复杂时,最好在每组括号内放置额外的空格. 这会帮助你更容易地看到匹配的括号对. 例如,v[[ {a,b} ]]v[[{a,b}]] 更容易识别.
运算序列
在使用 Wolfram 语言进行计算时,通常需要经过一系列步骤才能完成. 你可以在一行上完成一个步骤,但是,通常你会发现在一行上放置多个步骤更方便. 很简单,用分号分隔输入内容就可以做到这一点.
expr1;expr2;expr3
完成几个运算,给出最后一个运算的结果
expr1;expr2;
完成运算,不显示任何输出
在 Wolfram 语言中进行系列运算的方式.
在同一行上执行三个运算. 结果是最后一个运算的结果:
如果结束时输入分号,就像是你要进行一系列运算,最后是运算. 这样可以使 Wolfram 语言执行你指定的运算,但不显示任何输出.
expr;
完成计算,但不显示任何输出
抑制输出.
在行的末尾添加分号,指示 Wolfram 语言不显示任何输出:
仍然可以使用 % 来获取被抑制的输出: