Перехват предупреждений / ошибок Mathematica без их отображения

У меня проблема с NDSolve в системе Mathematica, которую я запускал несколько раз с разными значениями параметров. Для некоторых из этих значений решение приводит к сингулярностям, и NDSolve предупреждает с помощью NDSolve :: ndsz или других связанных предупреждений.

Я просто хотел бы перехватывать эти предупреждения, подавлять их отображение и просто отслеживать факт возникновения проблемы для этих конкретных значений параметров. Я подумал о следующих вариантах (ни один из которых не помогает):

  1. Я знаю, что могу определить, привела ли команда к предупреждению или ошибке, используя Проверка . Однако это все равно будет отображать предупреждение. Если я выключу его с помощью Off , Check также не сможет сообщить о предупреждении.
  2. Можно остановить NDSolve с помощью метода EventLocator , поэтому я может проверить очень большие значения функции или ее производных и в этом случае остановить вычисление. Однако на практике это все равно время от времени выдает предупреждения, предположительно потому, что размер шага иногда может быть настолько большим, что предупреждение NDSolve срабатывает до того, как произошло мое Событие .

Есть ли другие предложения?

12
задан Kasper Peeters 15 March 2011 в 09:57
поделиться