Ошибка Mathematica "не является целым числом"
Я провожу некоторые симуляции с Mathematica с помощью NDSolve, и мне нужно представить эффект температуры. Я определяю таблицу случайных чисел, а затем делаю из нее функцию следующим образом:
randomtablex =
Table[RandomVariate[NormalDistribution[]], {i, 1,
IntegerPart[3 tspacer/deltats] + 1}];
randomtabley =
Table[RandomVariate[NormalDistribution[]], {i, 1,
IntegerPart[3 tspacer/deltats] + 1}];
randomtablez =
Table[RandomVariate[NormalDistribution[]], {i, 1,
IntegerPart[3 tspacer/deltats] + 1}];
Bterp[t_] :=
{randomtablex[[IntegerPart[t/deltats] + 1]],
randomtabley[[IntegerPart[t/deltats] + 1]],
randomtablez[[IntegerPart[t/deltats] + 1]]};
куда 3tspacer
это время интеграции и deltats
время изменения теплового поля. Симуляция работает нормально и результаты верны, но каждый раз я получаю это сообщение об ошибке:
Part:: pspec: "Спецификация детали 1+IntegerPart[1000000000000 t] не является ни целым числом, ни списком целых чисел".
Как я уже сказал, это на самом деле не проблема, но меня беспокоит, что он продолжает появляться... Есть ли способ узнать, откуда он взялся, или я должен просто выключить его?
заранее спасибо
1 ответ
Это произойдет, если вы получите доступ Bterp[]
с символическим аргументом t
Попробуй это:
ClearAll[Bterp]
Bterp[t_?NumericQ] := ....
http://support.wolfram.com/kb/3820
В сторону, IntegerPart[x]+1
такой же как Ceiling[x]
(при условии x>0...)