How to| 终止计算

您可能无意中要求 Mathematica 做了某些并不希望去做的事情,或者并没有意识到某个任务会花费太多时间,这时您可能需要让 Mathematica 在计算中间停止. Mathematica 提供了多种便捷的方式来终止计算,包括菜单项和可用于程序中的命令.

停止或暂停计算的菜单项可以从 计算 菜单中获得:

为了对停止或暂停计算进行说明,首先设置一个需要一些时间才能完成的计算.

Do 循环按顺序输出从 1 到 1000 的各个整数,并在每一步暂停半秒钟. 这要花费十分钟以上来完成:

要终止这个计算,首先选择它的单元方括号:

然后从 计算 菜单中选择 放弃计算

Mathematica 会输出 $Aborted

如果 放弃计算 不能成功地使计算终止,您还可以通过退出当前内核来完成.

计算 ► 退出内核 菜单选择内核名称. 该菜单项位于 计算 菜单的底部. 该例中,Local 是当前内核的名称:

这将使所选内核中的所有计算终止. 退出内核会使您丢失所有进程中的结果,包括对变量和函数的定义以及计算的输出结果. 因此,您应该慎用这种方法.

进行计算必须有一个正在运行的内核. 如果您退出了仅有的运行内核,您必须再次启动一个. 这只需通过计算一个笔记本中的任何表达式,或从 计算 ► 启动内核 菜单中选择一个内核实现.

这里,重新启动内核 Local

Mathematica 令您能够暂停计算而不是完全终止. 要这样做,请选择正在运行的计算的单元方括号,然后从 计算 菜单中选择 中断计算

然后将出现一个对话框,让您选择是继续计算、放弃计算还是在所中断的计算内部启动一个内核子会话:

启动内核子会话可使计算暂停并计算其它表达式. 这对于检查一个长计算中的变量状态或调试很有用.

Mathematica 还提供另一种方式来使用 中断计算 以输入一个内核子会话. 在计算运行的同时,选择您想要计算的表达式的单元方括号,然后选择 计算 ► 在子会话中计算.

    

通过选择多个输入单元的方括号,并按 Shift+EnterMathematica 可以将多个单元发送给内核进行计算.

单元逐个进行计算. 准备计算的队列中单元的方括号会加粗,表示它正在被计算,或是在计算队列中:

要从计算队列中去除一个单元,首先选择该单元的方括号. 在这里,队列中的单元被选定,而 Do 循环继续运行:

要从计算队列中删除所选单元,从 计算 菜单中选择 从计算队列中删除

    

您也可以将 Abort 用作 Mathematica 表达式的一部分使计算终止.

终止一系列指令的运行:

In[8]:=
Click for copyable input
Out[8]=

定义一个进行固定点迭代的函数,如果值超过一定界限将放弃计算:

In[9]:=
Click for copyable input

这里,一个不稳定的迭代被放弃:

In[10]:=
Click for copyable input
Out[10]=

这是一个求黄金比率近似值的稳定迭代:

In[11]:=
Click for copyable input
Out[11]=
New to Mathematica? Find your learning path »
Have a question? Ask support »