Научная статья на тему 'Алгоритм решения кубического уравнения'

Алгоритм решения кубического уравнения Текст научной статьи по специальности «Математика»

CC BY
2691
145
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ДИХОТОМИЯ / КОМПЛЕКСНАЯ ПЛОСКОСТЬ / КОРЕНЬ / УРАВНЕНИЕ / DICHOTOMY / COMPLEX PLANE / ROOT OF AN EQUATION

Аннотация научной статьи по математике, автор научной работы — Несмеев Юрий Алексеевич

Предложен алгоритм нахождения корней кубического уравнения. Он использует метод неопределённых коэффициентов и дихотомию. Он учитывает: взаимное расположение параболы и гиперболы на плоскости; расположение корней алгебраического уравнения на комплексной плоскости. Предложена модификация алгоритма. Даны примеры применения и алгоритма, и его модификации. В одном из примеров вычисляются посредством алгоритма корни полинома Якоби.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по математике , автор научной работы — Несмеев Юрий Алексеевич

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

An algorithm for solving cubic equations

An algorithm for finding the roots of a cubic equation is proposed. It uses the dichotomy and the method of undetermined coefficients. It takes into account the relative position of the parabola and the hyperbola in the plane and the location of roots of algebraic equations in the complex plane. A modification of the algorithm is proposed. Using the algorithm, three examples are solved. One of them is looking for roots of the Jacobi polynomial. The well-known numerical method for solving cubic equations is estimated (from the viewpoint of the scientific and technical personnel). Its following stages are estimated. a) Searching for an interval that contains one root. P) Calculation of the initial approximation of the root. y) Calculation of next approximations. 5) Dividing the left side of the cubic equation by a binomial. s) Calculation of roots of a quadratic polynomial. The author reported the aim of researches presented in this article. The aim was to build such a numerical method of solving the equation x 3+k1x 2+k2x+k3=0, (1) that is available to technologists and does not use the method of tangents. The author reported the problem of the research: to construct such an algorithm that computes roots of equation (1) without performing actions a, в, у, and 5 and uses the dichotomy. The problem of the research was solved under the assumption that k 3 Ф 0. The used methods are as follows: studying and analyzing the literature, mathematical calculations, mathematical modeling, and computer experiment. The following algorithm is presented. 1. Calculating values of the quantities b 3, c 0, n b, and n c by formulas b 3 = max {1, | 2k 1 |, | k 1 2 + k 2 |}, c 0 = max {| 2k 1 |, | k 1 2 + k 2 |, | k 1k 2 + k 3 |}, n b = | k 1k 2 + k 3 | / (b 3 + | k 1k 2 + k 3 |), and n c = 1 + c 0. 2. Checking quantities n b for being a root of the equation q(z) = z 3 2k 1z 2 + (k 1 2 + k 2) z k 1k 2 + k 3 = 0. In the case of a positive test result, assigning the value n b to the quantity t* and going to step 4. 3. Determination of the sign of the product q(n b)-q(n c). In the case of a negative sign, the dichotomy is applied to the interval [n b, n c] and the quantity t* is assigned the value of the found root. In the case of a positive sign, the dichotomy is applied to the interval [ n c, n b] and the quantity t* is assigned the value of the found root. 4. Calculating the real root x 1 of equation (1) by the formula x 1 = t* k 1. 5. Evaluation of the quantities a* and b* by the formulas a* = t* and b* = a*(a* k 1) + k 2. 6. Calculation of roots of the equation x 2 + a*x + b* = 0 and assigning their values to the roots x2 and x3 of equation (1). In two examples, the author used a specially designed computer programs written in Turbo Pascal. Arithmetic operations on numbers and square rooting generation for non-negative numbers were performed by arithmetic expressions and sqrt function, respectively, from the programming language standard. In one example, operations on numbers were replaced by operations on strings.

Текст научной работы на тему «Алгоритм решения кубического уравнения»

2014 Математика и механика № 5(31)

УДК 512.1; 517.53; 519.6

Ю.А. Несмеев

АЛГОРИТМ РЕШЕНИЯ КУБИЧЕСКОГО УРАВНЕНИЯ

