Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

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

..pdf
Скачиваний:
19
Добавлен:
15.11.2022
Размер:
2.39 Mб
Скачать

 

 

 

 

НАЧАЛО

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Исходные данные

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вычисление условия

 

 

 

 

 

 

ветвления

 

 

 

 

 

 

 

 

 

 

 

да

 

 

 

 

нет

 

 

 

 

 

 

 

 

Условие

 

 

 

 

ветвления

 

 

 

 

 

 

 

Вычисление 1

 

 

 

Вычисление 2

 

 

 

 

 

 

 

 

 

 

Рис. 22. Вид алгоритма ветвления

В свою очередь последний тип циклов делится:

на цикл с предусловием;

цикл с послеусловием.

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

71

НАЧАЛО

Исходные данные

Задание числа повторений

нет

через изменение параметра

 

 

 

 

 

 

 

I =1 to N

 

 

 

 

 

да

Выход из цикла

 

 

 

 

 

 

Выполнение

операторов (команд), входящих в тело цикла

Рис. 23. Структура циклического алгоритма с заданным числом повторений

Структура циклического алгоритма типа «ПОКА» с предусловием показана на рис. 24. В этом алгоритме после ввода исходных данных вычисляется условие входа в цикл, при истинности которого происходит обращение к телу цикла. После выполнения команд этого тела должны быть подготовлены новые исходные данные и истинность условия для очередного обращения к телу цикла.

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

Структура циклического алгоритма типа «ПОКА» с послеусловием показана на рис. 25. По этому алгоритму после ввода исходных данных сразу же происходит обращение к телу цикла,

72

в котором кроме необходимых действий выполняются еще действия по подготовке условия для выхода из этого цикла.

НАЧАЛО

Исходные данные

Вычисление условия обращения к телу цикла

Анализ условия обращения к телу цикла

да

Выполнение операторов (команд), входящих в тело цикла. Подготовка условия для повторного обращения к телу цикла

нет

Выход из цикла

Рис. 24. Структура циклического алгоритма типа «ПОКА» с предусловием

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

73

НАЧАЛО

Исходные данные

Выполнение операторов (команд), входящих в тело цикла. Подготовка условия для выхода

из цикла

нет

Условие выхода из цикла

да

Выход из цикла

Рис. 25. Структура циклического алгоритма типа «ПОКА» с послеусловием

2.4. Методы решения уравнений цифровой математической модели

При математическом численном моделировании на ЭВМ искомый результат всегда получают через решение уравнений математической модели. Это решение может быть реализовано

спомощью двух методов:

1.Точным методом аналитического решения.

74

2. Приближенным методом итераций.

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

Суть приближенного итерационного (численного) метода

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

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

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

– определять корни линейных или системы линейных алгебраических уравнений;

75

НАЧАЛО

Исходные данные

Вычисление результата модели по уравнениям с первоначальными исходными данными

Оценка точности решения уравнений модели

да

Тф < Тз

нет

Изменение исходных данных

Вывод результата

КОНЕЦ

Рис. 26. Структура итерационного алгоритма

производить численное дифференцирование или интегрирование;

определять корни дифференциального уравнения или системы дифференциальных уравнений различного порядка.

76

2.5. Принцип и алгоритм численного определения корней линейных алгебраических уравнений

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

На первом этапе решения этой задачи необходимо определить область существования корней математической модели. Для этого используют следующие критерии.

На участке существования корней алгебраического уравнения должны быть выполнены следующие условия:

1.На концах отрезка области существования корней алгебраического уравнения функция F(x) должна иметь разные знаки.

2.Функция F(x) в области существования корней должна иметь производную, отличную от нуля.

3.На отрезке области существования корней функция F(x) имеет единственный корень, если производная этой функции не меняет своего знака.

Поиск корней алгебраического уравнения будем производить итерационным методом, используя при этом метод половинного деления. Графически этот принцип представлен на рис. 27.

Для определения области существования корней необходимо первоначально выбрать начальную точку А (исходный аргумент) этой области и задать этому аргументу некоторый шаг приращения ∆, который циклически будет получать этот аргумент в поиске противоположной границы В искомой области. Кроме того, чтобы конкретизировать число итераций в этом поиске, необходимо задаться определенным числом N этих приращений.

77

Рис. 27. Схема определения корней уравнения методом половинного деления

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

Реализация этого метода на ЭВМ возможна с помощью алгоритма, представленного на рис. 28.

По этому алгоритму после его запуска вводятся исходные данные, среди которых параметр А как начальное значение диапазона поиска корней. Число N определяет конечное число итераций в поиске диапазона области существования корней, на котором аргумент дискретно меняется с шагом ∆. Параметр ε – это заданное значение абсолютной точности решения этой задачи.

78

 

 

 

 

 

 

начало

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A, N, ∆, ε

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Y = F(A); Y1 =F(А+ ∆)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

да

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Y < Y1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

нет

 

 

∆ =

− ∆

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X = X + ; Y1=F(X)

 

да

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Y * Y1 < 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

нет

 

 

 

 

 

 

 

 

 

 

 

 

 

 

B = X

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

N = N + N

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Y = F(A)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X = (A + B)/2

Y1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

да

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Y1 = 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

нет

 

 

 

 

 

да

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Y · Y1 < 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

нет

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A =X;Y1 = Y

 

 

 

 

 

 

B = X

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

|B A| <= ε

 

 

 

X = (A + B)/2

 

 

 

да

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

нет

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

конец

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 28. Алгоритм определения корней уравнения методом половинного деления

79

После ввода исходных данных определяется значение функции в точке А и А+∆. Затем анализируется разность этих значений. Если значение функции в точке А окажется меньшим чем в точке А+∆, то это значит, что на этом направлении диапазона поиска корней функция будет возрастать и вероятность смены ее знака на этом направлении минимальна, поэтому искать корни в этом направлении нет смысла. Исходя из этого, для изменения направления поиска корней меняем знак приращения аргумента ∆. При ложности этого условия направление поиска не меняется.

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

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

80

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