Главная -> Книги

(0) (1) (2) (3) ( 4 ) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16) (17) (18) (19) (20) (21) (22) (23) (24) (25) (26) (27) (28) (29) (30) (31) (32) (33) (34) (35) (36) (37) (38) (39) (40) (41) (42) (43) (44) (45) (46) (47) (48) (49) (50) (51) (52) (53) (54) (55) (56) (57) (58) (59) (60) (61) (62) (63) (64) (65) (66) (67) (68) (69) (70) (71) (72) (73) (74) (75) (76) (77) (78) (79) (80) (81) (82) (83) (84) (85) (86) (87) (88) (89) (90) (91) (92) (93) (94) (95) (96) (97) (98) (99) (100) (4)

заключать в круглые скобки. Способ пуска программы указывается символами нажимаемых клавиш В/О С/П, БП а b или (если должна нажиматься только одна клавиша) С/П. Если клавишу В/О нажимать не обязательно, будем за ключать ее в круглые скобки.

Для указания на размещение результатов выполнения программы будем использовать формулы вида PN = a, означающие, что результат а находится в регистре jV памяти или операционного стека. В частности, запись РХ - а, PY = b означает, что результат а находится в регистре X и высвечивается на индикаторе, а для вывоза результата Ь достаточно нажать клавишу <-«.

В подобной компактной записи программа из табл. 2 имеет следующий вид.

Программа 1. Определение числа размещений из п по т~1 элементов

П7 -<- П8 П9 ИП8 1 - П8 ИП7 - хО 18 ИП8 ИП9 X П9 БП 04 ИП9 СП

Инструкция. n=PY, т = РХ В/О С/П РХ=Л~.

В компактной записи отсутствуют коды шагов программы, высвечиваемые На индикаторе в режиме программирования. При четком нажатии клавиши нет необходимости проверять правильность ввода каждого шага программы, достаточно контролировать адреса 10. 20, 30..... высвечиваемые после ввода крайних

правых шагов строк. Контроль высвечиваемых кодов необходим в осиовнол( при отладке программ [14, 15], но в этом случае можно использовать табл. 1.1 или более компактную таблицу кодов, подобную приведенной в [11]. Пользователь легко запоминает коды наиболее часто используемых операторов, а правильность ввода остальных легко проверить, повторив ввод оператора е помощью команды

ШГ. При желании пользователь может дополнить компактную запись программы кодами ее шагов [8]. последовательность которых также представляет собой программму.

Программы, предназначенные для хранения в библиотеке пользователя, следует сопровождать указанием времени выполнения (особенно при наличии итерационных циклов), а в необходимых случаях (например, при вычислении специальных функций) - точности результатов. Библиотечные программы следует также сопровождать контрольными примерами для проверки правильности ввода и выполнения программы.

1.3. Погрешности реэуШкТатов вычислений

Численный результат а решения инженерно-технической задачи практически всегда отличаете* от точного значения а* соответствующей физической величины на число Аису = а-а*. Так как точное значеиие а* обычно неизвестно, то погрешность результата оценивают предельной абсолютной погрешностью Аа, равной половине ширины интервала а-аа*а+Аа, в котором по имеющейся информации находится точное значеиие а*. Точность результата часто оценивают предельной относительной погрешностью ба=Ла/а, причем слово «предельный» в приведенных определениях обычно опускают.

Оценки погрешностей, равные сумме модулей слагаемых, называют мажоритарными, а оценки, полученные с учетом случайных изменений их составляю-



щих, - статистическими. Точность результата вычислений часто удобно оценивать числом k верных цифр его десятичного представления. Первые слева k значащих цифр называют верными, если абсолютная погрешность ие превышает половины единицы содержимого /е-го разряда (считая слева). При k>2 верных цифр предельные погрешности результата Ла = 510-""*; ба = 5.10-*/М где л и Л1 - порядок и мантисса представления результата в показательной форме при 1М<10. Если точное значение мантиссы не известно, его принимают равным минимальному значению Л1=1 и определяют по формулам бМб-Ю"*, /e = E[lg(5/6M)] (Е - символ целой части содержимого квадратных скобок). При известных значениях абсолютной ДМ или относительной 6Л1 погрешности мантиссы число верных цифр *=E[lg(5/SA()] =E[!g(5Al/AAl)].

Источниками погрешностей результатов решения практических задач являются погрешности математической модели исходных условий задачи и погрешности вычислений. Математические модели физических объектов всегда приближенные. Любое явление есть следствие и причина бесконечного множества других явлений, причем во временной зависимости x(t) причиной изменения физической величины X является не время, а некоторая другая физическая величина <у(0. Связь между воздействием (причиной) и реакцией на это воздействие cлeдcтвиeм) моделируют зависимостями вида

X U) гх (0) - wq{t), (1.1)

