У меня есть проблема с NDSolve в Mathematica, которую я запускаю несколько раз с разными значениями параметров. Для некоторых из этих значений решение приводит к особенностям, и NDSolve предупреждает с помощью NDSolve:: ndsz или других связанных предупреждений.
Я просто хотел бы поймать эти предупреждения, подавить их отображение и просто следить за тем, что возникла проблема для этих конкретных значений параметров. Я думал о следующих вариантах (ни один из которых действительно не трюк):
- Я знаю, что могу определить, вызвала ли команда предупреждение или ошибку, используя
Check
. Тем не менее, это все равно отобразит предупреждение. Если я отключу его с помощьюOff
,Check
не сообщит об этом также. - Можно остановить NDSolve с помощью метода
EventLocator
, поэтому я мог бы проверить очень большие значения функции или ее производных и прекратить оценку в этом случае. Однако на практике это по-прежнему вызывает предупреждения время от времени, по-видимому, потому, что размер шага иногда может быть настолько большим, что предупреждение NDSolve запускается до моегоEvent
.
Любые другие предложения?