Решение кубического уравнения в программирование

Методы решения кубических уравнений

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

· Если Δ > 0, тогда уравнение имеет три различных вещественных корня.

· Если Δ = 0, тогда хотя бы два корня совпадают. Это может быть, когда уравнение имеет двойной вещественный корень и ещё один отличный от них вещественный корень; либо, все три корня совпадают, образуя корень кратности 3.

Корни кубического уравнения Решение кубического уравнения в программированиесвязаны с коэффициентами Решение кубического уравнения в программированиеследующим образом:

Решение кубического уравнения в программирование

Исходя из основных свойств решения кубических уравнений, необходимо дать определение понятию «комплексное число». Комплексные числа — числа вида x + y , где x и y – вещественные числа, i – мнимая единица , то есть: i 2 = –1. Числа x = Â (z) ( или Re z ) и y = Á (z) ( или Im z ) называются соответственно вещественной и мнимой частями z . Множество всех комплексных чисел обозначается Решение кубического уравнения в программирование. Если комплексное число z = x + iy , то число Решение кубического уравнения в программированиеназывается сопряжённым к z . [1]

Наиболее распространенный метод решения кубических уравнений – метод перебора. [2] Сначала путём перебора находится один из корней уравнения (например, x 1 ). Вторая стадия решения – это деление многочлена ax 3 + bx 2 + cx + d на двучлен x – x 1 и решение полученного квадратного уравнения.

Алгоритм решения кубических уравнений с использованием формулы Кардано

В данном разделе статьи приведен подробный алгоритм решения уравнений третьей степени с помощи формулы Кардано. Данный алгоритм состоит из двух этапов. На первом этапе кубические уравнения приводятся к форме, в которой отсутствует член со второй степенью неизвестного. Такие кубические уравнения называют трёхчленными кубическими уравнениями. На втором этапе трёхчленные кубические уравнения решаются при помощи сведения их к квадратным уравнениям . [3]

Рассмотрим алгоритм нахождения всех корней кубического уравнения Решение кубического уравнения в программированиена основе описанной выше формулы, а также ее тригонометрической интерпретации. [3,4] Приведем исходное уравнение к каноническому виду. Для этого с делаем замену переменного по формуле Решение кубического уравнения в программирование: Решение кубического уравнения в программирование. Раскрыв скобки в левой части уравнения, получим: Решение кубического уравнения в программирование. Уравнение приведено к каноническому виду:

Решение кубического уравнения в программирование Решение кубического уравнения в программирование Решение кубического уравнения в программирование

Дискриминантом уравнения Решение кубического уравнения в программированиеназывается число Решение кубического уравнения в программирование. Найдем решение полученного уравнения в виде:

Решение кубического уравнения в программирование
Решение кубического уравнения в программирование
Решение кубического уравнения в программирование

Число Решение кубического уравнения в программированиеудовлетворяет этому равенству, если числа m и n удовлетворяют системе из двух уравнений:

Решение кубического уравнения в программирование Решение кубического уравнения в программирование

Находим числа m и n: Решение кубического уравнения в программирование

Дальнейшее решение зависит от знака дискриминанта S.

1. Пусть дискриминант меньше нуля. Тогда уравнение имеет три различных корня.

Решение кубического уравнения в программирование Решение кубического уравнения в программирование

Найдём модуль комплексных чисел Решение кубического уравнения в программирование:

Решение кубического уравнения в программирование

Аргумент числа Решение кубического уравнения в программированиеравен (в зависимости от знака q):

· Если Решение кубического уравнения в программирование, то Решение кубического уравнения в программирование

· Если Решение кубического уравнения в программирование, то Решение кубического уравнения в программирование

· Если Решение кубического уравнения в программирование, то Решение кубического уравнения в программирование

Для k=0, k=1, k=2 получаем решение:

Решение кубического уравнения в программирование

Решение кубического уравнения в программирование

Решение кубического уравнения в программирование

Итак, если дискриминант меньше нуля, то уравнение имеет три различных действительных корня:

Решение кубического уравнения в программирование

