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

(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) (30)

Для Ее = 40 В, и, = 10 В, 5йс 10 В, р = !, 6 = 0.02 !/В, С/со = Хо = 4 В, Сс1 = Xi = 5 В, £/с2 = лг = 6 В получим Ос = = 4,8762113 В при точном значении % = 4,876727 В и времени счета «40 с. Таким образом, уже при однм,цикле интерполяции Ос определено с точностью до 4-х верных знаков, что более чем достаточно для практических расчетов.

Автоматическое уточнение кория при методе обратной интерполяции/экстраполяции можно выполнить различными способами. Так, для данного примера лучшим оказался следующий способ: левая граница интервала изоляции корня берется равной дго = О (при этом F{Uco) = £с), значение Xi = х и xs = Xi + Дх, где Дл:=Д1с= = const (например 1 В).

Программа 5.26. Расчет Ut для схемы рис. 5.2. а методом обратной интерполяции/экстраполяции с автоматическим уточнением корня. Ввод: начальное значение Uc = РВ, Ua = РО, Ее = Р4, е* = Р5, R,S = Р6. р = Р7, S = Р8 и О, = РХ.

П9 Fx ИП8 X ИПО + ИПЭ - П9 ИПВ ПП 57 П1 ИПВ 1 -f ПС ПП 57 П2

ИПВ ИП1 ИП4 - -f- ПД ИПС ИП2 ИП4 -

ИПД - ИП1 ИП2 - -5- ИП1 X ИПД -f ИП4 /-/ X ИПВ XY ПВ - Fx ИПб - Fa- < О 89 ИПВ С/П . БП 00 ИП7 X ИПЭ -h Fe 1 - ИПб X ИП9 X -f

ИП4 XY - В/О

При t/co = 5 В, е2=М0-°, f/j = 10 В и указанных выше других данных F{Uc) получим t/c = 4,8767272 В, при (7з = 6 В Uc = 6,522966 В. прн f/, = 4 В Uc = 13,381808 В, при С/, = 2 В Uc = 30,8 В, Прн повторных вычислениях вводится только значение = РХ н нажимается клавиша С/П. Время вычисления одного значения Uc около 2 мин.

Ускоренную сходимость при сложных уравнениях (5.12) имеет также метод Эйткена - Стеффенсона. При его реализации уравнен ние (5.12) приводится к виду x = fix), вычисляется первое приближение для X = Хо: Xi = f{xo), затем второе; Xz = j{xi). По ним находится уточненное значение корня [2]

X = {хаХ2 - xf)/{Xo - 2х, + х). (5.21)

Оно присваивается хо, после чего процесс повторяется до т&х пор, пока разность {х - хо) не станет равной или меньшей е. В программе следует предусмотреть контроль знаменателя (5.21) иа нулевое значение, которое может возникать при равенстве хо, Xi и xt в конце итераций. Если такая ситуация возникает, следует перейти к выдаче значения ха ~ х.



программа 5.27. Реализация метода Эйткена - Стеффенсона. Ввод: данные f{x) при Хп-*РХ, е = РЪ к Хо = РО.

ИПО ПП 33 ПА ПП 33 t ИПО X ИПА

Fx - XY ИПО + ИПА 2 X - FxO

3i ИПО XY ПО - Fx ИПВ - Fx <0

00 ИПО С/П .................. В/О

Программу 5.27 можно проверить вычислением корня уравнения (5.14). При = 1,2 и е2=1-10- получим х = 1,1714285 при h 27 с.

5.5. Поиск экстремумов функции одной переменной

Поиск экстремумов функций нескольких переменных f{x, у, г, ...) относится к довольно сложным вычислительным задачам,. алгоритмы которых детально описаны в [24]. Реализация простейших из них на программируемых микрокалькуляторах дана в [7], но требует чрезмерно больших затрат времени. Поэтому поиск

экстремумов функций иесколь-

