在使用Mathematica进行计算的时候,变量名的定义顺序,是可能会影响计算结果的。
比如下面的式子
b = a + 3; a = 2;
第一次执行的时候,计算结果是5。如果修改a=3,再执行一次,结果还是5,因为在计算b=a+3的时候,a的赋值并没有改变,需要再执行一次,结果才会正确。所以一般才会在nb文件的前方加上
Clear["Global`*"]; #或者 Remove["Global`*"];
防止出现此类问题。
这是比较常见的一个问题和解决办法。但是以我的使用经验,仅仅是在nb文件开头Clear或者Remove清除所有变量还是不够的,多次修改nb文件的变量反复计算,仍然会有可能导致某些错误的发生,尤其是在调用外部程序包的时候(比如磁场设计的RADIA),Clear虽然能够清除变量,但是在进行大量的反复修改参数计算后,会出现明显错误的结果,还是需要谨慎对待此问题。
最好的办法就是计算结束或者开始的时候退出一次kernel。
可以在Mathematica的面板上选择 “计算”->“退出内核” 来实现。但是手动操作未免麻烦,可以通过在nb文件末尾加上一下命令。
Quit[];
就能自动退出内核了。