Есть ли способ получить фактические сообщения, сгенерированные во время вычисления выражения в Mathematica? Скажем, я численно решаю ОДУ, и она взрывается, вот так
In[1] := sol = NDSolve[{x'[t] == -15 x[t], x[0] == 1}, x, {t, 0, 1},
Method -> "ExplicitEuler"];
В этом случае я получу ошибку NDSolve::mxst
, сообщающую мне, что максимальное число 10000 шагов было достигнуто при t == 0.08671962566152185
. Теперь, если я посмотрю на переменную $MessageList
, я получу только имя сообщения; в частности, информация о значении t
, где NDSolve
решил выйти, была потеряна.
Теперь я всегда могу получить эту информацию из sol
, используя функцию InterpolatingFunctionDomain
из одного из стандартных пакетов дополнений, но если я смогу каким-то образом извлечь ее из сообщения, это будет весьма полезно.