1. Можем ли мы численно определить жесткость, просто применяя явные методы?
[ 0 , 10 ]τ= 1 τ
τ= 0,1
τ= 0,1[ 0 , 10 ]⋆
Итак, проблема жесткая? Ответ НЕТ ! Небольшой размер шага здесь необходим для правильного воспроизведения колебаний решения .
Y'( t ) = - 2 cosπт ,Y( 0 ) = 1.
τ= 1
τ= 0,1
τ= 0,1[ 0 , 10 ]⋆
Эта проблема жесткая? ДА ! Мы сделали очень маленькие шаги, чтобы воспроизвести решение, которое меняется очень медленно. Это иррационально! Величина временного шага здесь ограничена свойствами устойчивости явного Эйлера .
Эта проблема
Y'( Т ) = - 2 г( т ) + грехт / 2 ,Y( 0 ) = 1.
⋆
Вывод: информация о временных шагах и соответствующих ошибках недостаточна для определения жесткости. Также стоит посмотреть на полученное решение. Если он изменяется медленно и размер шага очень мал, проблема, скорее всего, будет жесткой. Если решение колеблется быстро, и вы доверяете своей методике оценки ошибок, тогда эта проблема не является жесткой.
2. Как определить максимальный размер шага, который позволяет интегрировать жесткую задачу с явным методом?
Если вы используете какой-то явный решатель черного ящика с автоматическим пошаговым управлением, вам ничего не нужно делать: программа адаптирует требуемый размер шага адаптивно.
[ Λ , 0 ]Λ = - 1000
[ - 2 , 0 ]τΛ τ
τ≤ 2| Λ |,
τ≤ 1| Λ |,
1 / | Λ | < τ≤ 2 / | Λ |
Конечно, такой анализ в основном применим для линейных задач с известным спектром. Для решения более практических задач мы должны полагаться на численные методы определения жесткости (см. Ссылки и комментарии в других ответах).