为什么这个简单的代码会出现Mathematica Hold错误?

时间:2016-03-01 14:32:57

标签: wolfram-mathematica

请查看附件。为什么我在第一个中获得Hold错误而在第二个中没有?问题似乎在于使用的变量名称。感谢。

enter image description here enter image description here

1 个答案:

答案 0 :(得分:1)

简短的回答是,Mathematica中的下标以意想不到的方式表现,应该避免。你只是为了让代码看起来漂亮而引起头痛。

执行此操作时:

  F:=Subscript[F,j]

然后评估F你可能认为未下标的F是一个独立的符号,但是发生的事情是rhs内的FSubscript[]被评估延迟定义F,因此您尝试构建无限递归:

  Subscript[Subscript[Subscript[....,j],j],j]

正如您在第二个示例中看到的,如果您在左侧使用不同的符号,则可以正常工作。

如果你省略了漂亮的格式,它也可以正常工作:

    F:=Fj

现在Fj是与F无关的简单符号