y-F(x)


Рис. 5.3. Иллюстрация к поиску экстремума функции F(x)

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

Пусть некоторая целевая функция f (л:) имеет экстремумы при измене1гаи х. Задача их поиска близка к решению нелинейных уравнений и сводится к определению интервала

[а, 6], в котором находится экстремум, и его сужению. Будем искать максимум F{x), так как функция ]{х), имеющая минимум, сводится к функции F{x) умножением ]{х) на -1. Будем решать эту задачу методом поразрядного приближения.

Поскольку при однократном прохождении экстремума \х меняется с шагом Дд:) знак приращения F{x) может не изменяться (см. рис. 5.3), то следует перед дроблением Дх предусмотреть возврат назад на два шага после изменения знака приращения F{x).

Программа 5.28. Определение максимума F{x). Ввод: данные F(x), Хо = РА, Дхо = РВ, е/4 = РО. Значения х = х и F (x,vi) в точке максимума заносятся в регистры РХ = РД и РС соответственно, текущее значение х -»- РА.



пп 29 ПС ИПА ИПВ + ПА ПП 29 ИПС XY ПС - РлгО 03 ИПВ 2 1-1 -i- ПВ ¥х<а 23 /-/ ИПО - Fat < о 03 ИПА С/П ... ........................... В/О

Для F{x) = \Qx - 2x, вписав в программу фрагмент вычисления F(x) вида

1 О ИПА X FBat Fx 2 X ~

при ха == О, А«о = 1 и е/4 = 2,5-10- найдем (нажав клавиши В/О и С/П) Хк = 2,5 при /с « 190 с. Из регистра С вызываем значение . /•(«„)= 12,5.

5.6. Решение алгебраических уравнений

Решение алгебраических уравнений выполняется по приведенным ниже программам, которые описаны также в [7, 27].

Программа 5.29. Вычисление корней квадратного уравнения

I .агх -f fliX -Ь ао = О (6.22)

по формулам Xi, 2 = -ai/(2a2) ± \J(aJ(2a2)Y - Оо/аг . Ввод: ао = = РО, at = Р1 и 02 = Р2. Вывод результатов (после нажатня клавиш В/О и С/П): 7-*РХ, Xi--PY, л;2->-Р7, если корни вещественные, и 4 ->- РХ, m PY и d -> Р4, если корни xi, г = d ± jm комплексно сопряженные.

ИП1 /-/ ИП2 -т- 2 -г- П4 Fx ИПО ИП2 -г- - Fx < О 18 /-/ fV" 4 С/П fV~ ПЗ ИП4 -f П7 ИП4 ИПЗ - 7 С/П

Для уравнения г.к: - 5х - 10 = О получим Xi =-1,3117376 и Х2 = 3,8117376, а для уравнения х + 2х -J- 15 = О получим xi, г = = -1 ± /3,7416573.

Программа 5.30. Решение квадратного уравнения (5.22) с уменьшенной погрешностью вычисления вещественных корней (меньший . по модулю вещественный корень вычисляется по формуле хг = = -ao/(xia2), где xi - больший по модулю корень). Ввод: ао = PC, а, = РВ, и аг = РА. Вывод результатов (после нажатия В/О С/П): 7-*РХ, xi--P7, Xi.-»-P8, если корни вещественные, и 4РХ, rf->P4, ш -»- Р5, если корни Xi, 2 = ± комплексно сопряженные.

ИПС ИПА П9 ИПВ /-/ ИПА 2 X -

П4 Fx - Fx < О 31 /-/ fV ИП4 Fx < О 23

XY - О -Ь П7 ИПЭ XY П8 7

С/П F V" П5 4 С/П

Для уравнения Зх-Ь 20 ОООх-f 12 = О получим по этой программе X, = -6666,666 и Х2 = -6,0000006-10-4. По программе 5.2Э

4 В. П. Дьяконов . Э7



(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)