2. Пусть дискриминант больше нуля. Тогда уравнение имеет один действительный корень и два комплексно-сопряжённых.
Решение кубического уравнения в программирование

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

Примем аргумент F действительных чисел, стоящих под знаком кубического корня, равным нулю. При этом модули этих чисел могут принимать отрицательное значение. Аргумент кубического корня будет принимать 3 значения: 0, 2*π/3, 4*π/3. Каждое решение y=y1, y=y2, y=y3 будет состоять из суммы двух комплексных чисел Решение кубического уравнения в программирование.

Число z1 находится в группе из трёх чисел:

Решение кубического уравнения в программирование

Решение кубического уравнения в программирование

Решение кубического уравнения в программирование

Число z2 находится в группе из трёх чисел:

Решение кубического уравнения в программирование

Для действительных значений кубических корней выполняется обозначенное выше условие. Поэтому действительный корень уравнения Решение кубического уравнения в программирование. Учитывая равенство Решение кубического уравнения в программирование, получим два комплексно сопряжённых корня: Решение кубического уравнения в программирование, Решение кубического уравнения в программирование.

Итак, если дискриминант больше нуля, то уравнение имеет один действительный корень и два комплексно-сопряжённых корня:

Решение кубического уравнения в программирование
Решение кубического уравнения в программирование Решение кубического уравнения в программирование

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

Решение кубического уравнения в программирование Решение кубического уравнения в программирование

Решение кубического уравнения в программирование

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

Теперь получим решение исходного кубического уравнения Решение кубического уравнения в программирование. Дискриминант этого уравнения равен:

Решение кубического уравнения в программирование

В зависимости от знака дискриминанта S возможны три случая:

· Если Решение кубического уравнения в программирование, то:

Решение кубического уравнения в программирование

· Если Решение кубического уравнения в программирование, то:

Решение кубического уравнения в программирование

· Если Решение кубического уравнения в программирование, то:

Решение кубического уравнения в программирование

При этом: Решение кубического уравнения в программирование. Аргумент F вычисляется по формулам, рассмотренным выше, исходя из знака q.

Реализация алгоритма в объектно-ориентированной среде программирования Delphi

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

Решение кубического уравнения в программирование

Рис. 1 . Интерфейс программы для решения кубических уравнений.

Для решения уравнения пользователю необходимо ввести коэффициенты уравнения. Результат работы программы – коэффициенты уравнения в канонической форме (p и q), дискриминант (Q) и корни уравнения. Для создания интерфейса использовались следующие компоненты среды Delphi [5]:

· Label – для информирования пользователя о назначении программы, обозначения предназначения полей ввода – вывода;

· Button – для реализации основных действий программы (решения уравнения, очистки полей ввода-вывода, закрытия программы);

· Edit – для организации ввода-вывода данных;

· Panel и GroupBox – для группировки элементов на форме программы.

Рассмотрим код основных процедур программы.

Для решения уравнения необходимо объявить следующие переменные:

· A,B,C,D – коэффициенты исходного уравнения;

· p,q – коэффициенты преобразованного уравнения;

· F – аргумент комплексного корня;

· Re, Im – действительная и мнимая части комплексного корня;

· x1,x2,x3,y1,y2 – корни уравнения.

В программе предусмотрен контроль корректности ввода данных:

if (edit1.Text=») or (edit2.Text=») or (edit3.Text=») or (edit4.Text=») then

Showmessage(‘Введите все коэффициенты уравнения’);

Процедуры Clear_Koeffs и Clear_Results осуществляют очистку полей ввода-вывода.

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

edit5.Text := FloatToStr(p); edit6.Text := FloatToStr(q);

Вычисление корней уравнения происходит в зависимости от знака дискриминанта:

· Если дискриминант меньше нуля:

if q>0 then F:=Arctan(-2*Sqrt(-QQ)/q)+Pi;

if q=0 then F:=Pi/2;

if q=0 then x3:=-B/A/3;

Edit8.Text := FloatToStr(x1); Edit9.Text := FloatToStr(x2);

· Если дискриминант больше нуля:

