Kas*_*ers 12 warnings wolfram-mathematica try-catch
我在Mathematica中遇到了一个涉及NDSolve的问题,我使用不同的参数值运行多次.对于其中一些值,解决方案会产生奇点,NDSolve会对NDSolve :: ndsz或其他相关警告发出警告.
我只想捕捉这些警告,抑制它们的显示,并且只是跟踪这些特定参数值出现问题的事实.我想到了以下几个选项(两者都没有真正的诀窍):
Check
.但是,这仍然会显示警告.如果我把它关掉Off
了Check
没有报告警告过.EventLocator
方法停止NDSolve ,因此我可以检查函数或其派生的非常大的值,并在这种情况下停止评估.但是,在实践中,这仍然会不时产生警告,大概是因为步长有时会非常大,以至于NDSolve警告在我Event
发生之前就会触发.还有其他建议吗?
Sim*_*mon 11
如果包裹Check
有Quiet
那么我相信一切都没有问题,只要你想.例如,您可以禁止显示特定消息Power::indet
In[1]:= Quiet[Check[0^0,err,Power::indet],Power::indet]
Out[1]= err
Run Code Online (Sandbox Code Playgroud)
但仍会显示其他消息
In[2]:= Quiet[Check[Sin[x,y],err,Power::indet],Power::indet]
During evaluation of In[2]:= Sin::argx: Sin called with 2 arguments; 1 argument is expected. >>
Out[2]= Sin[x,y]
Run Code Online (Sandbox Code Playgroud)
使用Quiet和Check一起工作:
Quiet[Check[Table[1/Sin[x], {x, 0, \[Pi], \[Pi]}], $Failed]]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4373 次 |
最近记录: |