有什么方法可以获取在 Mathematica 中评估表达式期间生成的实际消息?假设我在数值上求解一个 ODE 并且它爆炸了,就像这样
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
标准附加包之一中的函数来获取该信息,但如果我能以某种方式将其从消息中提取出来,那将非常有帮助。