Предложен алгоритм нахождения корней кубического уравнения. Он использует метод неопределённых коэффициентов и дихотомию. Он учитывает: взаимное расположение параболы и гиперболы на плоскости; расположение корней алгебраического уравнения на комплексной плоскости. Предложена модификация алгоритма. Даны примеры применения и алгоритма, и его модификации. В одном из примеров вычисляются посредством алгоритма корни полинома Якоби.

Ключевые слова: дихотомия, комплексная плоскость, корень, уравнение.

В настоящее время в справочной литературе для научно-технических работников практически только в [1, с. 29] представлен численный способ решения кубического уравнения. Способ из [1] заключается в последовательном выполнении следующих действий: а) поиск (путём нахождения значений левой части уравнения в отдельных точках числовой оси) того замкнутого промежутка, который содержит во внутренней точке один корень, имеющий кратностью число 1; в) вычисление начального приближения этого корня обратной линейной интерполяцией; у) итерационное вычисление следующих приближений этого корня по формуле метода касательных [2, с. 421]; 5) деление левой части уравнения на разность между неизвестной величиной и последним приближением этого корня; е) вычисление корней квадратного многочлена, полученного предыдущим действием. Этот способ на практике часто требует больших затрат времени. Притом наибольшие затраты приходятся на действия а, в и у, то есть на использование метода касательных. Значительных затрат требует и действие 5 (при воплощении в компьютерные программы). Поэтому целью исследований, представленных в данной работе, было построение такого доступного для научно-технических работников численного способа решения уравнения

х3 + к1х2 + к2х + к3 = 0 (1)

с действительными коэффициентами, который не использует метод касательных. Задачей исследования служило построение такого алгоритма вычисления корней уравнения (1), который не выполняет действий а, в, у, 5 и использует дихотомию. Задача исследования была решена в предположении к3^0. Методами исследования были изучение и анализ литературных источников, теоретически обоснованные математические выкладки, математическое моделирование и компьютерный эксперимент. Решение задачи изложено ниже.

Применение метода неопределённых коэффициентов к преобразованию левой части уравнения (1) приводит к тождеству

х3 + к\Х + к2х + к3 = (х2 + а*х + Ь*)(х + с*), (2) * » * *

в котором совокупность величин а , Ь , с является решением системы

а + с = к1, (3.1)

ас + Ь = к2, (3.2)

Ьс = к3. (3.3)

Решение а , Ь , с может быть неоднозначным, но для нахождения корней уравнения (1) достаточно найти одно решение системы (3). Ниже этот факт учитывается при построении алгоритма. Алгоритм использует в формулировках шагов 4 и 6 следующие обозначения корней уравнения (1): тот действительный корень, который получается приравниванием к нулю выражения х + с*, имеет обозначение х1; те корни, которые получаются приравниванием к нулю квадратного трехчлена х2 + а*х + Ь*, имеют обозначения х2 и х3. Согласно принятым обозначениям, справедливо равенство х1 = -с*, которое с помощью зависимости (3.1) преобразуется в соотношение х1 = а* - к1. Это соотношение используется в формулировке шага 4 алгоритма. Тот факт, что х2 и х3 являются корнями трёхчлена х2 + а*х + Ь*, используется в формулировке шага 6 алгоритма. Система (3) равносильна системе

с = к1 - а, (4.1)

а(к1 - а) + Ь = к2, (4.2)

Ь(к1 - а) = к3. (4.3)

Так как в уравнениях (4.2) и (4.3) отсутствует величина с, то лишь с помощью этих уравнений можно найти а* и Ь*. Используем эту возможность, отнеся плоскость к прямоугольным декартовым координатам а,Ь с центром в точке О. Будем считать, что плоскость изображена на экране монитора (заполняя его полностью), а точка О изображается его центром. Также будем считать, что относительно взгляда пользователя компьютером на экран координатная ось а направлена вправо от центра, а координатная ось Ь - вверх от центра. Преобразуем соотношения (4.2) и (4.3):

Ь = а2 - к1а + к2, (5.1)

Ь = - к3/( а - к!). (5.2)

Из соотношения (5.1) следует, что Ь* = а(а - к1) + к2. Этот факт используется в формулировке шага 5 алгоритма.

