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

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

Инструкция. a2=PZ, a, = PY, ao = PX В/О С/П PX=ai, PY = a2 (корни вещественные) или РХ = ЕГГОГ (корни комплексно-сопряженные) С/П PX==Rep,,2, PY = Impi,2 (tail с).

Пример. Для уравнения Зр+бр-45=0 получим корни Oi = 3, 02=-5, для уравнения 2р2+8р+10=0 - корни pi,2==-2±jl с нулевыми невязками.

Если корни уравнения второй степени вещественны, то прн аааг возникает значительная операционная погрешность вычисленного по формуле (3.19) корня с меньшим модулем. Например, для уравнения р+10 000р+9=0 по программе 118 получим oi=-Ы0- н 02=9999,999 с невязками Л(о) = =Л(а2)=-1. Прн вычислениях на микрокалькуляторах рассматриваемых типов корней уравнения второй степени с ai>2-ЮУаоОг они фактически распадаются на два уравнения, и при использовании формулы (3.19) погрешности возрастают еще больше. Так, для уравнения р-Ь 100 000р--9=0 по программе 118 получим Oi=0, 02=-100 000 с невязками Л (Oi) = Л (02) =9. Поэтому для решения уравнений с отличающимися по порядку уравнениями целесообразно изменить алгоритм вычислений, устранив операцию вычитания близких чисел [15], характерную для формулы (3.19) прн ai3>yaca2.

Программа 119. Вычисление корней уравнения a2P*+aip--ao=0 с повышенной точностью вычисления меньшего по модулю вещественного корня

П9 П8 П7 2 /-/ П6

х* П4 ИП9 ИП7 П5 - х>0 32 / ИП4 / + Вх ИП6 -г- X t ИП5 -f- С/П / t /-/ V ИП6 С/П

Инструкция. a2=PZ, ai=PY, ао=РХ В/О С/П PX=ai, PY=a2 (корни вещественные) нли РХ = ЕГГОГ (корни комплексно-сопряженные) С/П РХ= = Rep,,2, PY = Imp,,2 (Р7 = а2, P8 = ai, Р9 = ао); tuad с.

Примеры. Для уравнения Зр + бр-45 = 0 получим ai = 3, 02=-5, для уравнения 2p2 + 8p2-f 10=0 получим pi,2=-2±jl, для уравнения p-f-10 000р--+ 9=0 получим ai=-9,0000009-10-, 02=-9999,999 с невязками Л(а1)=0, Л (ог) =-0,999999, для уравнения р2+100 OOOp-f 9 = 0 - корни ai=-910- 02 = -100 000 с невязками Л(а1)=0 и Л(а2)=9.

Решение алгебраического уравнения третьей степени p+OjP-f aip+ao=0 с использованием формул Кардано [4] сводится к предварительным вычислениям коэффициентов r==ai/3-(аг/З) s= ((01-2(02/3)2)02/3-ао)/2, Q=r + s. Если Q>0, то решение содержит пару комплексно-сопряженных корней

а, =Л-fB-02/З; р2,з=-((Л +В)/2-fо/З)±j(Л-В)УЗ/2,

где . Если Q = О, то корни веществен-

ные, причем два из них образуют кратный корень: Oj = 2Л - О2/З; 2,3 - - Os/3, но если Q<0, то все корни вещественные и различные:

Oi = 2У-г cos(a/3); = -2V-г со5(а/3±2я/3), где a=arccos (s/Y-r).

Программа 120. Вычисление корней уравнения p + a2p2-l-Oip+ao=0 с использованием формул Кардано



ИП1 3 4 ИП2 3 4 ПЗ х2 - П7 ИП1 ИПЗ х2 2 X - ИПЗ X ИПО - 2 -f- П8 х2 ИП7 t х2 X ПД 4-С/П х>0 72 у ИП8 + П9 х 3 1/х

ХУ ИП9 ~ ПА ИП7 /-/ ИПА н-ПВ + ПС /-/ 2 4 ИПЗ - t ИПС ИПЗ - С/П ИПА ИПВ - 3 / X 2

С/П ИП8 ИПД /-/ / ~ C0S-1 2 л X + П4 3 - cos ИП7 /-/ / 2 X X ИПЗ - С/П ИП4 БП 78

Инструкция. Установить переключатель Р-ГРД-Г в положение Р; (ав = РО, at=Pl, as=P2) В/О С/П (/«10 с) РХ = Q; если Q>0, то С/П (/<« »12 с) РХ = Oj, PY = Rep2 3 С/П (/«.3 с) РХ = Imp 3; если Q = О, то С/П (/«12 с) РХ =ai 2, PY = a3; если Q<0, то С/П (/«Юс) РХ = Oj С/П (/;«8 с) РХ = Оа С/П (/«=8 с) РХ = Gj. При использовании П/VIK с входным языком ЯМК52 для повышения точности определения вида корней целесообразно перед первым оператором С/П ввести фрагмент 1 + 1 -, соответственно изменив адреса переходов.

Пример. Для уравнения р--4р*-1-5р+2=0 получим oi=-1,9999994, 02 = = - 1,0005085, 03 = 0,999491; для p+p+p+lO получим а, = -1, р2.з = = M0-*±j0,99999995«±j; для рЗ--6р»+11р-1-6=0 получим ai=3,000000U 02=-1,9999999, аз=-0,99999999; для рН 1,58-10бр»--83,25р-2,24-10-=0 по-лучим 0, =-1 580 000, 02 = -7-10-2, аз=1,М0-.

Таким образом, при несоизмеримых коэффициентах уравнения использование формул Кардано не обеспечивает точного вычисления корней, н в этих случаях целесообразно искать корни уравнений, расщепленных в соответствии с неравенством (3.18). Решение уравнений степени п=4 сводится к решению-уравнений низших степеней [4], ио корни уравнений с многочленами степени л>4 можно найти лишь численными методами. Прн этом целесообразно вначале найти вещественные корни ai исходного уравнения, а затем решать уравнение низшей четной степени Л (р)/Я(р-Oi) =0.

В большинстве численных методов поиск вещественных корней разбивается на определение интервалов нахождения отдельных корней (отделение корней) н сужение этих интервалов (уточнение корней) до величин, определяемых требуемой или достижимой точностью. Для отделения корней можно вычислить значения Л (а) с шагом До и найти приближенно отрезки вещественной оси, в которых находятся корни, с помощью программ 4-12. Важное значение имеег выбор шага, так как выбор малого шага связан со значительными затратами времени, а при большом шаге возможны пропуски интервалов корней. Следует также учитывать, что вблизи вещественных корней четной кратности функция А{а) ие изменяется по знаку. Так, функция Л(а)=а*+2а+1 положительна на всей вещественной оси, кроме точки ai,2=-1.

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



с вычислением Л (а) с шагом Д до изменения знака функции, после чего принимают Д = -Д/а, где делитель шага а>1. Прн достижении требуемой точности абсолютная погрешность корня равна текущему значению уменьшенного шага, но эта точность не всегда достижима. Например, корень ai=-1 580 000 многочлена 1,58-10/?+83,25р-2,25-10-3 может быть определен лишь с точностью Д!1, так как при дальнейшем делении шага он попадает в область машинного нуля (прн вычислениях с восьмью разрядами мантиссы) и не изменяет величины вычисленного корня ai.

Программа 121. Отделение и уточнение вешественных корней нормированных многочленов Л (р) степени п:11 (л 12 для ЯМК52)

t t ИПА + X ИП9 + X ИП8 +

X ИП7 + X ИП6 + X ИП5 + X ИП4 4- X ИПЗ + X ИП2 + X ИП1 -f X ИПВ + ИПС ПС X хфО 54 х<0 48 ИПД а ,- ПД ИПД

+ L0 00 ИПС С/П С/П БП 00

Инструкция. Заменить в программе символ а оператором набора делителя 9а>1; для ЯМК52 при л =12 перед оператором ИПА записать фрагмент ИПЕ -Ь X (с занесением перед пуском программы в регистр Е коэффициента ац) и изменить адреса 54 и 48 переходов соответственно на 57 н 51 (ао = РВ, ai = Pl, а2 = Р2, аз = РЗ, aio=PA), число шагов п=РО, число, сов-падаюшее по знаку, нли Л(ао)=РС, начальное значение шага До=РД, граница интервала оо=РХ В/О С/П РХ=Л(ап) илн РХ=0 (корень найден точно и для его вызова нажать клавишу --<-); ввести щ - РО нажатием клавиш F и /-/ (оператор -»-), ввести в регистр РХ текущее значение a„+i, нажать клавишу С/П РХ = а„+, С/П РХ=Л(а„+„)...

Прн а=2 уточнение корней называют половинным делением (дихотомией). Если Ж11, то программу 121 целесообразно упростить, устранив фрагменты nnN + X, соответствующие отсутствующим коэффициентам, и прн необходимости использовав освободившиеся регистры для получения дополнительной информации.

Программа 122. Отделение и уточнение вещественных корней нормированного уравнения (0?=!) степени п = 7

t t ИП6 + ИП5 + X ИП4 -f

X ИПЗ 4- X ИП2 4-Х ИП1 + X ИПВ 4 ИПС ПС X х<0 34 ИПД

/- 9 ~ ПД П8 ИПД 4- П9 L0

00 ИПС С/П ИП9 БП 00

Инструкция. (ао = РВ, ai = Pl, а2 = Р2..... аб=Р6), число шагов л = Р0,

число, совпадающее по знаку, или Л(ао)=РС, До=РД, ао=РХ В/О С/П РХ= =Л(а„), Р8 = ап, Р9=ап+ь РД=Дп, п, = Р0 С/П РХ = РС=Л (а„+„,).

В качестве примера рассмотрим поиск вещественных корней многочлена Л(р)=р-ь9рб+36р=--80р+103р-1-95р»+68р4-24. После ввода исходных данных (24 = РВ. 68 = Р1, 95=Р2, 103=РЗ. 80=Р4, 36 = Р5, 9=Р6) и определения по формуле (3.18) нижней границы вещественных корней 0о=-4, выпол-



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