if QQ>0 then begin

if -q/2+Sqrt(QQ)>0 then y1:=exp(ln(abs(-q/2+Sqrt(QQ)))/3);

if -q/2+Sqrt(QQ)=0 then y1:=0;

if -q/2-Sqrt(QQ)>0 then y2:=exp(ln(abs(-q/2-Sqrt(QQ)))/3);

if -q/2-Sqrt(QQ)=0 then y2:=0;

x1:=y1+y2-B/A/3; Re:=-(y1+y2)/2-B/A/3; Im:=(y1-y2)*Sqrt(3)/2;

Edit9.Text := FloatToStr(Re)+’ + i * ‘+FloatToStr(Im);

Edit10.Text:= FloatToStr(Re)+’ — i * ‘+FloatToStr(Im);

· Если дискриминант равен нулю:

if QQ=0 then begin

if q>0 then y1:=-exp(ln(abs(-q/2))/3);

Edit8.Text := FloatToStr(x1); Edit9.Text := FloatToStr(x2);

В программе также организован программный контроль ввода коэффициентов. Для этого создан обработчик события KeyPress для соответствующих элементов типа Edit [6]:

if not (Key in [‘-‘, ‘1’..’9′, #8]) then Key := #0.

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

Существует довольно много проблем в различных научных областях, решение которых сводится к изучению методов решения уравнений третьей и выше степеней. Таким образом, можно сделать вывод, что актуальность проведенного исследования заключается в практическом применении рассмотренных методов, а также созданного программного обеспечения как при изучении некоторых тем математики, физики в школе и ВУЗах, так и при решении прикладных задач из различных областей.

1. Бронштейн И.Н., Семендяев К.А. Справочник по математике для инженеров и учащихся ВТУЗов. – М.: Наука, 1986.

2. Омельченко В.П., Э.В.Курбатова. Математика: учебное пособие. – Ростов н/Д.: Феникс, 2005.

3. Пичурин Л.Ф. За страницами учебника алгебры. – М.: Просвещение, 1990.

4. Корн Г., Корн Т. Справочник по математики для научных работников и инженеров. – М.: Наука, 1973.

5. Фленов М.Е. Библия Delphi. – С-Пб: БХВ-Петербург, 2011.

6. Архангельский А.Я. Delphi 7. Справочное пособие. – М.: Бином, 2004.

Поступила в редакцию 07.04.2014 г.

Видео:✓ Как решать кубические уравнения. Формула Кардано | Ботай со мной #025 | Борис ТрушинСкачать

✓ Как решать кубические уравнения. Формула Кардано | Ботай со мной #025 | Борис Трушин

Полное решение кубического уравнения (формула Кардано)

Необходимо решить кубическое уравнение с действительными коэффициентами: ax 3 + bx 2 + cx + d = 0 .

По основной теореме алгебры оно имеет три корня (4 различных типа).

Формула была украдена у Тартальи и опубликована Джероламо Кардано (тем самым изобретателем карданного вала) в книге «Великое искусство» в 1545 году. Описание алгоритма доступно в Интернете, однако программная реализация имеет некоторые нюансы, связанные с необходимостью анализа исходных данных. Вот что получилось:

Входными параметрами метода являются коэффициенты a, b, c, d; по ссылке возвращается тип корней (tip=1,2,3,4) и их значения (p1,p2,p3):

Для типа 1 (tip=1) имеется один действительный и два комплексных корня: x1=p1; x2=p2+i*p3; x3=p2-i*p3, где i — мнимая единица.
Тип 2 — три различных действительных корня, тип 3 — один отличающийся и два кратных действительных корня, тип 4 — три кратных действительных корня, для всех типов (tip=2,3,4) x1=p1, x2=p2, x3=p3.
Если кубическое уравнение является характеристическим уравнением исходного линейного дифференциального уравнения 3 степени, то для его решения важно знать именно тип решения (tip).

Для тестирования метода используйте следующую программу:

Минимальный набор тестов:
a, b, c, d:
187.5, 50, 10, 1 -> тип 1
1, 6, 3, -10 -> тип 2
1, 12, 36, 32 -> тип 3
3, -9, 9, -3 -> тип 4

Видео:КАК РЕШАТЬ КУБИЧЕСКИЕ УРАВНЕНИЯ | Разбираем на конкретном примереСкачать

КАК РЕШАТЬ КУБИЧЕСКИЕ УРАВНЕНИЯ | Разбираем на конкретном примере

Решение кубического уравнения в программирование

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

К убическое уравнение записывается в виде:

x 3 +a*x 2 +b*x+c=0.

Д ля нахождения его корней, в случае действительных коэффициентов, вначале вычисляются:

Q=(a 2 -3b)/9,
R=(2a 3 -9ab+27c)/54.

Д алее, если R 2 3 , то уравнение имеет три действительных корня, вычисляющихся по формулам (Виета):

t=acos(R/sqrt(Q 3 ))/3,

В том случае, когда R 2 >=Q 3 , то действительных корней один (общий случай) или два (вырожденные случаи). Кроме действительного корня, имеется два комплексно-сопряженных. Для их нахождения вычисляются (формула Кардано):

Д ействительный корень будет:

К омплексно-сопряженные корни:

В том случае, когда A=B, то комплексно-сопряженные корни вырождаются в действительный:
x2=-A-a/3.

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

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

📺 Видео

КУБИЧЕСКИЕ УРАВНЕНИЯ 😉 #егэ #математика #профильныйегэ #shorts #огэСкачать

КУБИЧЕСКИЕ УРАВНЕНИЯ 😉 #егэ #математика #профильныйегэ #shorts #огэ

Математика | Кубические уравнения по методу СталлонеСкачать

Математика | Кубические уравнения по методу Сталлоне

Математика это не ИсламСкачать

Математика это не Ислам

Кубические уравнения. Деление столбиком. Схема Горнера.Скачать

Кубические уравнения. Деление столбиком. Схема Горнера.

ФОРМУЛА КАРДАНО-ТАРТАЛЬЯ + РЕКЛАМА МФТИ!!!Скачать

ФОРМУЛА КАРДАНО-ТАРТАЛЬЯ + РЕКЛАМА МФТИ!!!

РЕШЕНИЕ КУБИЧЕСКОГО УРАВНЕНИЯ МЕТОДОМ ГРУППИРОВКИСкачать

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

Разложение кубических выражений на множителиСкачать

Разложение кубических выражений на множители

ОГЭ №21 Как решать кубическое уравнение x^3+4x^2-9x-36=0 Группировка Деление многочлена столбикомСкачать

ОГЭ №21 Как решать кубическое уравнение x^3+4x^2-9x-36=0 Группировка Деление многочлена столбиком

Решение уравнений третьей степени (формула Кардано)Скачать

Решение уравнений третьей степени (формула Кардано)

Самый простой способ решить кубическое уравнениеСкачать

Самый простой способ решить кубическое уравнение

Решение уравнения третьей степени x³-9x-12=0Скачать

Решение уравнения третьей степени x³-9x-12=0

Разбор задачи 1131 acmp.ru Корень кубического уравнения. Решение на C++Скачать

Разбор задачи 1131 acmp.ru Корень кубического уравнения. Решение на C++

Теорема БезуСкачать

Теорема Безу

Решение кубического уравнения преобразованием Чирнгауза! (Tscirnhaus transformation, solve cubic)Скачать

Решение кубического уравнения преобразованием Чирнгауза! (Tscirnhaus transformation, solve cubic)

Формула Кардано. Решение уравнений третьей степени.Скачать

Формула Кардано. Решение уравнений третьей степени.

Как мнимые числа спасли математику [Veritasium]Скачать

Как мнимые числа спасли математику [Veritasium]

Можно ли решить уравнение 5-й степени? – математик Алексей Савватеев | НаучпопСкачать

Можно ли решить уравнение 5-й степени? – математик Алексей Савватеев | Научпоп

Mathcad-09. Пример: уравненияСкачать

Mathcad-09. Пример: уравнения
Поделиться или сохранить к себе: