How to| 终止计算
您可能无意中要求 Mathematica 做了某些并不希望去做的事情,或者并没有意识到某个任务会花费太多时间,这时您可能需要让 Mathematica 在计算中间停止. Mathematica 提供了多种便捷的方式来终止计算,包括菜单项和可用于程序中的命令.
停止或暂停计算的菜单项可以从 计算 菜单中获得:
为了对停止或暂停计算进行说明,首先设置一个需要一些时间才能完成的计算.
此 Do 循环按顺序输出从 1 到 1000 的各个整数,并在每一步暂停半秒钟. 这要花费十分钟以上来完成:
Mathematica 会输出 $Aborted:
如果 放弃计算 不能成功地使计算终止,您还可以通过退出当前内核来完成.
从 计算 ► 退出内核 菜单选择内核名称. 该菜单项位于 计算 菜单的底部. 该例中,Local 是当前内核的名称:
这将使所选内核中的所有计算终止. 退出内核会使您丢失所有进程中的结果,包括对变量和函数的定义以及计算的输出结果. 因此,您应该慎用这种方法.
进行计算必须有一个正在运行的内核. 如果您退出了仅有的运行内核,您必须再次启动一个. 这只需通过计算一个笔记本中的任何表达式,或从 计算 ► 启动内核 菜单中选择一个内核实现.
Mathematica 令您能够暂停计算而不是完全终止. 要这样做,请选择正在运行的计算的单元方括号,然后从 计算 菜单中选择 中断计算:
然后将出现一个对话框,让您选择是继续计算、放弃计算还是在所中断的计算内部启动一个内核子会话:
启动内核子会话可使计算暂停并计算其它表达式. 这对于检查一个长计算中的变量状态或调试很有用.
Mathematica 还提供另一种方式来使用 中断计算 以输入一个内核子会话. 在计算运行的同时,选择您想要计算的表达式的单元方括号,然后选择 计算 ► 在子会话中计算.
通过选择多个输入单元的方括号,并按 Shift+Enter,Mathematica 可以将多个单元发送给内核进行计算.
单元逐个进行计算. 准备计算的队列中单元的方括号会加粗,表示它正在被计算,或是在计算队列中:
要从计算队列中去除一个单元,首先选择该单元的方括号. 在这里,队列中的单元被选定,而 Do 循环继续运行:
要从计算队列中删除所选单元,从 计算 菜单中选择 从计算队列中删除:
您也可以将 Abort 用作 Mathematica 表达式的一部分使计算终止.
定义一个进行固定点迭代的函数,如果值超过一定界限将放弃计算:
| In[9]:= |
| In[10]:= |
| Out[10]= |
| In[11]:= |
| Out[11]= |
