День добрый. Имеются две учебные задачи по численному решению ОДУ.
1. Охлаждение плазмы.
Задача Коши:
где
На всякий случай перечислю константы всякие:
- постоянная Больцмана,
,
,
,
,
. Главное, что поведение функции
серьёзным образом меняется в точке
.
Сказано использовать метод Рунге-Кутты второго порядка. Итерационная схема при этом выглядит так:
Считать нужно до момента, пока
, где
, а шаг по времени взять равным
. В целом проблем особо никаких нет, всё хорошо.
Потом говорится, мол, поиграйте с шагом по времени. Вот тут начинаются проблемы: если поставить где-то в 10 раз больше шаг, то возникают проблемы из-за того, что
задана кусочно (в виде системы). То есть для вычисления где-то на шаге, скажем, в
мы используем ещё "здоровую" правую часть со степенью
, в результате чего из-за большого шага по времени "проскакиваем" область, в которой температура должна меняться по другому закону. Ну, лекарство от этого понятное - в области перед
сделать шаг помельче просто, например.
Однако дальше просят подрубить к этому делу адаптивную регулировку размера шага, где критерием допустимости выступает абсолютная ошибка
. И в конце, цитирую: "Confirm that your scheme is robust to large changes of the timestep size given as input for the first step". Правильно ли я понимаю, что от меня хотят, чтобы я показал, что схема устойчива относительно того, какой я размер шага на первой итерации выставлю? Но разве это имеет смысл вообще? Ведь размер шага на первой итерации не имеет никакого значения, поскольку регулировка его на старте всё равно изменит. Однако если понимать это в смысле "подтвердите, что при большом размере шага всё хорошо", то это не так, ибо см. выше. Что я неправильно понимаю?
Раз уж такое дело пошло, спрошу сразу про эту самую адаптивную регулировку размера шага, поскольку я до конца не понимаю один момент, а именно базовую часть. Итак:
1. Пусть у нас схема p-го порядка.
2. Для некоторого шага
:
3. Делим шаг пополам. Делаем два шага:
4. Мы используем в качестве меры ошибки (поскольку истинная нам неизвестна) величину:
Вопрос: почему мы можем использовать такую величину? Мы предполагаем, что она
? Ну, то есть порядка истинной ошибки, скажем, для случая A (не принципиально, как я понимаю) в этой точке. Или как?
2. Двойной маятник.
Лагранжиан этой системы:
Вроде бы не соврал нигде (в любом случае ЛЛ-1, думаю, у всех имеется).
Нужно свести к системе уравнений первого порядка. Причём для этого почему-то настоятельно рекомендуется использоваться канонически сопряженные импульсы
. У меня в результате получился вот такой монстрик:
Собственно говоря, вопроса два:
1. Почему так настоятельно рекомендуется использовать в качестве новых переменных канонически сопряженные импульсы? Везде видел, что используют просто
и не парятся. Есть ли здесь какой-нибудь сакральный смысл за этим?
2. Может кто-нибудь подтвердить правильность полученного выражения? У меня, увы, ни Maple, ни чего бы то ни было ещё сейчас под рукой нет (а если бы и было что, то, если честно, я бы скорее ошибся там 100 раз).
Заранее спасибо!
(P.S.)
Перенос формулы на другую строку не работает с выключными формулами. Как в этом случае перенести на другую строку?