2016-03-01 3 views
0

Пожалуйста, ознакомьтесь с прикрепленными файлами. Почему я получаю ошибку Hold в первом, но не во втором? Проблема, похоже, связана с именами используемых переменных. Благодарю.Почему я получаю ошибку Mathematica Hold для этого простого кода?

enter image description here enter image description here

+0

Добро пожаловать в СЦ! Пожалуйста, прочитайте http://stackoverflow.com/help/how-to-ask –

ответ

1

Короткий ответ, что индексы в Mathematica ведут себя неожиданным образом, и его следует избегать. Вы приглашаете головную боль только ради того, чтобы код выглядел красиво.

Когда вы сделаете это:

F:=Subscript[F,j] 

, а затем оценить F вы, вероятно, думая ООН-индексируются F является самостоятельным символом, но то, что происходит это F внутри Subscript[] на РИТ получает оценку с задержкой определение F и поэтому вы бесконечная рекурсия пытаются построить:

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

Как вы видите в вашем втором примере, если вы используете другой SY Мбол слева работает отлично.

Он также отлично работает, если вы отказаться от довольно форматирования и сделать:

F:=Fj 

как сейчас Fj это простой символ не связан с F

+0

Большое спасибо за ответ. Я подозревал, что подстрочные имена как-то связаны с их неподписными родителями. Я думаю, что если вы напишете подстрочный индекс [F, J] (или используя довольно печатную версию того же самого), то если J равно 10, вы фактически получите F [[10]]. Это было бы хорошо, если бы вам это нужно. –

Смежные вопросы