МиАПР_ПОВТ_2012 / Васильков_Компьютерные технологии вычислений
.pdfполученному уравнению параболы jv=c2X^ + CjX+Со находят
приближенный корень (приближенный — потому что парабо ла приближенно заменяет f(x)), для чего решают уравнение CjX^ + Cjjc + Со =ft На втором этапе строят параболу по трем точ кам: найденному приближенному корню и двум предыдущим точкам (слева и справа от этой точки), лежащим по разные сторо ны оси X. Такой вариант выбора точек на практике быстрее приво^ дит к решению по сравнению с вариантом, когда для построения параболы берутся последовательно три последние точки. Такая процедура повторяется многократно до тех пор, пока величина отрезка, внутри которого нахо дится корень, не будет меньше е — предварительно заданной погрешности.
На рис. 9 приведен один шаг уточнения корня методом пара болической аппроксимахщи. На чальная парабола проведена че рез точки а, Xi, Ь (здесь jc, яв^ется серединой отрезка [а, 6]); Х2 — пересечение пара болы с осью. Следующая пара бола должна проводиться через
T04VMXi,X2,b.
Рис. 9. Иллюстрация первого этапа метода параболической аппроксимации
Пример.
Имеем уравнение хТ -1=0- Сделать две итеравд1и методом параболической аппроксимащш.
Запишем/(jc) =jc2* - 1 . Проведя процедуру отделения корней,
получим, что корень находится в промежутке [О, 1], т.е. а = О, 6 = 1.
Выбираем среднюю точку интервала д: = 1/2 и вычисляем зна чения функции в этих точках:
х=0,/(0) = -1; X =0,5,/(0,5)«-0,293; ;с=1,/(1) = 1. Через эти три точки и будем проводить параболу у = с-^^ +
+с,л+Со. Для того чтобы парабола проходила через заданные
71
точки, коэффициенты с, должны удовлетворять следующим урав нениям:
•(Яс2+0-с,+Со=-1 (условие прохождения через первую точку);
• (^ Cj + ^С] + Со = -0,293 (условие прохождения через вторую точку);
• 1^ • Cj +1 • q + Со = 1 (условие прохождения через третью
точку).
Решая эту систему, находим коэффициенты: Со = - 1 ; с, =-0,828; Сз = 1,172.
Для нахождения приближенного значения корня решим урав нение 1,172х^+0,828дс-1=0, что на участке (0,1) дает корень X =0,636. Найдем значение функции в этой точке:
/(0,636)=0,636-2'^"*-1 = -0,011647.
Полученное значение функции отлично от нуля, так как пара бола приблизительно описывает исходную нелинейную функ цию.
Используя три точки: (0,5, -0,293); (0,636, -0,011647); (1, 1), построим новую параболу. Коэффициенты этой параболы будут':
Со=-1; с, =0,828; Cj =1,172.
МЕТОД ПРОСТОЙ ИТЕРАЦИИ
Рассматриваемый метод реализует третий подход из пред ставленных в концепции. Предварительно исходное уравнение f(x) =0 преобразуют к видуф(х)=х, что является частным случа ем более общей структуры g(jc)=/(jc). Затем выбирают началь ное значение XQ И подставляют его в левую часть уравнения, но (р(хо) ^ XQ, поскольку XQ ВЗЯТО ПРОИЗВОЛЬНО и не является корнем уравнения. Полученное (P(XQ)=XI рассматривают как очередное приближение к корню. Его снова подставляют в левую часть уравнения (p(xi)n получают следующее значение Хг (^2 = ф(д:1)) и т.д., в общем случае jc,-^.j =ф(дс,). Получающаяся таким образом
72
У=Ф)
Рис. 10. Иллюстрация метода итераций для различных ситуаций: а —0<ф'(х)<1;б 1<ф'(х)<0
последовательностьXQ,Х,, JC2,Х^Х^ ... при определенных услови ях может сходиться к корню х* (рис. 10).
Таким условием является | ф'(х)| < 1 на [а, 6], причем чем ближе модуль к нулю, тем выше окажется скорость сходи мости к решению. В про тивном случае последова тельность расходится от искомого решения ("метод не сходится").
На |
рис. 11 приведен |
|
|
один |
из возможных слу |
|
|
чаев, когда итерационный |
|
|
|
процесс не сходится. Вид |
|
|
|
но, что последовательность |
X Хп X-t Х-у |
jf-i |
|
|
|
||
XQ, Хр XJ. ••• удаляется от |
Рис. и. Иллюстрация несходяще |
||
корня X*. Это всегда будет |
гося итерационного процесса |
||
иметь место в том случае,
если тангенс угла наклона ф(х) в окрестности корня по модулю больше единицы.
Существуют различные способы преобразования уравнения /(х) =0 к видуф(х) =х; одни могут привести к выполнению уело-
73
ВИЯ сходимости всегда, другие — в отдельных случаях. Самый простой способ следующий:
f(x)+x=0+x, f(x)+x=^(x) => (f(x)=x,
но он не всегда приводит к успеху. Существует другой способ, в соответствии с которым <р(х) =х -f(x) I к, причем Аг следует вы бирать так, чтобы I yfc| > QI2, где Q = max|/'(jc)| и знак к совпадал
бы со знаком f'(x) на [а, Ь]. |
^* *^ |
Погрешность решения можно оценить из соотношения |
|
|х'-ac,|<r^|jc,-At,-J, |
где 9 = тщсф'(х). |
l-q |
[a,b\ |
Вследствие этого для окончания вычислений в методе итера ций применяют соотношение - ^ | л,- - Atf+il ^ е, где е — заданная погрешность решения.
Часто используют упрощенное условие окончания поиска {Xj -х,.,.]! < £ , не вычисляя максимальное значение производной, но в этом случае погрешность решения может не соответствовать заданной (т.е. быть больше или меньше).
Пример.
Имеем уравнение 2х + lg(2x + 3) = 1. Необходимо уточнить ко рень с погрешностью е < 0,001.
Запишем f{x) =2х + lg(2x +3) - 1 . Проведя процедуру отделе ния корней, получим, что корень находится в промежутке [0,0,5], т.е. а=0,Ь =0,5. Приведем уравнение к виду, удобному для ите раций ф(х)=д:. Функцию ф(х) будем искать из соотношения ф(дс) = дс - f{x)lk, считая для повышения сходимости, что| А^ t QI2, где Q = max | f{x% число А: имеет тот же знак, что и f'{x) в проме жутке [О, 0,5].
Находим
/W-2.Mf; e=-/W=2.|fff,2,2895; /ВД>0
при0<;х^0,5.
Примем к =2, тогдаф(дс) =jc -/(х)/2=0,5 -0,5lg(2x +3).
74
За начальное приближение возьмемXQ=0, все остальные при ближения будем определять из равенства Xj^y =0,5-0,5 lg(2x,- +3), результаты сведем в табл. 5.
|
|
Таблица 5 |
/ |
X, |
4>(х,)=х,^1 |
0 |
0 |
0,2614 |
1 |
0,2614 |
0,2266 |
2 |
0,2266 |
0,2309 |
3 |
0,2309 |
0,2303 |
4 |
0,2303 |
0,2304 |
5 |
0,2304 |
|
Ответ: X «0,230.
ОПРЕДЕЛЕНИЕ ЧИСЛА КОРНЕЙ АЛГЕБРАИЧЕСКИХ УРАВНЕНИЙ
Для уравнения Р„(х) = а(рс" +а^х"~^ +а2х"~\..-нг„=0 общее
количество действительных корней и комплексных корней (кото рые всегда в рассматриваемом случае при действительных коэф фициентах уравнения будут попарно сопряженными) всегда рав но наивысшей степени полинома в левой части уравнения, т.е. в нашем случае — п.
Существует правило Декарта, в соответствии с которым можно оценить отдельно количество положительных и отрица тельных действительных корней: количество действительных по ложительных корней либо равно числу перемен знака в последо вательности коэффициентов уравнения, либо на четное число меньше; количество действительных отрицательных корней либо равно числу перемен знака в последовательности коэффициентов уравнения Р{-х) =0, либо на четное число меньше (равные нулю коэффициенты в обоих случаях не учитываются). Отсюда следу ет, что правило Декарта не точно определяет количество корней, а приближенно. Существуют и более строгие методы (например, правило Штурма), которые точно определяют количество дейст вительных корней на любом промежутке числовой оси (а не толь ко положительных и отрицательных).
75
Пр$1мер.
Имеем уравнение Р^х)=х* -17х* +12д:'' +7х^ -х +1=0.
Это уравнение имеет шесть корней (л =6)- Знаки коэффицие тов образуют следующую последовательность: +, -, +, +, -, Знак меняется 4 раза, следовательно, положительных корней б дет либо 4, либо 2, либо 0. Для отрицательных: последовател ность знаков в Р^гх) будет: +, -, -, +, +, +, т.е. отрицательных KO ней будет либо 2, либо О, так как только два раза меняется знак последовательности.
ПРЕДЕЛЬНЫЕ ОЦЕНКИ И ОБЛАСТЬ СУЩЕСТВОВАНИЯ КОРНЕЙ АЛГЕБРАИЧЕСКИХ УРАВНЕНИЙ
Во многих случаях достаточно знать предельное (максимаш но возможное) значение корня. Это необходимо в различны приложениях (например, при оценке устойчивости систем ynpa ления), а также для более эффекгивного отделения корней нел нейного уравнения. Эту проблему можно решить, не находя в корни, а воспользовавпшсь специальными методами, которы кратко рассмотрены ниже.
МЕТОД ЛАГРАНЖА
Метод сводится к определению верхней границы полож тельных корней по формуле
где т — номер первого по порядку отрицательного коэффицие та в полиноме левой части уравнения Р„{х), В — наибольшая и абсолютных величин отрицательных коэффициентов Р„(х); пр этом предполагается, что aQ>0.
Пример.
Определить предельное значение положительных корне уравнения -8х^ +8х^ +32дс -1=0.
76
в этом уравнении ао< О, поэтому сначала умножим обе части уравнения на -1. Получим &C^-8JC^-32X+1=0. Здесь Оо>0,
а, =0,02 =-8<0, Оз =-32, а^ =1. Следовательно, /и =2,5 =32. Применяя формулу, получим R=l + фШ = 3.
МЕТОД НЬЮТОНА
Этот метод не дает конструктивного пути для отыскания ис комого значения, т.е. не дает более эффективных алгоритмов по мимо простого перебора или проверки наугад взятых точек, и формулируется следующим образом: если при каком-то значении
X = р Р„{х) > О и все производные F(x) > О, Р*(дс) > О, ..., Р^"\х) > О,
то значение р является предельным значением положительных корней.
Пример.
Рассмотрим применение метода для того же уравнения, что и в предыдущем случае.
1\х)=&с*-&с^-32х+1; F(X)=32X^-16K-32; РЧх) =96x^-16; Р"(д:)=192х; Р^\х)=192.
Из третьей производной видно, что нужно искать предельное значение при д: >0. Из второй производной получим: 96х^ -16>0,
т.е. х^ >16/96, или X >4/9,8. Далее из неравенства/*'(х)>О можно
попьггаться найти значения х, удовлетворяющие ему и не проти воречащие ранее найденным, и т.д. Однако неравенства с полино мами высокого порядка решаются довольно сложно и не всегда. Поэтому чаще используют простой подбор такого значения р, при котором справедливы все неравенства.
МЕТОД КОЛЬЦА
Метод позволяет находить область существования всех кор ней алгебраического уравнения, в том числе и комплексных. Дей ствительные корни находятся в интервалах (-R,r) и (г. Л) (соот-
77
ветственно отрицательные и положительные). Величины г и R вычисляются по формулам
Ы' ^ + B/\af
rfle^ = max{|ai|, [агК •••. |aJ};5=max{|aol, |ail, •••, |a„-il}-
В случае нахождения области существования всех корней, а не только действительных, строится кольцо с радиусами г и R, внутри которого находятся и действительные корни. Метод дает диапазон существования корней приближенно с определенным запасом.
Пример.
Определить границы корней уравнения5г^ -2ftc +3 =0. Здесь
\a(li=5,A=20,\a„\ = 3,B=20.
Используя формулы, получим
Отсюда следует, что положительные корни находятся в ин тервале (0,013, 5), а отрицательные — в интервале (-5, -0,013). Следует отметить, что указание границ корней не означает, что такие корни обязательно есть. В данном случае мы указали облас ти для положительных и отрицательных корней, а если в уравне нии окажутся комплексные корни, то действительный будет толь ко один, так как уравнение третьей степени.
МЕТОД ПРЕДЕЛЬНЫХ ЗНА ЧЕНИЙ
Существует метод, позволяющий несколько точнее находить область существования корней. Для этого вычисляют верхние границы положительных корней /?,-:
для полинома Р^{х) —Лр для полинома Р„(-х)—R2, для полинома х"Р„{х) — /?з>
для полинома х"Р„(-11 х) — ^4- Если действительные корни существуют, то они лежат в ин
тервалах (-i?2, -1//?4)H(1//?3» ''^I)-
78
УТОЧНЕНИЕ КОРНЕЙ АЛГЕБРАИЧЕСКИХ УРАВНЕНИЙ
Алгебраические уравнения можно, конечно, решать любым подходящим методом из ранее приведенных, но конкретная и заранее известная структура левой части уравнения позволяет строить более эффективные алгоритмы. Идея уточнения корней алгебраического уравнения методом понижения порядка базиру ется на возможности выделения в полиноме Р^{х) множителя, со держащего корень. Для действительного корня таким множите лем является дг -X], где Х] — корень, а для пары комплексных корней a±J(o — множитель х^ +Ьх+ с, где b = -2а, с=а^+(о^. После такого выделения можно снизить порядок исходного поли нома на единицу (или на два) путем деления /*„_, =Р„/(х -х,)
(для действительного корня) или Р„_2 = Р„/(х^ +Ьх+с) (для ком плексной пары корней), далее для нового полинома опять выде лить следующий корень Х2 (или новую пару корней) и т.д. В рас сматриваемом алгоритме можно выделить три этапа:
1)нахождение приближенного значения корня;
2)проверка, является ли найденное значение корнем;
3)получение нового полинома степени на единицу меньше, чем предыдущая.
УТОЧНЕНИЕ ДЕЙСТВИТЕЛЬНОГО КОРНЯ
При выделении действительного корня процесс его получе ния носит итерационный характер и реализуется по формуле
аJBL. |
|
оох? + fl,xf '+.. .+fl„_,x,. |
ao«f + flixf Ч.. .+a„_, |
Здесь через х< и x,-^.i обозначены соответственно /-е и (/+1)-е при ближения выделяемого корня. Если начальное приближение дос таточно близко к искомому корню, то итерационный процесс схо дится очень быстро. К сожалению, сходимость метода зависит от
79
условия сходимости
l+Xi PVcAРФ) < 1,
которое практически невозможно оценить заранее (xj — искомый корень). Кроме того, метод может не сходиться к решению и вследствие отсутствия действительного корня.
По существу рассматриваемый метод является методом ите раций для одного из способов приведения к необходимому виду
x=(f>ix)=x+ ^'-^—
Значение приближения х, на каждой итерации нужно прове рять, не является ли оно корнем. Для этого достаточно найти оста ток г от деления Р„{х) на х -х,-. Если остаток равен нулю (или очень близок к нулю), то текущее значение х,- является корнем, ес ли нет, то итерационный процесс следует повторять. Воспользо вавшись теоремой Безу, можно находить остаток, не производя собственно операцию деления. В соответствии с этой теоремой остаток равен значению полинома прих =х,, т.е. г =Р„(х,). Такой подход существенно сокращает вычисления.
После итерационного выделения одного корня (что контроли руется по остатку г) следует понизить порядок полинома, т.е. най ти новый полином Р„_], содержащий остальные корни:
Коэффициенты Ь^ нового полинома P„_i находятся по схеме Горнера (не проводя операцию деления), в соответствии с кото рой
b^=b^^-¥a{, |
... 6^=6*_|ДС1+а*; ••• |
b„_i=b„_2Xi+a„_i, |
где «t — коэффициенты полинома P„(x).
80
