Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MODEL.DOC
Скачиваний:
3
Добавлен:
16.09.2019
Размер:
364.54 Кб
Скачать

3.3 Вычислительные процессы

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

Прежде всего, следует отметить, что пакет может работать в одном из двух режимов, задаваемых соответствующей опцией окна управления. В обычном (не итеративном) режиме, принятом по умолчанию, считается, что моделируемый процесс развивается во времени так, что независимой переменной является переменная t,. изменяющаяся от 0 до 20 с шагом 0.1. Имя независимой переменной, пределы ее изменения и шаг могут быть изменены пользователем произвольным образом. Этот режим используется тогда, когда математическая модель предполагает решение дифференциальных уравнений с производными по независимой переменной.

Заметим попутно, что в окне опций можно установить способ задания углов как аргументов тригонометрических функций - радианный или градусный. Здесь же задается количество выводимых цифр после десятичной точки в дробной части числа, представляемого в окне таблиц - Decimal places. Значение в поле Exponential threshold задает порядок числа, начиная с которого величина выводится в экспоненциальном представлении: мантисса, умноженная на степень десяти. Если здесь стоит 0, то данные всегда выводятся в экспоненциальном формате.

Второй режим, названный итеративным (устанавливается меткой Iterative при настройке опций окна управления), реализует многократное циклическое исполнение последовательности действий, записанных в окне модели. Количество циклов выполнения этой последовательности задается в опциях управления конкретным целым числом. Итеративный режим не предусматривает (и, более того, запрещает) автоматическое решение дифференциальных уравнений, хотя разработчик может «вручную» записать в окне модели реализацию соответствующего численного метода. При этом никакой независимой переменной программа не создает, и относящиеся к ней установки опций в окне управления будут не активируемыми. Уже из названия режима понятно, что он предназначен для реализации вычислений по итеративным схемам. Типичными применениями такого режима могут являться метод последовательных приближений для самых разнообразных задач, метод Ньютона для поиска корней уравнений, вычисление сумм последовательностей.

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

После успешной интерпретации модели система подготавливает к выполнению (но до запуска модели на исполнение не выполняет) численный алгоритм решения. В качестве такового MODELLUS использует схему Рунге-Кутта четвертого порядка без автоматического выбора шага. Следует отметить, что точность решения в первую очередь зависит от выбора шага интегрирования. Во многих случаях принятый по умолчанию шаг изменения независимой переменной, равный 0.1, не обеспечивает необходимой точности. В этом случае необходимо подобрать меньший шаг, используя установку опций окна управления. В результате интерпретации в окне параметров появляются поля для ввода значений, соответствующих начальным условиям задачи Коши. Начальные условия должны задаваться только числовыми константами. Теперь часть модели, описываемая дифференциальными уравнениями, готова к реализации. Процесс вычислений по схеме Рунге-Кутта реально начнется после того, как вы запустите модель на выполнение. При этом вы получаете решение уравнений как функции времени с шагом, заданным опциями управления. Решение заканчивается по достижению времени, указанного в тех же опциях. Возможно ли «досрочное» прекращение расчетов? Да. Во-первых, можно приостановить или полностью прервать процесс из окна управления. Во-вторых, поместив в описание модели управляющую конструкцию типа if (y<0) then (t=20), вы можете проинструктировать модель об автоматическом прекращении работы, как только переменная у станет отрицательной - предполагается, что в опциях управления задан верхний предел для t, равный 20.

Все остальные строки записи модели должны представлять собой либо выражения присваивания для каких либо переменных, либо управляющие конструкции. Эти элементы выполняются в той последовательности, в какой они записаны. Окончательная интерпретация модели определяет, какие значения переменных в данной записи остаются неопределенными. Они рассматриваются как параметры (входные данные) модели и появляются в окне параметров. Как и для начальных условий, параметрам должны быть приданы числовые значения. По умолчанию все параметры и начальные значения обнуляются, что можно видеть в окне параметров сразу после интерпретации модели. В следующем разделе будет подробно показано, как параметры модели (но не начальные условия) можно менять в процессе работы модели из окон анимации.

В процессе выполнения расчетов могут возникнуть разного рода аварийные ситуации. Реакция системы на попытку деления на 0 довольно непредсказуема, поскольку зависит от того, в каких условиях это произошло. Более благополучно дело обстоит с попыткой извлечения квадратного корня из отрицательного числа. Ничего страшного при этом не произойдет - даже не прервется процесс вычислений. Однако если в окне таблиц предполагается вывод значения с таким конфузом, то на этом месте будет просто пропечатан дефис. В графических окнах при этом будет прорисован знак радикала.

Некоторые дополнительные возможности открываются при использовании упоминавшегося выше символа . Выражение t имеет численное значение шага изменения независимой переменной - того самого, которое задается опциями окна управления. Применение этой конструкции позволяет, в частности, автоматически учитывать величину шага при записи модели, когда вы меняете его значение.

В программу встроена возможность численного определения производных функций. Если, например, в модели есть последовательность выражений: y=sin(x) z=dy/dx, то переменная z будет иметь численное значение, равное cos(x), подсчитанное при текущем значении х. Здесь необходимо отметить один важный момент. Операции с производными допустимы только в обычном (не итеративном) режиме. Попытки использования производных, включая решения дифференциальных уравнений, в итеративном режиме вызывают диагностирование ошибки на этапе интерпретации модели.

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

Практикум «Пакет MODELLUS»

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]