wolfram-mathematica - 对 Mathematica 中生成的消息的反省

标签 wolfram-mathematica

有什么方法可以获取在 Mathematica 中计算表达式期间生成的实际消息?假设我正在对一个 ODE 进行数值求解,它爆炸了,就像这样

In[1] := sol = NDSolve[{x'[t] == -15 x[t], x[0] == 1}, x, {t, 0, 1}, 
                       Method -> "ExplicitEuler"];

在这种情况下,我会收到 NDSolve::mxst 错误,告诉我在 t == 0.08671962566152185 时达到了 10000 步的最大数量。现在,如果我查看 $MessageList 变量,我只会收到消息名称;特别是,关于 t 的值的信息已经丢失,其中 NDSolve 决定退出。

现在,我总是可以使用标准附加包之一的 InterpolatingFunctionDomain 函数从 sol 获取该信息,但如果我能以某种方式将其从的消息,这将是非常有帮助的。

最佳答案

您可以使用 $MessagePrePrint 设置一个函数来存储每条消息以供以后检索。

关于wolfram-mathematica - 对 Mathematica 中生成的消息的反省,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2007160/

相关文章:

layout - Mathematica 中的最佳代码布局?

wolfram-mathematica - 在 Mathematica 中使用单个绘图填充样式

wolfram-mathematica - 确定一个集合是否是另一个集合的子集的函数

wolfram-mathematica - Mathematica 中计算元素数量的最大化函数

wolfram-mathematica - 抑制 Mathematica 数值输出中的尾随 "."

c# - C# 中的复杂计算

wolfram-mathematica - GraphPlots 的大小一致

wolfram-mathematica - mathematica 是否能够做一些平面几何绘图

wolfram-mathematica - 关于 Manipulate 内部动态同步更新的问题

vector - Julia .重新标记向量