Как решить кубическое уравнение на паскале

Как решить кубическое уравнение на паскале

Создание программы решения уравнений второй и выше степени в системе Pascal ABC

Автор работы награжден дипломом победителя II степени

На сегодняшний день невозможно представить себе какую-либо область деятельности, обходящуюся без применения компьютерной техники. Компьютеры используются при проведении бухгалтерских расчетов, при решении инженерных задач, в процессе управления производством, при получении оценок производственных ситуаций и во многих других случаях. Уравнения второго и выше порядка встречаются довольно часто при изучении прикладных предметов. При решении уравнений нередко возникает необходимость разложить на множители многочлен, степень которого равна двум, трем или выше, а затем требуется проверить решение. Чтобы быстро справиться с проверкой решения таких уравнений, можно воспользоваться средствами вычислительной техники – составить программу на языке программирования Pascal ABC.

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

Объектом исследования является схема Горнера, и система программирования Pascal ABC.

Предметом исследования выступают алгоритм Горнера для решения уравнений второго порядка и выше в системе программирования Pascal ABC.

Цель исследования – реализация решения уравнений второго и выше порядка, основываясь на схеме Горнера в среде программирования Pascal ABC.

Цель и предмет исследования обусловили необходимость решения следующих задач:

Исследовать важность данной проблемы у обучающихся 9 – 11 классов и выявить эффективность взаимосвязи математического алгоритма и системы программирования Pascal ABC.

Определить эффективность создания программы решения уравнений.

Оценить перспективы от создания программы.

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

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

В ходе исследования были использованы следующие группы методов:

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

эмпирические: опросно – диагностические методы (интервьюирование, беседы) и др.;

статистические: анализ статистических данных.

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

Определена эффективность создания программы решения уравнений второго и выше порядка в системе программирования Pascal ABC.

Оценены перспективы от создания программы.

Теоретическая значимость исследования состоит в разработке алгоритма решения уравнений второго и выше порядка при составлении программы на языке программирования Pascal ABC.

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

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

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

Анкетирование (Анкетирование учащихся школы по разработанным анкетам)

Обработка анкет и анализ полученных результатов (Работа включает в себя выбор программного обеспечения для обработки анкет. Обработка данных и анализ результатов.)

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

Составление и тестирование программы.

Презентация проекта (Представление итогового проекта для обсуждения и оценивания.)

Методы исследования. Анализ информационных источников, статистическая обработка результатов.

Глава 1. Теоретическая часть «Описание математических методов решения уравнений второго и выше порядка»

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

Различные уравнения решали более 25 веков назад. Множество способов решения таких уравнений были созданы в Вавилоне, Индии. Потребность в уравнениях была и будет. Нами приведены способы решения (нахождения корней) квадратных уравнений и уравнений высших степеней. Целое уравнение третьей или более высокой степени в отдельных случаях удается решить, используя точечные приемы. Один из приемов решения уравнения вида Р(х)=), где Р(х) – многочлен, степень которого больше двух, состоит в разложении многочлена на множители. Вспомним, какие способы разложения многочлена на множители мы изучали в 7 классе.

Вынесение общего множителя за скобки

С помощью формул сокращенного умножения

С помощью корней квадратного трехчлена.

В основном это способы решения для уравнений частного характера, то есть в каждой группе уравнений, объединенных какими – либо общими свойствами, приведено особое правило, которое применяется только для этой группы уравнений. Этот способ (подбора к каждому уравнению собственной формулы) гораздо легче, чем нахождение корней через дискриминант. Для деления многочленов применяется правило «деления углом», или схема Горнера.

1.1. Схема Горнера. Возможности.

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

Уильям Джордж Горнер (1786 – 1837), известный по схеме Горнера. Опубликована теорема была в 1815г. в Англии.

Схема Горнера позволяет:

Найти значение многочлена в точке a;

Выяснить, является ли число a – корнем многочлена;

Найти новый многочлен от деления на двучлен (понизить степень);

Используя схему Горнера, мы одновременно проверяем, является ли числоa корнем многочлена и делим этот многочлен на двучлен . Это нам потребуется для понижения степени уравнения и мы сможем воспользоваться вспомогательным алгоритмом.

Выделим существенные правила, которые нам могут пригодиться при решении уравнений второго и выше порядка. Здесь нам помогут такие факты:

Если сумма всех коэффициентов многочлена равна нулю, то число 1 является корнем многочлена.

Если сумма коэффициентов многочлена при четных степеняхравна сумме коэффициентов при нечетных степенях, то число -1 является корнем многочлена.

Для приведенного многочлена степени (из теоремы Виета следует, что) если корни многочлена целые, то они являются делителями его свободного члена, который также является целым числом.

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

1.2. Виды уравнений. 1.2.1. Уравнения второй степени (квадратные)

Квадратное уравнение — алгебраическое уравнение 2 — й степени. Общий вид уравнения: . Корни уравнения : Формулы верны при любых коэффициентах.

1.2.2. Уравнения третьей степени (кубические)

Кубическое уравнение — алгебраическое уравнение третьей степени. Общий вид кубического уравнения: ax 3 + bx 2 + cx + d = 0, где а ≠ 0

Используя правила Горнера решим уравнение такого вида. (Приложение 2). Понизив степень многочлена мы продолжаем решение обычного квадратного уравнения, рассмотренного ранее.

1.2.3. Уравнения четвертой степени

Уравнение четвертой степени — алгебраическое уравнение четвертой степени. Общий вид кубического уравнения: аx 4 + bx 3 + cx 2 + dх+е = 0,где а ≠ 0.