Зависимость (5.1) задаёт на плоскости параболу, ветви которой направлены вверх. Ось симметрии параболы в случае к1 = 0 совпадает с координатной осью Ь, а в случае кхф0 параллельна ей. Абсциссой и ординатой вершины параболы являются соответственно числа 2-1к1 и к2 - 4_1-к12. Зависимость (5.2) определяет на плоскости гиперболу, центром которой служит та точка, абсциссой и ординатой которой являются соответственно числа к1 и 0. Асимптотами гиперболы являются координатная ось а и прямая а = кь Вертикальная асимптота гиперболы пересекается с параболой в той точке, абсциссой и ординатой которой являются соответственно числа к\ и к2.

Исключение величины Ь из уравнений (4.2) и (4.3) приводит к следующему уравнению для нахождения абсциссы а* точки пересечения гиперболы и параболы: а3 - 2к1а2 + (к!2 + к2)а - к1к2 + к3 = 0. (6)

Заменим в нём обозначение неизвестной величины символом t, а вместо а* будем использовать обозначение Л Построим (на основе левой части уравнения (6)) вспомогательный многочлен q, определяемый равенством

q(t) = ^ - 2к/ + (к12 + к2у - кхк2 + к3. (7)

Рассмотрим на комплексной г-плоскости соответствующее многочлену q уравнение

гъ - 2к^2 + (к!2 + к2)г - к1к2 + к3 = 0, (8)

в котором г = а + ¡Ь. Воспользуемся (с точностью до обозначений) известными свойствами корней алгебраического уравнения с действительными коэффициентами на комплексной плоскости [3, с. 75]. Согласно этим свойствам, корни уравнения (8) на г-плоскости принадлежат замкнутому кольцу или замкнутому кругу. Центром кольца или круга служит начало координат. В случае кольца границей является объединение двух окружностей, имеющих свои радиусы. В случае круга границей служит его окружность. В данной работе в случае кольца меньший радиус имеет обозначение пЬ, а больший радиус - пс. В случае круга за пЬ принято число 0, а за пс - радиус круга. Величины пЬ и пс зависят от величин Ь3 и с0, определяемых равенствами

Ь3 = тах{1, | - 2М|, \кх2 + к2|}; (9)

с0 = тах{|- 2ка|, | к2 + к2|, |- кк + к3|}. (10)

Для величин пЬ и пс справедливы зависимости

пь = |- кк + кз|/(Ьз + |-к1к2 + кз|), пс = 1 + с0. (11)

Зависимости (9) - (11) учитываются на шаге 1 алгоритма.

Величина /*, являясь корнем и многочлена (7), и уравнения (8), располагается на действительной оси комплексной г-плоскости, а именно в объединении замкнутых промежутков

[- пс, - пь], [пь, пс]. (12)

Из величин пь и пс лишь пь может принимать значение 0. Этот факт учитывается на шаге 2.

Если уравнение (8) имеет комплексные корни, а его действительный корень отличен от нуля, то этот корень является внутренней точкой одного из промежутков (12). Поэтому он может быть найден с помощью дихотомии одного из промежутков (12) и присваивания величине /* значения этого корня. Если уравнение (8) не имеет комплексных корней и ни один из его корней не является нулём, то при любом расположении действительных корней уравнения (8) внутри промежутков (12) один из них позволяет найти с помощью дихотомии корень уравнения (8) и присвоить величине ^ значения найденного корня. Эти факты являются очевидными и используются на шаге 3 алгоритма.

Изложенное выше позволяет сформулировать алгоритм решения уравнения (1).

Алгоритм

1. Вычисление значений величин Ь3, с0, пЬ, пс по формулам

Ь3 = тах{1, | - 2ка|, | к2 + к2|}, с0 = тах{| - 2к\\, | к2 + к2|, | - к\к2 + к3|},

пь = | - кк + кз|/(Ьз + | - кк + кз|), пс = 1 + с0.

2. Проверка величин пЬ на корень уравнения г3 - 2к1г2 + (к12 + к2)г - к1к2 + + к3 = 0. В случае положительного результата проверки: присваивание величине /* значения пЬ и переход на шаг 4.

3. Определение знака произведения ^(пЬ)-^(пс). В случае отрицательного знака - дихотомия промежутка [пЬ,пс] и присваивание величине /* значения найденного корня. В случае положительного знака - дихотомия промежутка [ - пс, - пЬ] и присваивание величине /* значения найденного корня.

4. Вычисление действительного корня х уравнения (1) по формуле х = /*- кь

5. Вычисление значений величин а* и Ъ* по формулам

а = /*, Ъ* = а (а - к\) + к2.

6. Вычисление корней уравнения х2 + ах + Ъ* = 0 и присваивание их значений корням х2 и х3 уравнения (1).

Пример 1. Требуется решить с помощью алгоритма уравнение х3 - 18,1х -- 34,8 = 0 [1, с. 29]. Перед применением алгоритма находим значения величин к1, к2, к3: к1 = 0; к2 = - 18,1; к3 = - 34,8.

Результаты выполнения шагов алгоритма:

1) Ъ3 = 18,1; с0 = 34,8; пЪ = 0,657844990548204; пс = 35,800000000000000.

2) дП) ф 0.

3) д(пЪ)-д(пс) < 0. = 5,005265097281269.

4) х = 5,005265097281269.

5) а* = 5,005265097281269; Ъ = 6,952678694062071.

6) х2 = -2,502632548640635 + /(-0,830366798798310); х3 = -2,502632548640635 + /(0,830366798798310).

При решении уравнения из примера 1 посредством алгоритма итерационные шаги были прекращены тогда, когда абсолютная величина значения многочлена д в середине очередного отрезка не превысила числа 10-17. Всего было сделано 65 шагов. Корни, полученные с помощью алгоритма, совпали с корнями, полученными по формулам из [4].

Сопоставление корней, полученных с помощью алгоритма, с корнями из [1] приводит к следующим выводам. При округлении х1 и действительных частей корней х2 и х3, полученных с помощью алгоритма, соответственно до шести и девяти значащих цифр получаются соответствующие величины из [1]. При таком округлении мнимых частей корней х2 и х3, полученных с помощью алгоритма, при котором число значащих цифр совпадает с числом значащих цифр в корнях х2 и х3 из [1], имеет место несовпадение в трёх последних разрядах.

Пример 2. Требуется вычислить корни полинома Якоби Р3(2,1,х) [5, с. у] с помощью алгоритма. Для вычисления корней предварительно найдём значения коэффициентов кь к2, к3 по следствию из формулы явного выражения [5, с. у]. В результате получим следующие равенства:

к = -1,28571428571429; к2 = 4,28571428571429-10 - 1; к3 = -2,85714285714286-10 - 2

Результаты выполнения шагов алгоритма:

1) Ъ3 = 2,57142857142857, с0 = 2,57142857142857, пъ = 1,68865435356201-10-1, пс = 3,57142857142857.

2) д(пЪ) ф 0.

3) д(-пс)-д(-пЪ) < 0, = -1,19712632620158.

4) х = 8,85879595127039-10 ^.

5) а" = -1,1971263262015, Ъ = 3,22520450054291-10-1.

6) х2 = 7,87659461760847-10-1, х3 = 4,09466864440735-10ч.

При решении уравнения из примера 2 посредством алгоритма итерационные шаги были прекращены тогда, когда абсолютная величина многочлена д в сере-

дине очередного отрезка не превысила число 10-17. Всего было сделано 55 шагов. Все корни, полученные с помощью алгоритма, совпали с корнями, полученными по формулам из [4]. Корни х1 и х2, полученные с помощью алгоритма, совпадают с соответствующими известными корнями [5, с. 235] (в [5] приведены корни, полученные методом Ньютона). Притом последняя значащая цифра корня х3, полученного с помощью алгоритма, отличается на единицу от соответствующей цифры корня из [5], а остальные значащие цифры полученного с помощью алгоритма корня х3 совпадают с соответствующими цифрами корня из [5].

Значения величин а* и Ь* в примерах 1 и 2 являются координатами точек, расположенных в верхней полуплоскости той плоскости, которая выше отнесена к системе координат О, а, Ь. В обоих примерах значение величины а* больше значения величины к1, а величина к3 имеет отрицательное значение. Эти факты -проявление следующих закономерностей: если к3 < 0, то в верхней полуплоскости, справа от вертикальной асимптоты гиперболы, парабола и гипербола имеют по крайней мере одну общую точку; если к3 > 0, то в верхней полуплоскости, слева от вертикальной асимптоты гиперболы, парабола и гипербола имеют по крайней мере одну общую точку. Закономерности вытекают из взаимного расположения гиперболы и параболы на плоскости. Алгоритм закономерностей не учитывает, хотя учёт может приводить к уменьшению длины того промежутка, к которому можно применять дихотомию. Учёт закономерностей приводит к изложенной ниже модификации алгоритма. Модификация использует табл. 1, в которой тот промежуток, к которому следует применять дихотомию, имеет обозначение Ж. Если одной из его границ является к1, то имеет место упоминаемое выше уменьшение длины промежутка, подвергаемого дихотомии.

Таблица 1

Границы предназначенного для дихотомии промежутка Ж

Случаи Меньшая и большая г эаницы промежутка Ж

1 к3<0; к!>0; д(к!)-д(пс)<0 к1 пс

2 к3<0; ^<0; д(к1)д(- пЬ )<0 к1 - пь

3 к3<0; к!<0; д(пЬ)д(пс)<0 пь пс

4 к3>0; к!<0; д( - пс)--д(к!)<0 - пс к1

5 к3>0; к!>0:; д(- пс)д(- пЬ)<0 - пс - пь

6 к3>0; к!>0; д(пЬ)--д(к!)<0 пь к1

Модификация алгоритма

1. Вычисление значений величин Ь3, с0, пЬ, пс по формулам

Ь3 = тах{1, | - 2к\\, | кI2 + к2|}, с0 = тах{| - 2к\\, | кI2 + к2|, | - к\к2 + к3|}, Пь = | - кк + кз|/(Ьз + | - кк + кз|), пс = 1 + С0.

2. Установление номера случая по табл. 1.

3. Проверка величины пЬ на корень уравнения ^ - 2к\12 + (к12 + к2)х - к\к2 + + к3 = 0. При положительном результате проверки: идентификация величины пЬ как /* и переход на шаг 4. При отрицательном результате проверки: дихотомия (в целях поиска корня многочлена д) промежутка Ж и идентификация найденного корня как величины /.

4. Вычисление действительного корня х1 уравнения (1) по формуле х1 = /* - к1.

5. Вычисление значений величин а* и Ъ* по формулам

а* = /*, Ъ* = а*(а* - к\) + к2.

6. Вычисление корней уравнения х2 + а*х + Ъ* = 0 и идентификация их как корней х2 и х3 уравнения (1).

Пример 3. Требуется решить с помощью модификации алгоритма уравнение X + пх + 100 = 0. Перед применением алгоритма находим значения величин к1, к2, к3: к1 = 0; к2 = п; к3 = 100.

Результаты выполнения шагов модификации алгоритма:

1) b3 = 3,14159265358979, c0 = 1,00000000000000 102,

nb = 9,69540972048579-10ч, nc = 1,01000000000000 102.

2) Случай 4.

3) f = -4,41616324489854.

4) xj = -4,41616324489854.

5) a* = -4,41616324489854, b* = 2,26440904591826-Ю1.

6) x2 = 2,20808162244927 + /-4,21526582883979. x3 = 2,20808162244927 - /-4,21526582883979.

При решении уравнения из примера 3 деление пополам очередного отрезка было прекращено тогда, когда его длина не превысила числа 10-18. Всего было сделано 67 итерационных шагов. Все корни, полученные с помощью модификации алгоритма, совпали с корнями, полученными по формулам из [4].

При получении вышеприведённых результатов, связанных с примерами 1-3, использовались специально разработанные автором компьютерные программы на языке Турбо Паскаль. В них для арифметических операций над числами и операции извлечения квадратного корня из неотрицательного числа применялись соот-ветствнно арифметические выражения [6, с. 146] и функция sqrt [6, с. 208] из стандарта языка программирования. Притом в программах все величины, имеющие дробные значения, имели тип extended, благодаря чему представления этих величин в компьютере содержали 19-20 цифр.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Для испытания предлагаемого алгоритма на возможность его применения к высокоточному вычислению (постановка вопроса принадлежит Е. М. Малеко из Магнитогорского государственного технического университета) действительный корень x1 и компоненты корней x2 и x3 уравнения из примера 3 также были вычислены с точностью 50 знаков после запятой. Притом применялось моделирование шагов алгоритма, а в его рамках, в частности, и моделирование арифметических операций над числами и моделирование операции извлечения квадратного корня из неотрицательного числа. (При моделировании не использовались арифметические выражения и функция извлечения квадратного корня, содержащиеся в стандарте языка программирования.) Вычисление было произведено в среде языка Турбо Паскаль и описано ниже.

При моделировании выполнялись действия над строками. Каждая строка содержала 60 символов. Это число обеспечило, в частности, сходимость итерационных процессов, имитирующих при моделировании вычисление корня методом дихотомии и итерационного извлечение квадратного корня из неотрицательного числа. Первым символом строки был символ пробел в случае неотрицательного числа и символ минус в случае отрицательного числа. Те строки, которые заменя-

ли числовые коэффициенты кубического уравнения и отдельные вспомогательные числа, даны в табл. 2.

Таблица 2

Числа и заменяемые их строки при моделировании

№ Число Строка

1 1 ' 1,000000000000000000000000000000000000000000000000000000000'

2 0 ' 0,000000000000000000000000000000000000000000000000000000000'

3 п ' 3,141592653589793238462643383279502884197169399375105820974'

4 100 ' 100,0000000000000000000000000000000000000000000000000000000'

5 10 ' 10,00000000000000000000000000000000000000000000000000000000'

6 - 1 '-1,000000000000000000000000000000000000000000000000000000000'

7 0,5 ' 0,500000000000000000000000000000000000000000000000000000000'

8 4 ' 4,000000000000000000000000000000000000000000000000000000000'

9 8 ' 8,000000000000000000000000000000000000000000000000000000000'

При моделировании имели место следующие действия: 1) моделирование сложения двух числовых слагаемых; 2) моделирование деления любого числа на отличное от нуля число; 3) моделирование умножения двух чисел; 4) моделирование деления числа 1 на отличное от нуля число; 5) моделирование итерационного извлечения квадратного корня из неотрицательного числа. Так как при принятом в работе моделировании сложения каждое из слагаемых может быть или нулём, или положительным, или отрицательным числом, то моделирование вычитания чисел в работе не осуществлялось. Четвёртое и пятое действия базировались на соответствующих итерационных способах вычислений. При моделировании вычисления значения величины Ь, являющейся результатом деления числа 1 на положительное отличное от единицы число а, использовались разработанные автором следующие итерационные зависимости:

Ьо = 0; Ьк = Ь-1 + (1 - а-Ьк_1)/10р+1, если к = 1,2,... . (*)

В зависимостях (*) величина р является порядком числа а в таком его экспоненциальном представлении, в котором абсолютная величина мантиссы не меньше числа 1. Числом шагов, гарантирующим сходимость при использовании формул (*), было экспериментально полученное число 1100. Притом за начальное приближение было взято число 0. Наличие числа 10 в соотношениях (*) позволило при реализации (этих соотношений) деление осуществлять сдвигом запятой влево или вправо (в зависимости от знака величины р) на р + 1 разряд. При моделировании вычисления положительного значения величины Ь, являющейся результатом извлечения квадратного корня из положительного числа а, использовались происходящие из известной формулы [1, с. 28] следующие итерационные зависимости:

Ь0 = 8; Ьк+1 = (Ьк-Ьк + а)/(2Ьк), если к = 0,1,2,. . (**)

Числом тех шагов, при котором сошлась последовательность полученных по формулам (**) приближений, стало число 8. Моделирование деления произвольного числа а на отличное от нуля число Ь происходило из способа получения результата деления числа а на число Ь путём умножения числа а на величину Ьч. При моделировании дихотомии для достижения сходимости итерационного процесса потребовалось 199 шагов. Результаты моделирования шагов алгоритма отражены в табл. 3.

Таблица 3

Результаты моделирования шагов алгоритма

Шаг Результы моделирования шага

1 'Ъ3' = ' 3,141592653589793238462643383279502884197169399375105820974'; 'с0' = ' 100,0000000000000000000000000000000000000000000000000000000'; 'пь' = ' 0,969540972048578778409308508755311638040661219809103898400'; Ч' = ' 101,0000000000000000000000000000000000000000000000000000000'.

2 'ц{пь)'ф' 0,000000000000000000000000000000000000000000000000000000000 '.

3 Первым символом строки 'д( - пс)-д( - пь)' является знак минус; 'Г = '-4,416163244898541926876995816539042620956252871850369939347'.

4 Ч' = '-4,416163244898541926876995816539042620956252871850369939347'.

5 'а*' = '-4,416163244898541926876995816539042620956252871850369939347'; Ч' = ' 22,64409045918261243660427024591830200837301521253241874573'.

6 'гех2' = ' 2,208081622449270963438497908269521310478126435925184969673'; 'тх2' = ' 4,215265828839790696631198927569780758976854985761136033563'.

Округление чисел, соответствующих строкам 'х1', гех2, Чшх2 из табл. 3, до пятидесяти знаков после запятой приводит к тем расположенным в табл. 4 значениям корней, которые соответствуют условиям примера при вычислении (действительного корня и компонентов комплексных корней с ненулевыми мнимыми частями) с точностью 50 знаков после запятой.

Таблица 4

Полученные моделированием корни

Обозначение Корень

Х1 - 4,41616324489854192687699581653904262095625287185037

Х2 2,20808162244927096343849790826952131047812643592518 + + /4,215 26582883979069663119892756978075897685498576114

Х3 2,20808162244927096343849790826952131047812643592518 -- /4,21526582883979069663119892756978075897685498576114

Значение округлённого до пятидесяти знаков после запятой корня хь полученного моделированием шагов алгоритма, совпало с результатом вычислений Е.М. Малеко по методу Ньютона с помощью математического пакета Maple 8. Значения округлённых до пятидесяти знаков после запятой компонентов корней x2 и x3, полученных моделированием шагов алгоритма, совпали с результатами вычислений М.С. Бухтяка из Томского государственного университета посредством его авторской программы, использующей шаг 5 (из изложенного в [1] способа) в среде математического пакета Maple 8. Поэтому справедливо следующее заключение: испытание предлагаемого алгоритма на возможность его применения к высокоточному вычислению прошло успешно.

Алгоритм, как показал компьютерный эксперимент, позволяет научно-техническим работникам без использования метода касательных оперативно и самостоятельно создавать и применять небольшие по объёму файлы для решения кубических уравнений (в частности, посредством программы EXCEL). Алгоритм не выполняет присущие способу из [1] действия а, в, у, 5, и поэтому используют дихотомию. Эти обстоятельства приводят к следующим выводам: задача исследования решена; цель исследования достигнута.

Автор благодарит Е.М. Малеко за проявленный им интерес к модификации алгоритма на стадии подготовки данной статьи к опубликованию и за помощь, связанную с Maple. Также за помощь, связанную с Maple, автор благодарит М.С. Бухтяка. Автор благодарит В.М. Галкина из Томского политехнического университета за его помощь (при подготовке данной статьи к печати) в улучшении формулировки шага 2 алгоритма.

ЛИТЕРАТУРА

1. Справочник по специальным функциям с формулами, графиками и таблицами. М.: Наука, 1979. 832 с.

2. Математический энциклопедический словарь. М.: Сов. энциклопедия, 1988. 847 с.

3. Сборник задач по методам вычислений / под ред. П.И. Монастырского. - Мн: Изд-во БГУ им. В.И. Ленина, 1983. 288 с.

4. Несмеев Ю.А. Об одном подходе к решению алгебраических уравнений 3-й и 4-й степеней // Вестник Томского государственного университета. Математика и механика. 2011. № 1(13). С. 26-30.

5. Глонти Э.Н. Таблицы корней и квадратурных коэффициентов полиномов Якоби. М.: Вычислительный центр АН СССР, 1971. 238 с.

6. Руководство по программированию под управлением MS DOS. М.: Радио и связь, 1995. 544 с.

Статья поступила 15.10.2013 г.

Nesmeev Yu.A. AN ALGORITHM FOR SOLVING CUBIC EQUATIONS

An algorithm for finding the roots of a cubic equation is proposed. It uses the dichotomy and the method of undetermined coefficients. It takes into account the relative position of the parabola and the hyperbola in the plane and the location of roots of algebraic equations in the complex plane. A modification of the algorithm is proposed. Using the algorithm, three examples are solved. One of them is looking for roots of the Jacobi polynomial. The well-known numerical method for solving cubic equations is estimated (from the viewpoint of the scientific and technical personnel). Its following stages are estimated. a) Searching for an interval that contains one root. P) Calculation of the initial approximation of the root. y) Calculation of next approximations. 5) Dividing the left side of the cubic equation by a binomial. s) Calculation of roots of a quadratic polynomial. The author reported the aim of researches presented in this article. The aim was to build such a numerical method of solving the equation x3+kix1+k2x+k3,=0, (1) that is available to technologists and does not use the method of tangents. The author reported the problem of the research: to construct such an algorithm that computes roots of equation (1) without performing actions a, в, у, and 5 and uses the dichotomy. The problem of the research was solved under the assumption that k3 Ф 0. The used methods are as follows: studying and analyzing the literature, mathematical calculations, mathematical modeling, and computer experiment. The following algorithm is presented. 1. Calculating values of the quantities b3, c0, nb, and nc by formulas b3 = max {1, | - 2k! |, | k12 + k2 |}, c0 = max {| - 2k! |, | k12 + k2 |, | - k1k2 + k3 |}, nb = | - k1k2 + k3 | / (b3 + | - k1k2 + k3 |), and nc = 1 + c0. 2. Checking quantities nb for being a root of the equation q(z) = z3 - 2kjz2 + (kj2 + k2) z - kjk2 + k3 = 0. In the case of a positive test result, assigning the value nb to the quantity t* and going to step 4. 3. Determination of the sign of the product q(nb)q(nc). In the case of a negative sign, the dichotomy is applied to the interval [nb, nc] and the quantity t* is assigned the value of the found root. In the case of a positive sign, the dichotomy is applied to the interval [ - nc, - nb] and the quantity t* is assigned the value of the found root. 4. Calculating the real root x1 of equation (1) by the formula x1 = t* - k1. 5. Evaluation of the quantities a* and b* by the formulas a* = t* and b* = a*(a* - k1) + k2. 6. Calculation of roots of the equation x2 + a*x + b* = 0 and assigning their values to the roots x2 and x3 of equation (1). In two examples, the author used a specially designed computer programs written in Turbo Pascal. Arithmetic operations on numbers and square rooting generation for non-negative numbers were performed by arithmetic

expressions and sqrt function, respectively, from the programming language standard. In one example, operations on numbers were replaced by operations on strings.

Keywords: dichotomy, complex plane, root of an equation.

NESMEEV YuriiAlekseevich (Magnitogorsk State Technical University,

Magnitogorsk, Russian Federation)

E-mail: nes_ya@list.ru

REFERENCES

1. Spravochnik po spetsial'nym funktsiyam s formulami, grafikami i tablitsami. Moskow, Nauka Publ., 1979, 832 p. (in Russian)

2. Matematicheskiy entsiklopedicheskiy slovar'. Moskow, Sov. entsiklopediya Publ., 1988, 847 p. (in Russian)

3. Monastyrskiy P.I., ed. Sbornik zadach po metodam vychisleniy. Minsk, Izd-vo BGU im. V.I. Lenina, 1983, 288 p. (in Russian)

4. Nesmeev Yu.A. Ob odnom podkhode k resheniyu algebraicheskikh uravneniy 3-y i 4-y stepeney. Vestnik Tomskogo gosudarstvennogo universiteta. Matematika i mekhanika, 2011, no. 1(13), pp. 26-30. (in Russian)

5. Glonti E.N. Tablitsy korney i kvadraturnykh koeffitsientov polinomov Yakobi. Moskow, Vy-chislitel'nyy tsentr AN SSSR Publ., 1971, 238 p. (in Russian)

6. Rukovodstvo po programmirovaniyu pod upravleniem MS DOS. Moskow, Radio i svyaz' Publ., 1995, 544 p. (in Russian)

i Надоели баннеры? Вы всегда можете отключить рекламу.