Разработка математической модели
Построение компьютерной модели
Практическая работа № 10 «Полёт шарика»
Практическая работа № 11 «Полёт шарика-2»
Мы только что получили модель задачи, которая свелась к уравнению:
Это квадратное уравнение можно решить аналитически, получить точный ответ в виде формул. Эти формулы нужно заложить в программу. Приведём программы на алгоритмическом языке и на языке Паскаль, которые находят решение по формулам, известным вам из курса математики:
Изучите программу и ответьте на вопросы.
— Что обозначают переменные а, 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?
— Значение какой переменной выводится в качестве результата? Почему?
— Как изменятся при уменьшении интервала дискретизации длина текста программы и количество операций, выполняемых компьютером?
Для тестирования этой программы нужно провести контрольные расчёты для простых случаев с известным результатом, например для тех, которые мы ранее использовали при тестировании математической модели. Если проверка прошла удачно (противоречий не обнаружено), можно переходить к компьютерному эксперименту.
Следующая страница Эксперимент с моделью