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

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

В области комплексных чисел, согласно основной теореме алгебры, кубическое уравнение всегда имеет 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 г.

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

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

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

Необходимо решить кубическое уравнение с действительными коэффициентами: 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.

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

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

💡 Видео

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Теорема Безу

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

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

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

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

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

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

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

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

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

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