Математическое моделирование.

Информатика. Учебник для 9 класса (по учебнику К. Ю. Полякова, Е.А. Еремина, базовый уровень) 

§14. Математическое моделирование.


Постановка задачи

Ключевые слова:

• математическая модель	
• хорошо поставленные задачи
• существенные данные
• тестирование модели
• компьютерная модель
• эксперимент
• анализ результатов
		моделирования

Для того чтобы исследовать модель с помощью компьютера, нужно записать её на каком-то формальном языке. Условия многих задач точнее всего записываются с помощью языка математики — в виде формул. Такие модели называются математическими.

Когда формулы написаны, для исследования модели с помощью компьютера нужно написать программу — составить компьютерную модель. В этом параграфе мы на примерах рассмотрим основные этапы разработки и исследования математических моделей.

Этап постановки задачи — самый важный при моделировании. Если здесь допущена ошибка, то фактически решается совсем не та задача, которую нужно решить, и после завершения моделирования всё придётся начать заново.

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

• заданы все связи между исходными данными и результатом;
• известны все исходные данные;
• решение существует;
• решение единственно.

К сожалению, в реальных задачах бывает сложно строго доказать существование и единственность решения; более того, задача может иметь множество решений. В таких случаях формулировку задачи можно уточнить, например, так:

• найти любое решение, если оно существует;
• найти все решения в некоторой области (например, все решения уравнения на отрезке [0,1]);
• найти всё множество решений (например, для уравнения sin х = 1).

Приведём примеры плохо поставленных (некорректных) задач.

Задача 1. Уроки в школе начинаются в 8-30. В 10-00 к школе подъехал красный автомобиль. Определите, когда Шурик выйдет играть в футбол.

Задача 2. Мальчик Вася в синей кепке бросает белый мяч со скоростью 12 м/с. Через какое время мяч впервые ударится о земную поверхность?

Задача 3. Решите уравнение sinx = 4.

Задача 4. Найдите функцию, график которой проходит через точки (0, 0) и (1, 1).

Для каждой из этих задач определите, почему их нельзя считать хорошо поставленными.

Что делать, если полученная задача плохо поставлена? Решить её нельзя, поэтому остаётся уточнять условия и исходные данные. Если и это невозможно, нужно вводить допущения — упрощающие предположения, которые позволят сделать задачу хорошо поставленной.

Все дальнейшие рассуждения мы будем проводить для задачи 2.

Она плохо поставлена, потому что неизвестно, из какой точки и под каким углом брошен мяч. Дополним условие, чтобы сделать задачу корректной, например, так: Вася бросает мяч вертикально вверх. В момент броска мяч находится на высоте 1,5 м.

Всегда ли существует решение задачи 2? Да, всегда. По закону всемирного тяготения мяч притягивается к земной поверхности и когда-нибудь упадёт на поверхность.

Единственно ли решение? Да, в этой задаче решение единственно.

Разработка математической модели

На этапе разработки математической модели нужно:

1) выделить исходные данные, существенные для решения данной задачи;
2) построить математическую модель, отражающую только существенные свойства оригинала.

Какие данные в формулировке задачи 2, на ваш взгляд, существенные, а какие — нет?

Введём некоторые допущения:

• мяч — материальная точка (его размеры малы в сравнении с высотой полета);
• сопротивление воздуха не учитывается.

При решении задачи могут использоваться несколько моделей разных типов. Например, для лучшею понимания полезно построить графическую модель задачи (рис. 3.1).

Математическое моделирование.

Рис. 3.1За начало координат удобно принять точку, отсуда вылетает мяч. Обозначим через и v0 начальную скорость мяча, через h0 — начальную высоту мяча h0 = 1,5 м) — это исходные данные. Нужный результат — это время полёта мяча tn (рис. 3.2).

Математическое моделирование.

Рис. 3.2

Графическая модель не даёт ответа на поставленный вопрос, а только позволяет лучше понять задачу. Поэтому для численных расчётов нужно построить математическую модель — связать с помощью законов физики известные данные и результат.

Координата y при движении тела, брошенного вертикально вверх, вычисляется по формуле:

Математическое моделирование.

где g ? 9,81 м/с2 — ускорение свободного падения. Эта формула и представляет собой математическую модель задачи. В ней нет упоминания о Васе, мяче, и т. п., есть только условные обозначения. Мы выполнили формализацию — построили формальную модель на языке математических формул.

