Детерминированные циклические вычислительные процессы с управлением по аргументу

Детерминированные ЦВП с управлением по аргументу используются преимущественно в следующих задачах:

· для построения графика функции y= f(x) в заданном диапазоне изменения аргумента xнач <= x <= xкон с известным шагом hx;

· для вычисления определённого интеграла по одному из численных методов (прямоугольника, трапеции, параболы);

· для численного интегрирования дифференциальных уравнений по методу Эйлера или Рунге-Кутта и т.п.

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

xi = xi-1 + hx.

Эту зависимость целесообразно использовать для организации циклического вычислительного процесса. Количество циклов в этих задачах известно-детерминировано и определяется одним из выражений:

n = (xкон-xнач)/hx+1 или n = (xкон-xнач)/hx,

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

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

y = f(Q) = (1 + sinQ) · cos(π·a·cos(Q/α))/((π/2)2 – (π·a·cos(Q/α))2)

изменяя угол Q в диапазоне 0 с шагом hQ = 5 при значениях a = 13,5см; = 3см.

Для организации циклического вычислительного процесса в качестве параметра выберем аргумент функции, изменяющейся по следующей рекуррентной зависимости:

Qi = Qi + 1 + hQ.

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

 

Рис. 2

На схеме знак := характеризует операцию присваивания.

Например, запись x:= B означает, что переменной x присваивается вычисленное значение выражения B.

Блок 2 происходит подготовка вычислительного процесса к циклу, т.е. параметру цикла Q присваивается его начальное значение. Этот блок называется блоком задания начальных значений или блоком начальной установки (БНУ). Он позволяет производить повторный расчет задачи в случае сбоя в машине и произвести многократный расчёт по одной и той же программе с различными начальными данными.

Блок 3 представляет собой рабочую часть цикла (РЧЦ). В нём рассчитывается очередное значение исследуемой функции y = f(Q), соответствующей текущему значению аргумента Q.

Блок 4 выводятся на печать (ПЧ) текущие значения аргумента Q и функции y.

Блок 5 называется блоком изменения параметра цикла (ИПЦ). В нём текущее значение аргумента изменяется на величину шага по рекуррентной формуле для Qi.

Блок 6 является блоком проверки логического условия (ПЛУ).

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

Блок 7 является блоком окончания вычислительного процесса.

Замечание 1. Порядок расположения блоков 3 - 6 в рассмотрённом циклическом вычислительном процессе определяется постановкой решаемой задачи. Например, при вычислении определённого интеграла по одной из приближенных формул с фиксированным шагом после блока ПЛУ производится досчёт по формуле, т. е. следует вычислительный блок, а уже затем блок печати.

Замечание 2. С целью сокращения времени вычисления из рабочей части цикла следует исключить и рассчитывать перед циклом фрагменты формулы, независящие от параметра цикла.

Замечание 3. Учитывая, что выбранное значение шага не всегда обеспечивает целое количество циклов в заданном диапазоне изменения аргумента, то с целью получения детерминированного количества циклов n конечное значение параметра цикла заранее можно увеличить на некоторую величину, например, на h/2. Это можно выполнять в блоке задания начальных значений. При этом в блоке ПЛУ будет проверяться неравенство Q<Qкон.

Замечание 4. Если рассчитываемая функция представляет собой сумму или произведение: то её необходимо вычислять по одной из рекуррентных формул:

Ci = Ci-1 + f(xi); Pi = f(xi),

при этом в блоке задания начальных значений кроме аргумента x:= xнач первоначальное значение суммы следует задать С0:= 0, а первоначальное значение произведения принять Р0: =1.