r.ie параметр w = x(q(l))/q(t) является оператором, ставящим числа x{t) в соответствие числам q(t).

Влияние энергии, поступающей в канал связи от источника воздействия q(t), проявляется в изменении свойств (нелинейности) этого канала н зависимости ш = 1С() от уровня воздействия. Влияние множества других (сторонних) ноздействнй z(t) моделируют параметрическими зависимостями w = w{z). Так как число воздействий бесконечно, то их влияние проявляется в случайных изменениях параметра w = w(z). Накопление энергии в канале связи приводит к его инерциоиностн - зависимости реакции от воздействия не только в данный, но н в предыдущие моменты времени. В этом случае зависимость (1.1) является решением дифференциального уравнения. Наконец, конечная скорость распространения энергии в каналах связи приводит к необходимости учета распределенности их параметров в пространстве и решении (1.1) дифференциальных уравнений в частных производных. При моделировании сложных физических объектов приходится выделять конечное число п независимых входов (мест приложения воздействий и определения реакций) н описывать свойства объекта сис темой в общем случае операторных уравнений равновесия:

wji Xi=q,. i=\,2 , ... . п. (1.2)

где Wji - параметр канала связи между i-м и /-м входами. Систему (1.2) можно представить и другими моделями [13. Однако в силу бесконечности свойств физических объектов их точные модели построить невозможно. Учет даже основных свойств каналов связи обычно приводит к чрезмерно сложным моделям, которые приходится упрощать, пренебрегая распределенностью, случайностью, параметричностью, инерционностью или нелинейностью. В последнем случае ли-



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

X {p) = F (р) q (р), (1.3)

где комплексную переменную р = а-\-]ш называют комплексной частотой или оператором Лапласа,

Если даже пренебречь погрешностями модели, то результаты инженерных расчетов будут иметь операционные и методические погрешности вычислений. Причина операционных погрешностей - округление результатов операций до числа значащих цифр, определяемого разрядностью операндов. В частности, отличающийся от нуля результат вычислений, меньший по модулю граничного значения 1.10~ диапазона представления чисел в ПМК, попадает в область машинного нуля и на индикаторе высвечивается О с предельной погрешностью д=1.10-»».

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

10000000 + 0,445 = 10000000 -f 0,45 = 10000000 + 0,5=10000001;

10000000 -f 0,4444 = 1ООООООО + 0,44 = 10000000 + 0,4 = 10000000.

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

а= ((10: 3-4)6-1-4).10», реализуемых на входном языке ЯМК34 или ЯМК52 программой

103-Н4 - 6х4-1ВП8Х будет получен ошибочный результат а=20. Между тем верное значение результата равно нулю, в чем можно убедиться, приведя к общему знаменателю выражение во внутренних скобках а= ((10-12)2-)-4) 10 = 0.

Следует учитывать, что при вычислениях с ограниченной разрядностью нарушаются законы арифметики, справедливые для точных чисел. Так, при вычнс леннях на микрокалькуляторе (20 ООО-Ю»-18 ООО-lOS) = (оо), но (20 000- -18 ООО) 105 = 2.10« и, следовательно, дистрибутивный закон нарушается. Аналогично при выполнении сложения 0,4-)-0,4-10 ООО 000= (10000001), но 0,4-МО ООО 000-f 0,4 (10000000) н, следовательно, нарушается ассоциативный закон. Наконец, нарушается и коммутативный закон:

1 • 10«хЗ-10Их1,5.10-«х2-10-з = (оо); 2-10- X1 ,5-10-* ХЗ- Юх 1 • 10" = (0); 2-10-3ХЗ- ЮХ 1,5-10-* X1 • 10" = (9).

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



(0) (1) (2) (3) ( 4 ) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16) (17) (18) (19) (20) (21) (22) (23) (24) (25) (26) (27) (28) (29) (30) (31) (32) (33) (34) (35) (36) (37) (38) (39) (40) (41) (42) (43) (44) (45) (46) (47) (48) (49) (50) (51) (52) (53) (54) (55) (56) (57) (58) (59) (60) (61) (62) (63) (64) (65) (66) (67) (68) (69) (70) (71) (72) (73) (74) (75) (76) (77) (78) (79) (80) (81) (82) (83) (84) (85) (86) (87) (88) (89) (90) (91) (92) (93) (94) (95) (96) (97) (98) (99) (100)