По условию задачи нужно найти время tn, при котором мяч упадёт на земную поверхность. Запишите условие «мяч упадёт на землю» в виде формулы и затем запишите уравнение, которое нужно решить.

Тестирование модели

После построения модели её обязательно нужно протестировать (проверить).

Тестирование — это проверка модели на наборе исходных данных с известным результатом.

Например, при моделировании накопления денег в банке сумма не должна меняться при нулевой ставке. Тестирование модели движения судна тоже начинается с простых задач: если штурвал поворачивают влево, судно должно уходить влево, и наоборот.

Удачное тестирование модели не гарантирует, что она правильна; тестирование может только установить ошибочность модели. Чтобы доказать её правильность, нужно проверить модель при всех допустимых исходных данных (в том числе и для тех, для которых правильный ответ неизвестен), а это практически невозможно.

Выполним тестирование математической модели, построенной для нашей задачи:

Математическое моделирование.

Используя эту модель, определите:

а) чему равна координата у мяча при t = О?
б) станет ли в какой-то момент координата у равной нулю? Почему?
в) что произойдёт при нулевой начальной скорости?

Все результаты не противоречат теории, поэтому можно считать, что тестирование успешно.

Можно ли считать, что мы доказали правильность модели? Почему?

Руслан построил свою модель движения мяча, брошенного вертикально вверх:

Математическое моделирование.

Выполните тестирование модели по тем же критериям, сделайте выводы.

У Марии для той же задачи получилась ещё одна модель:

Математическое моделирование.

Выполните тестирование модели по тем же критериям, сделайте выводы.


Построение компьютерной модели

Мы только что получили модель задачи, которая свелась к уравнению:

Математическое моделирование.

Это квадратное уравнение можно решить аналитически, получить точный ответ в виде формул. Эти формулы нужно заложить в программу. Приведём программы на алгоритмическом языке и на языке Паскаль, которые находят решение по формулам, известным вам из курса математики:

Математическое моделирование.

Изучите программу и ответьте на вопросы.

— Что обозначают переменные а, b, с, D, t1 и t2?
— Какое из двух решений квадратного уравнения нужно выбрать?
— Какой результат возвращает стандартная функция sqrt?
— Может ли случиться так, что уравнение не будет иметь вещественных корней?
— Как изменить начальную высоту шарика и начальную скорость?

В более сложных случаях точное решение найти не удаётся, и приходится строить компьютерную имитационную модель. Для этого можно применить табличный процессор (OpenOffice Calc, Microsoft Excel и т.п.), написать собственную программу на одном из языков программирования или использовать готовую среду для моделирования (например, Simulink или VisSim). К сожалению, такие модели чаще всего дают только приближённое (неточное) решение задачи.

Попробуем написать свою программу для имитационного моделирования. Как вы знаете, компьютер — это дискретное устройство, он работает с дискретными данными. Поэтому нужно выполнить дискретизацию задачи. Мы будем вычислять скорость и высоту шарика только в отдельные моменты времени 

Математическое моделирование.

 — это небольшой интервал времени, который называют интервалом дискретизации. Таким образом, рассматриваются только значения времени

Математическое моделирование.

 , где

Математическое моделирование.

Пусть в начале отрезка [ti, ti+1] (при t = tt) мы знаем координату (высоту) шарика y1 и значение его скорости vt. Для простоты будем считать, что в течение времени tt ? t < ti+1 скорость не изменяется, а в конце отрезка изменяется скачком. Тогда координату и скорость в конце отрезка (в момент ti+1) можно вычислить по формулам:

Математическое моделирование.

Здесь g — это ускорение свободного падения, благодаря которому изменяется скорость.

Запишите значения координаты и скорости в конце первого и второго отрезков времени (в моменты t1 и t2), выразив их через известные величины: 

Математическое моделирование.

Так как в каждый конкретный момент нас интересуют только текущие значения координаты и скорости, в программе будем использовать всего одну переменную у для хранения текущей координаты (т. е. координаты в данный момент времени) и одну переменную v для хранения текущей скорости. Получается такая программа:

Математическое моделирование.

Изучите программу и ответьте на вопросы.

— Что обозначают переменные y, v и t?
— Какие начальные значения присваиваются переменным y, v, и t? Почему именно такие?
— Когда работа цикла завершится?
— Может ли случиться так, что цикл будет работать бесконечно?
— Что произойдёт, если в условии работы цикла использовать строгое неравенство y > 0?
— Значение какой переменной выводится в качестве результата? Почему?
— Как изменятся при уменьшении интервала дискретизации 

