Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2808.Введение в математическое моделирование..pdf
Скачиваний:
111
Добавлен:
15.11.2022
Размер:
38.88 Mб
Скачать

С учетом (2.7) точность броска

 

A= L - x k.

(2.12)

Например, при броске мяча со штрафной линии можно принять сле­ дующие исходные данные: XQ = у0 = ук = 0; хк = 4,225 м; v0 = 6,44м/с; а0 = 45° Тогда из (2.11) и (2.12) имеем L = 4,225м; А = 0 м.

Пример. Алгоритмическое решение задачи о баскетболисте.

В простейшем случае можно использовать метод Эйлера [см. при­ ложение 2]. Алгоритм решения данной задачи на псевдокоде приве­ ден ниже.

А лгоритм 2.1

program Задача о баскетболисте. Данные: т, R —масса и радиус мяча;

х0, у0 ” начальные координаты мяча;

v0, а0 —начальная скорость и угол броска мяча;

хк, ук -

координаты центра корзины;

t -

текущее время;

dt -

шаг по времени;

fx, f y -

силы, действующие на мяч;

хУу у vx,

vy - текущие координаты и проекции

скорости мяча.

Результаты: L и А —дальность и точность броска. start

g :=

9,81

 

R := 0,12

от := 0 ,6

 

v0

:= 6,44

 

<*o:= 4 5

* 0

:= 0

 

Уо := 0

xk := 4,225

 

yk : = 0

vx := v0 cos a

 

 

v

:= VQsin a

 

 

dt:= 0,1

 

 

 

t : =

0

 

 

 

* :=

У •= Уо

 

 

while ((Vj,> 0) or ((v^ < 0) and (y>yk)))

 

 

t := t+dt

 

 

 

 

/,:=

0

 

J силы, действующие на мяч

 

 

f y " - m g

J компоненты скорости

 

 

vx '=

vx + f x dt/m

 

 

vy := Vy+fy dt/m

Jкоординаты мяча

 

 

x : =

x +

dtvx

 

 

y : =

у +

dtvy

end while

 

 

 

L:= X - X Q

Д := x - xk

stop

2.5. РЕАЛИЗАЦИЯ МАТЕМАТИЧЕСКОЙ МОДЕЛИ В ВИДЕ ПРОГРАММЫ ДЛЯ ЭВМ

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

Лоуренс Дж.Питер

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

Процесс создания программного обеспечения можно разбить на ряд этапов [68]:

>составление технического задания на разработку пакета про­ грамм программного обеспечения;

>проектирование структуры программного комплекса;

>кодирование алгоритма;

>тестирование и отладка;

>сопровождение и эксплуатация.

Техническое задание на разработку программного обеспечения оформляют в виде спецификации. Примерная форма спецификации включает следующие семь разделов:

1. Название задачи —дается краткое определение решаемой за­ дачи, название программного комплекса, указывается система про­ граммирования для его реализации и требования к аппаратному обеспечению '(компьютеру, внешним устройствам и т.д.).

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

дач вычислительного характера, метод обработки входных данных для задач не вычислительного (логического) характера и т.д.

3.Управление режимами работы программы —формируются ос­ новные требования к способу взаимодействия пользователя с про­ граммой (интерфейс «пользователь-компьютер»).

4.Входные данные —описываются входные данные, указывают­ ся пределы, в которых они могут изменяться, значения, которые они не могут принимать, и т.д.

5.Выходные данные - описываются выходные данные, указы­ вается, в каком виде они должны быть представлены (в числовом, графическом или текстовом), приводятся сведения о точности и объеме выходных данных, способах их сохранения и т.д.

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

7.Тестовые задачи —приводятся один или несколько тестовых примеров, на которых в простейших случаях проводится отладка и тестирование программного комплекса.

Пример. Спецификация задачи о баскетболисте.

1. Название задачи

 

Название программы

Basketball

Система программирования

Delphi

Компьютер

IBM PC Pentium

Операционная система

Windows-9x, NT

2. Описание

Приводится математическая постановка задачи и описание ме­ тода ее решения, (см. разд. 2.3 и 2.4).

3. Управление режимами работы программы

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

4. Входные данные

Радиус и масса мяча, его начальные координаты и скорость, угол бросания, координаты корзины.

5. Выходные данные

Траектория центра мяча, расчетная величина дальности и точ­ ность броска. Выходные данные представляются в табличном и гра­ фическом виде.

6 . Ошибки

При вводе исходных данных предусмотреть контроль:

>все вводимые значения должны быть положительны;

>угол бросания должен быть в пределах от 5’ до 85°;

>начальная скорость мяча должен быть в пределах от 0 до 30 м/с;

>горизонтальная координата центра корзины должна быть боль­ ше начальной горизонтальной координаты мяча.

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

7. Тестовые примеры

При XQ = у0 = Уь = 0; хк = 4,225; v0 = 6,44; а0 = 45° получаем:

L = 4,225; Д = 0.

На этапе проектирования формируется общая структура про­ граммного комплекса. Вся программа разбивается на программные модули. Для каждого программного модуля формулируются требо­ вания по реализуемым функциям и разрабатывается алгоритм, вы­ полняющий эти функции. Определяется схема взаимодействия про­ граммных модулей, называемая схемой потоков данных программ­ ного комплекса. Разрабатывается план и задаются исходные данные для тестирования отдельных модулей и программного комплекса в целом.

Большинство программ, реализующих математические модели, состоят из трех основных частей:

>препроцессора (подготовка и проверка исходных данных мо­ дели);

>процессора (решение задачи, реализация вычислительного эк­ сперимента);

> постпроцессора (отображение полученных результатов). Лишь для относительно простых случаев эти три составные ча­

сти могут быть оформлены в виде одной программы. При решении современных задач по моделированию поведения жидкостей, газов и твердых тел каждая из частей может включать в себя целый ком­ плекс программ. Например, постпроцессор должен уметь представ­ лять информацию не только в табличном, но и графическом виде (диаграммы, графики зависимости от различных параметров, ото­ бражение скалярных, векторных (тензорных) полей и т.п.). Возмож­ ности пре- и постпроцессора наиболее широко реализуются в со­ временных системах автоматизированного проектирования (САПР), где они в значительной степени могут сократить время на получе­ ние данных и оценку результатов моделирования.

Как правило, создание современных математических моделей в какой-либо области и доведение их до программных комплексов требует значительных временных затрат (минимум 3—5 лет). Тре­ буется время не только на освоение методик и подходов к модели­ рованию в исследуемой области, но и на наработку библиотек про­ грамм по решению возникающих математических задач, по подго­ товке исходных данных и отображению получаемых результатов. Качественные, надежные, обладающие дружественным интерфей­ сом, легко модифицируемые и хорошо сопровождаемые программ­ ные комплексы можно создавать лишь при наличии хорошо про­ думанной стратегии развития программного обеспечения, обеспе­ чивающей его модульность и совместимость по входным и выходным параметрам.

Большое значение следует придавать освоению современных технологий программирования: структурной, абстрактной, объек­ тно-ориентированной и визуальной. Назначение любой техноло­ гии —это в первую очередь повышение надежности программного обеспечения и увеличение производительности труда программис­ та. Причем чем серьезней и объемней программный проект, тем большее значение приобретают вопросы использования современ­ ных технологий программирования. Пренебрежение данными воп­ росами может привести к значительным временным издержкам и снижению надежности программного комплекса.

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

>приближенные и численные методы (процессоры);

>средства подготовки исходных данных (препроцессоры);

>средства визуализации и представления результатов (постпро­

цессоры).

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