Fishers in the snow: Исключения из правил

_____________________________________________________________________________Visit and join this Advanced Physics Forum:

среда, 12 февраля 2014 г.

Исключения из правил

На занятиях по философии, то ли на Физтехе в Харькове, то ли уже в аспирантуре в Москве, нам как-то сказали, что правила это такие штуки, которые не всегда выполняются и из них есть исключения. А законы не имеют исключений, они выполняются всегда.

Еще бывает консенсус, общепринятое мнение, стереотип, предубеждение, предрассудок, предвзятость, пристрастие и очень мощный мэйнстрим, который сродни моде.


В аспирантуре (Москва, Курчатник, 1986-89 гг.) мне полагалось численно решать некие интегро-дифференциальные уравнения для оптимизации производства отрицательных ионов водорода в объемных плазменных источниках, ну и тогда я столкнулся с понятием жестких систем дифференциальных уравнений. Такие уравнения просто так численно не решить, нужно выбирать специфические, "жестко-ориентированные" численные схемы, так как без такой заботы решение численно расходилось. Точнее, решение можно получить и сходящимся, но шаг интегрирования при этом нужно было удерживать очень маленьким, неразумно маленьким в течении всего периода описания кинетики. В книжках это пояснялось на примере пары обыкновенных дифференциальных уравнений:

$\dot{y}_1 (t)= -1000\cdot y_1 (t),\qquad (1)$

$\dot{y}_2 (t)= -1\cdot y_2 (t).\qquad (2)$

Аналитическое решение этой системы уравнений есть

$y_i (t) = y_i (0)e^{\lambda_i t},\quad Y(t) = (y_1, y_2),\qquad (3)$

$\lambda_1=-1000,\quad \lambda_2 = -1.\qquad (4)$

Первый игрек из двумерного вектора $Y$ выходит на константу (ноль) очень быстро, а второй описывает гораздо более медленную эволюцию решения. Можно сказать, что при $t\gg 1/1000$ "быстрой" компоненты решения $Y$ уже нет (ноль), а остается лишь "медленная". Для численного описания медленной компоненты можно было бы делать "большие шаги" $\Delta t\propto 1/|\lambda_2| = 1$ каким-нибудь явным методом, простейший из которых есть метод Эйлера:

$y(t+\Delta t) = \left[1+\dot{y}(t)\Delta t\right]y(t), \qquad (5)$

в котором решение в последующий момент времени очень легко выражается через решение и его производную в текущий момент времени. Однако всякому ясно, что если решать эти уравнения совместно и с большим шагом $\Delta t \lt1$, но $\Delta t \gg /|\lambda_1|=2/1000$, то полное решение $Y$ разойдется из-за расходимости численного решения для быстрой компоненты $y_1 (t)$:  

$|1+\dot{y}_1(t)\Delta t| \gg 1.\qquad (6)$

Конечно, когда уравнения (1) и (2) "развязаны", то спустя некоторый короткий период времени можно решать только одно уравнение (2), а для $y_1$ использовать его "постоянное" значение ноль. Но обычно уравнения в системе уравнений не развязаны, а связаны - решается система не для $Y$ (3), а для $C\cdot Y$, где $C(Y)$ - некая двумерная не диагональная матрица, так что упростить систему до одного уравнения не получается и шаг по времени в явном методе Эйлера диктуется условием численной сходимости самой быстрой компоненты $\Delta t \lt 2/|\lambda_1|=2/1000$. Если период эволюции решения порядка нескольких $1/|\lambda_2|$, то число шагов получится пропорциональным $\lambda_2 / \lambda_1 = 1000$, что чрезмерно много. Из-за этого строгого ограничения на шаг по времени в явных методах такие системы и назвали "жесткими". Для их решения есть специальные неявные методы, позволяющие увеличивать шаг по времени до разумных величин (метод Гира и т. п.).

Я почему об это пишу? Будучи молодым и наивным, и считая, что все численные схемы одна другую стоят, я стал разбираться, а в чем же может быть там принципиальная разница? Оказалось, принципиальная разница есть. Простейший неявный метод Эйлера дает решение во "всегда убывающем" виде 

$y(t+\Delta t) = y(t)+\dot{y}(t)\Delta t\cdot y(t+\Delta t),\qquad(7)$

$y(t+\Delta t) = \frac{y(t)}{\left[1-\dot{y}(t)\Delta t\right]}.\qquad(8)$

Ясно, что в таком решении (8) шаг можно постепенно разогнать и потом идти с большим шагом - "большая скобка" попадает (в идеале) в знаменатель и обеспечивает убывание, а не рост приближенной экспоненты.

Разбираясь с этими особенностями, я придумал свой собственный явный метод, требующий гораздо меньше шагов, чем оценка  в $\lambda_2 / \lambda_1$. Если совсем кратко, то вот: выйдя, как положено, на стационар по быстрой компоненте при помощи маленьких шажков, можно сделать один сразу большой шаг. Быстрая компонента "возродится", конечно, но ее можно занулить последующим маленьким шагом, подобранным так, чтобы ее скобка $\left[1+\dot{y}_1(t)\Delta t\right]$ в (5) "занулилась". То есть, выбрать маленький шаг, строго равным $1 / |\lambda_1|$: $[1+\lambda_1 /|\lambda_1|]=0$. Потом опять можно сделать большой шаг и следом за ним маленький, "корректирующий", зануляющий быструю компоненту. Общее число шагов при такой стратегии выбора переменных шагов в явном методе Эйлера получится гораздо меньше оценки $\lambda_2 / \lambda_1$ из-за наличия больших шагов. Короче, я снабдил обычный явный численный метод жестко-ориентированной стратегией выбора шага интегрирования.

(Смешно вспоминать, но у меня была даже шальная мысль использовать дробные производные для понижения степени жесткости задачи).

Я некоторое время поработал над развитием моих идей, но потом забросил - ввиду бесперспективности приложений. Метод Гира весьма общий, а мой метод очень частный. Я, конечно, набросал черновик статьи, даже частично его напечатал на принтере, но потом всё отставил. К тому же времена наступали очень суровые, берущие за горло и не оставляющие никакой свободы для исследований и мечтаний.

Поэтому всё, что я хотел здесь сказать, так это то, что я смог выкрутиться явным методом в том самом примере, который используется в книжках, как "доказательство неприменимости" явных методов ;-)

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

Комментариев нет:

Отправить комментарий