Математическое моделирование.

 длина текста программы и количество операций, выполняемых компьютером?

Для тестирования этой программы нужно провести контрольные расчёты для простых случаев с известным результатом, например для тех, которые мы ранее использовали при тестировании математической модели. Если проверка прошла удачно (противоречий не обнаружено), можно переходить к компьютерному эксперименту.

Эксперимент с моделью

Эксперимент — это испытание модели в тех условиях, которые нас интересуют (результатов мы заранее не знаем). Например, для модели накопления денег в банке задаётся ненулевая ставка (процент ежегодного увеличения); движение судна моделируется с учётом случайных помех — морского волнения и ветра и т. п.

Объём данных, получаемых при математическом моделировании сложных физических процессов, часто настолько велик (мегабайты и даже гигабайты!), что эти данные сначала сохраняют в виде файлов, а потом обрабатывают специальными программами.

Можно ли слепо верить результатам моделирования? Конечно же нет, ведь мы не проверяли (и не могли проверить!) работу модели в этих условиях. Поэтому необходим анализ результатов.


Анализ результатов

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

Например, если оказалось, что при наличии трения объект движется быстрее, чем без трения, то модель, скорее всего, ошибочна.

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


Часто считается, что допустимо расхождение результатов эксперимента и моделирования не более, чем на 10%.


Если же результаты нас не устраивают (поведение объекта и оригинала значительно различаются), требуется вернуться к одному из предыдущих этапов и повторить моделирование, например:

• изменить алгоритм или условия моделирования;
• изменить модель: учесть дополнительные свойства, которые ранее считались несущественными (например, учесть сопротивление воздуха);
• изменить постановку задачи (если выяснилось, что решили не ту задачу, которую нужно было решать).

Возможно, что несоответствие вызвано принятыми допущениями. Так, в задаче с полётом мяча полезно ответить на следующие вопросы, которые помогут выяснить причину неудачи:

— Что изменится, если начальная скорость будет отличаться от заданной?
— Что изменится, если мяч не считать материальной точкой?
— Насколько сильно сопротивление воздуха влияет на результат? И т. д. …

Выводы

• Математическая модель — это модель, записанная в виде математических формул.

• Основные этапы математического моделирования — это постановка задачи, разработка модели, тестирование модели, разработка компьютерной модели, эксперимент с моделью и анализ результатов.

• Задача называется хорошо поставленной, если:

— заданы все связи между исходными данными и результатом;
— известны все исходные данные;
— решение существует;
— решение единственно.

• При построении модели нужно выделить существенные данные, влияющие на результат.

• Тестирование — это проверка модели на простых исходных данных с известным результатом.

• Для проведения компьютерных экспериментов нужно построить компьютерную модель на основе математической модели. Для этого можно написать свою программу, использовать табличный процессор или специальную среду моделирования.

• Компьютерный эксперимент — это испытание модели в тех условиях, для которых мы не знаем результата.

• После выполнения компьютерного эксперимента выполняется анализ результатов.

Нарисуйте в тетради интеллект-карту этого параграфа.


Вопросы и задания

1. Что делать, если задача плохо поставлена?

2. Как выделить существенные свойства, которые нужно учесть в модели?

3. В чём различие между математической моделью и словесным описанием?

4. Как вы думаете, перечень этапов моделирования при использовании моделей других типов (не математических) будет таким же или другим?

5. Задача сформулирована так:

Электрик Семён в зелёном комбинезоне едет на красном автомобиле «Лада Калина» из Москвы в Воронеж. Его средняя скорость равна 90 км/ч, причём каждые 2 часа Семён отдыхает по 15 минут. Когда он приедет в Воронеж?
Какие данные здесь существенны, а какие — нет? Каких данных не хватает?

6. Можно ли доказать правильность (или ошибочность) модели с помощью тестирования?

7. Чем эксперимент с моделью отличается от тестирования?

8. Что делать, если после анализа результатов моделирования обнаружилось, что поведение оригинала существенно отличается от поведения модели?

9. Выполните по указанию учителя задания в рабочей тетради.

Подготовьте сообщение

а) «Математическое моделирование»
б) «Программные средства для моделирования»


Оглавление

§13. Модели и моделирование.

§14. Математическое моделирование.

§15. Табличные модели. Диаграммы.