Используя схему Горнера решим уравнение этого вида.(Приложение 3). Понизив степень многочлена мы продолжаем решение кубического уравнения, используя схему Горнера, поставив перед собой цель, понизить степень до квадратного уравнения.

В теоретической части нашей работы нами рассмотрены решение квадратных уравнений и уравнений третьей, четвертой степени методом Горнера, определена схема решения уравнений второго, третьего, четвертого порядка, выведены новые, ранее нам неизвестные формулы. Мы проработали много вариантов примеров перед тем, как сделать вывод: используя схему Горнера, мы решаем уравнения третьей, четвертой и выше степеней аналогично. Мы уже представляем себе, как составить программу , которая будет решать уравнения такого вида. Каждое решение пригодится нам в дальнейшей учебе. Эта работа помогла классифицировать старые знания и познать новые.

Глава 2. Экспериментальная часть «Реализация метода Горнера на практике» 2.1. Эксперимент 1. Выявление основных методов решения уравнений второй и выше степени.

Цель: проанализировать основные методы решения уравнений на практике; проанализировать время, которое тратится на решение уравнений второй и выше степени.

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

По результатам анкетирования (приложение 1) учащихся 9 – 11 классов (всего 55 оппонентов) оценки правильного нахождения корней уравнений второго и выше порядка выделено:

Умеют решать квадратные уравнения через дискриминант 50 оппонентов; кубические уравнения делением «уголочком» подбором корней 10 оппонентов; 4 степени подбором корней 3 оппонента и заменой переменной; уравнения выше 4 степени не пробовал решать никто.

Время, которое затрачивается обучающимся на решение уравнений:

Из графика видно, что временные затраты на решение даже одного уравнения существенно. А если их надо решить несколько? Время увеличится в разы.

2.2. Эксперимент 2. Создание алгоритма решения уравнений второго порядка и выше.

Цель: проанализировать эффективность метода Горнера при составлении программы; выработать схему использования вспомогательного алгоритма.

Проанализировав анкеты, мы выяснили, что при решении уравнений второго и выше пличными методами: методом подбора корней, делением уголочком многочлена на многочлен, что довольно долгий процесс решения.

Рассмотренные теоретические вопросы дают возможность создания алгоритма решения поставленной цели. Этот алгоритми будем разрабатывать.

Обращаясь к вспомогательному алгоритму решения квадратного уравнения (приложение 3) и алгоритму «понижения степени» многочлена (нахождения делителей многочлена, разложение многочлена на множители), воспользуемся схемой Горнера. 2.3. Эксперимент 3 . Создание программы, реализующей схему Горнера при решении уравнений второй и выше степени.

Цель: составить программу, позволяющую решать уравнения второй и выше степени; проанализировать работу программы.

Для составления программы мы выбрали среду программирования Pascal ABC. Данная программная среда является языком высокого уровня и в последнее время пользуется не только профессиональными программистами, но и начинающим, а также на уроках информатике и ИКТ в гимназии.

В системе программирования четко реализованы принципы структурного программирования. Сначала мы написали программы отдельно для каждого вида уравнений. Затем воспользовались вспомогательным алгоритмом нахождения квадратного уравнения (приложение 3), кубического уравнения (приложение 4), решили объединить, составили программу с использованием процедуры. Рассмотренные теоретические вопросы дают возможность создания программы на Pascal ABC для решения.

Текст программы решения уравнений второй и выше степени, приведен в приложении 5.

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

Математическая энциклопедия. — М.: Советская энциклопедия.И. М. Виноградов.1977—1985.

В.В. Фараонов «Турбо Паскаль». Издание 7-е переработанное

Интернет http://ru.wikipedia.org «Википедия» — универсальная энциклопедия

Приложение 1 Анкета для обучающихся

Умеете ли Вы решать уравнения вида ах 2 + вх+с=0 (уравнения второго порядка)?

а) да Если «ДА» каким способом _____________________

в) никогда не делал этого ( не встречал в своей жизни)

Сколько занимает времени решение одного уравнения второго порядка?

а) от 1 до 5 минут б) от 5до 10 минут

в) от 10 до 30 минут г) около часа

Умеете ли Вы решать уравнения вида ах 3 + вх 2 +сх+d=0 (уравнения третьего порядка)?

а) да Если «ДА» каким способом ______________________

в) никогда не делал этого ( не встречал в своей жизни)

Сколько занимает времени решение одного уравнения третьего порядка?

а) от 1 до 5 минут б) от 5до 10 минут

в) от 10 до 30 минут г) около часа

Умеете ли Вы решать уравнения вида ах 4 + вх 3 +сх 2 +dx+e=0 (уравнения четвертого порядка)?

а) да Если «ДА» каким способом ______________________

в) никогда не делал этого ( не встречал в своей жизни)

Сколько занимает времени решение одного уравнения четвертого порядка ?

а) от 1 до 5 минут б) от 5до 10 минут

в) от 10 до 30 минут г) около часа

Умеете ли Вы решать уравнения более высокого порядка ?

а) да Если «ДА» каким способом ______________________

в) никогда не делал этого ( не встречал в своей жизни)

Хотели бы Вы научиться решать уравнения второго порядка и выше?

а) да б) нет в) предпочитаю списать

Хотели бы Вы иметь у себя программу, решающую уравнения второго порядка и выше?

Приложение 2 Решение уравнения методом Горнера

Находим делители свободного члена ±1; ± 2; ± 3; ± 6.

Как решить кубическое уравнение на паскале

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

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

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.

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

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

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

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


источники:

http://program.rin.ru/razdel/html/757.html

http://jurnal.org/articles/2014/mat4.html