
- •А.В. Мышлявцев, м.Д. Мышлявцева математическое моделирование в естественных науках
- •Введение
- •Глава 1. Основные понятия и примеры математических моделей
- •1.1. Примеры эмпирических моделей
- •Результаты победителей олимпийских игр в беге на 200 м,
- •Результаты победителей олимпийских игр в беге на 200 м,
- •1.2. Разведение семги
- •1.3. «Ядерная зима»
- •«Волны-убийцы»
- •«Ядерная зима»
- •1.4. Некоторые подходы при моделировании сложных систем и явлений
- •Иерархическая цепочка моделей
- •Многомасштабное моделирование
- •Глава 2. Математическое моделирование в физике
- •2.1. Траектория всплытия подводной лодки
- •2.2. Диффузия
- •2.3. Метод молекулярной динамики
- •Метод Верле и метод «прыжка лягушки»
- •Классическая молекулярная динамика
- •Применение метода молекулярной динамики при моделировании реальных систем
- •2.4. Модель решеточного газа
- •Применение метода трансфер-матрицы при исследовании одномерной мрг
- •Эквивалентность мрг и модели Изинга
- •Применение метода Монте-Карло при исследовании двумерной мрг
- •Глава 3. Математическое моделирование в химии и химической технологии
- •3.1. Уравнения состояния реальных газов
- •Нелинейные уравнения
- •Метод бисекций
- •Метод Ньютона
- •Определение молярного объема реального газа
- •3.2. Вычисление равновесных концентраций
- •Системы нелинейных уравнений
- •3.3. Определение состава газа методом масс-спектроскопии смеси после бомбардировки медленными электронами
- •3.4. Определение числа независимых стехиометрических уравнений
- •3.5. Как плод получает глюкозу от своей матери?
- •Глава 4. Математическое моделирование в биологии
- •4.1. Примеры математических моделей популяционной биологии
- •Уравнение Ферхюльста (логистическое уравнение)
- •Популяционная модель с дискретным временем
- •Модели взаимодействующих видов
- •Модель Вольтерра и ее обобщения
- •4.2. Модель работы нейрона
- •4.3. Третичная структура белка
- •Список литературы
- •Математическое моделирование в естественных науках
Глава 2. Математическое моделирование в физике
Математическое моделирование в физике обладает рядом специфических особенностей. В первую очередь, это связано с тем, что сама физика, особенно теоретическая, является математической моделью окружающего нас мира. Действительно, физические законы выражаются в виде математических формул. Второй важнейшей особенностью является то, что математические модели в физике строятся, исходя из немногих фундаментальных законов.
Мы рассмотрим несколько моделей из различных областей физики, попутно останавливаясь на тех математических алгоритмах, которые используются при решении этих задач.
Рассмотрим следующую простую модель, допускающую аналитическое решение.
2.1. Траектория всплытия подводной лодки
Эта модель будет описываться, исходя из двух фундаментальных законов физики: закона Ньютона и закона Архимеда.
Пусть
подводная лодка при
находится на глубине Н и движется с
постоянной горизонтальной скоростью
v.
В момент времени
подводная лодка начинает подъем. Если
время, за которое цистерны заполняются
воздухом (чтобы обеспечить среднюю
плотность лодки
,
где
–
плотность воды), мало, то можно считать,
что в момент времени
действующая на лодку выталкивающая
сила, равная по закону Архимеда
,
где
– ускорение свободного падения,
– объем подводной лодки, становится
больше, чем вес лодки
.
Таким образом, на лодку начинает
действовать сила, направленная вверх.
Тогда по второму закону Ньютона:
(2.1)
где
– координата по горизонтали,
– по вертикали,
– скорость лодки по горизонтали, которая
предполагается постоянной. Решаем эти
уравнения с учетом начальных условий
и получим:
.
(2.2)
Момент
всплытия лодки
определяется
равенством
и может быть записан в следующем виде:
.
Исключая время из соотношения (2.2), получим уравнение траектории подводной лодки:
.
Основное ограничение данной простейшей модели – неучет сил сопротивления. Полученные соотношения справедливы только при небольшой скорости всплытия лодки.
Рассмотрим усложнение модели, связанное с учетом сил сопротивления. При движении тел в жидкости сила сопротивления со стороны среды может быть записана как
,
где – скорость движения тела, – коэффициент, зависящий от размеров, формы и свойств поверхности тела.
Эта
сила направлена в сторону, противоположную
направлению движения. Установившаяся
скорость движения
в момент времени
определяется силой тяги
двигателей лодки
.
Будем
считать, что сила тяги всегда направлена
параллельно оси
,
а коэффициент
не зависит от направления движения
лодки (фактически это означает, что
лодка аппроксимируется шаром). С учетом
сделанных предположений о силе
сопротивления среды, используя второй
закон Ньютона, перепишем систему (2.1) в
следующем виде:
(2.3)
где – угол между направлением движения лодки и осью .
Учитывая,
что
и
,
где
,
– проекции
скорости
на оси
и
соответственно, перепишем систему (2.3)
в следующем виде:
Окончательно, в стандартном виде математическая модель записывается в виде соответствующей задачи Коши:
(2.4)
Задача (2.4) не может быть разрешена в аналитическом виде по причине своей нелинейности и мы должны использовать какой-нибудь численный метод.
Прежде чем переходить к численному решению задачи (2.4), воспользуемся приемом, который чрезвычайно полезен при решении любых математических задач. Речь идет о переходе к безразмерным переменным.
Введем следующие обозначения:
,
,
.
(2.5)
С учетом (2.5) задача (2.4) перепишется как
(2.6)
Введем
обозначение:
.
Тогда задача (2.6) перепишется как
(2.7)
Как уже говорилось, задача (2.4) и, соответственно, тождественная ей задача (2.7) нелинейна и не может быть решена аналитически. Простейший численный метод, позволяющий решить задачу Коши для обыкновенных дифференциальных уравнений (ОДУ) первого порядка, а также для системы ОДУ первого порядка – это явный метод Эйлера. В настоящее время этот метод практически никогда не используется. Если предполагаемое решение достаточно гладкое (а в данном случае это именно так), то обычно применяется метод Рунге-Кутты четвертого порядка, который по существу является модификацией метода Эйлера. Стандартная схема четвертого порядка широко используется и реализована в таких распространенных пакетах, как Maple, Matlab, Mathcad.
Рассмотрим задачу Коши для системы ОДУ первого порядка:
(2.8)
где
– заданное число,
– заданный вектор,
– искомый вектор.
Тогда приближенные значения в последующих точках вычисляются по итерационной формуле:
,
(2.9)
где
,
,
,
,
– величина
шага сетки по
.
Этот метод имеет четвертый порядок
точности, т.е. суммарная ошибка на
конечном интервале интегрирования
имеет порядок
,
ошибка на каждом шаге порядка
.
Современные методы Рунге-Кутты позволяют выбирать шаг (методы с адаптивным шагом) с одновременной оценкой погрешности. Интуитивно ясно, что на участках плавного изменения решение величину шага можно увеличивать, а на интервалах, где решение изменяется быстро, необходимо уменьшать величину шага. Для правильного выбора шага необходимо предусмотреть оценку локальной погрешности.
Простейший
метод оценки локальной погрешности
заключается в следующем. Производится
одна итерация с шагом
и две итерации с шагом
.
Модуль разности полученных результатов
есть оценка локальной погрешности. Если
она больше некоторой наперед заданной
величины, то шаг уменьшается в два раза
и процедура вычислений повторяется.
Предусматривается также возможность
увеличения шага. Если значения, вычисленные
с шагом
и с шагом
,
отличаются не более чем на
,
то шаг увеличивается вдвое.
Общее правило решения подобных задач заключается в том, что по возможности следует избегать самостоятельного написания программ. Лучше всего выбрать готовый, проверенный и отлаженный код на любом удобном для вас языке. (Авторы пособия по привычке используют хорошо апробированные коды на древнем языке FORTRAN (Фортран)). Впрочем Фортран переживает вторую молодость в связи с тем, что этот язык оказался очень удобным для параллельного программирования.
Фактически при решении задачи Коши для систем ОДУ какой-либо из вариантов адаптивного метода Рунге-Кутты четвертого порядка всегда может служить в качестве первой попытки. Причиной неудачи могут быть специфические особенности решаемой системы уравнений. Наиболее часто причиной служит так называемая жесткость системы. Для решения жестких систем разработаны специальные методы, которые существенно сложнее явных методов Рунге-Кутты и подобных им других явных методов. Методы решения жестких задач будут рассмотрены в следующей главе при обсуждении прямой задачи химической кинетики.