Введение
Уравнения в школьном курсе алгебры занимают ведущее место. На их изучение отводится времени больше, чем на любую другую тему, поскольку они не только имеют важное теоретическое значение, но и служат чисто практическим целям. Подавляющее большинство задач о пространственных формах и количественных отношениях реального мира сводится к решению различных видов уравнений. Овладевая способами их решения, мы находим ответы на различные вопросы из науки и техники.
Актуальность данной работы заключается в том, что на уроках алгебры, геометрии, физики мы очень часто встречаемся с решением квадратных и биквадратных уравнений. Таким образом, каждый учащийся должен обладать навыками корректного и эффективного решения таких уравнений, что может быть полезным при работе с более сложными задачами, в том числе в процессе подготовки к экзаменам. Автоматизация процедуры решения биквадратных уравнений позволяет верифицировать правильность аналитического решения или служить ключевым инструментом для нахождения решения уравнения.
Проблема. Создать программы для автоматического решения биквадратных уравнения.
Объект исследования: автоматизированное решение биквадратных уравнений.
Предмет исследования: языки программирования Python и Pascal.
Гипотеза. Компьютерные программы, выполненная на языках программирования Python и Pascal позволяют автоматизировать процесс решения биквадратных уравнений.
Цель исследования: изучить и создать программы для определения количества и автоматического вычисления корней биквадратных уравнений на языках программирования Python и Pascal.
Поставленная цель исследования предполагает решение ряда задач:
исследовать квадратные и биквадратные уравнения;
составить алгоритм решения биквадратных уравнений;
разработать вычислительные программы для решения биквадратных уравнений;
провести сравнительный анализ работы программ для решения биквадратных уравнений;
сформулировать выводы и рекомендации по выбору программы для решения уравнений с помощью компьютера.
Методы исследования:
теоретический - анализ статей, обзоров информационных ресурсов Интернет по обозначенной теме;
эмпирический - проведение эксперимента по созданию программ для автоматического решения биквадратных уравнений.
Новизна исследования заключается в экспериментальной проверке компьютерных вычислений с помощью различных программ, в том числе и на языках программирования. В своей работе мы затрагиваем вопросы решения квадратных и биквадратных уравнений на языках программирования Pascal и Python.
Практическая значимость состоит в том, что созданные для проведения эксперимента программы можно будет использовать и в дальнейшем для нахождения корней уравнений.
Данная работа посвящена изучению и практическому решению биквадратных уравнений. Проект включает в себя алгоритм решения, анализ случаев для дискриминанта и нахождения вещественных корней, если таковые существуют, программный способ решения биквадратных уравнений, а также практические примеры.
Раздел I. Теоретическая часть
Уравнение. Виды уравнений.
Уравнение – это равенство вида g Чаще всего в качестве выступают числовые функции.
Алгебраическим уравнением называется уравнение вида где – многочлен от переменных , которые называются неизвестными [1].
Существует несколько видов алгебраических уравнений: линейное, квадратное, кубическое уравнение, уравнение четвертой степени (биквадратное).
Линейные уравнения.
Квадратные уравнения.
, где – переменная, – коэффициенты, причём .
Кубические уравнения.
, где – переменная, – коэффициенты, причём .
Уравнение четвёртой степени.
, где – переменная, – коэффициенты, причём .
Биквадратное уравнение – уравнение четвёртой степени вида
, где – переменная, – коэффициенты, причём .
Квадратные уравнения. Количество корней и способ решения
Впервые квадратные уравнения сумели решить математики древнего Египта. Вавилоняне умели решать неполные квадратные уравнения, так же частные виды полных квадратных уравнений около 2 тысяч лет до нашей эры. Древнегреческие математики умели решать некоторые виды квадратных уравнений, сводя их к геометрическим построениям. Примеры решения уравнений без использования геометрических знаний дает Диофант Александрийский (3 век). Диофант в своих книгах «Арифметика» изложил способ решения полных квадратных уравнений, однако эти книги не сохранились. В Европе формулы для решения квадратных уравнений были впервые изложены итальянским математиком Леонардо Фибоначчи в 1202 году.
Общее правило решения квадратных уравнений, преобразованных в вид , было описано немецким математиком М. Штифелем. Он и сформулировал в 1544 году общее правило решения квадратных уравнений, приведенных к единому каноническому виду при всевозможных вариациях знаков и коэффициентов b и с.
Франсуа Виет вывел формулы квадратного уравнения в общем виде, однако он работал только с положительными числами.
Тарталья, Кардано, Бомбелли – итальянские ученые, которые среди первых в XVI веке учитывают кроме положительных еще и отрицательные корни.
Выводом формулы решения квадратных уравнений общего вида занимался Виет. Одно свое утверждение он высказывал лишь для положительных корней (отрицательных чисел он не признавал).
После трудов нидерландского математика Альберта Жирара, а также Декарта и Ньютона, методы решения квадратных уравнений приняли современный вид [3].
Квадратные уравнения , где – переменная, – коэффициенты, причём .
Для нахождения корней квадратного уравнения в общем случае следует пользоваться приводимым ниже алгоритмом:
Вычислить значение дискриминанта
Найти корни уравнения, исходя из следующих условий:
|
Условие |
Число действительных корней |
Формуладля нахождения корней |
|
Два |
||
|
Один |
||
|
Нет |
- |
Биквадратные уравнения. Количество корней и способ решения
Уравнения четвёртой степени впервые были рассмотрены древнеиндийскими математиками между IV в. до н. э. и II в. н. э.
Биквадратное уравнение , где – переменная, – коэффициенты, причём .
Способ решения – подстановкой
Cводится к квадратному уравнению относительно
Алгоритм решения биквадратного уравнения:
Ввести новую переменную
Подставить данную переменную в исходное уравнение.
Решить квадратное уравнение относительно новой переменной.
После нахождения корней подставить их в исходную переменную и найти исходные корни биквадратного уравнения.
Раздел II. Практическая часть
2.1. Аналитическое решение квадратных и биквадратных уравнений
В своей работе, мы решили остановиться на решении квадратных и биквадратных алгебраических уравнений, так как эти виды уравнений – самые распространённые. Они используются в таких науках, как алгебра, геометрия, физика и химия.
Проведем анализ квадратных и биквадратных уравнений, определив количество корней и решим эти уравнения.
значит уравнение имеет два корня
Ответ: уравнение имеет два корня, .
значит уравнение имеет один корень
Ответ: уравнение имеет один корень, .
значит уравнение не имеет корней
Ответ: уравнение не имеет корней.
Замена:
Обратная замена:
или
.
Ответ: уравнение имеет четыре корня,
Замена:
Обратная замена:
или
корней нет
Ответ: уравнение имеет два корня,
Ответ: уравнение имеет три корня,
Замена:
Обратная замена:
или
Ответ: уравнение не имеет корней.
Ответ: уравнение имеет один корень, .
корней нет
Ответ: уравнение имеет один корень,
Замена:
Обратная замена:
.
Ответ: уравнение имеет два корня,
Замена:
Ответ: уравнение не имеет корней.
Ответ: уравнение не имеет корней.
2.2. Блок-схемы решение квадратного и биквадратного уравнений
Рис.1. Блок-схема решения квадратного уравнения
Рис.2. Блок-схема решения биквадратного уравнения
2.3. Разработка решений уравнений на языке программирования Pascal
Паскаль (англ. Pascal) – язык программирования общего назначения. Один из наиболее известных языков программирования, используется для обучения программированию в школе, является базой для ряда других языков [6].
На языке программирования Pascal, программа для решения квадратных уравнений будет иметь вид, представленный в Приложении 1.
Решенные квадратных уравнений в среде Pascal ABC.net представлены в Приложении 2.
На языке программирования Pascal, программа для решения биквадратных уравнений будет иметь вид, представленный в Приложении 3.
Решенные биквадратных уравнений в среде Pascal ABC.net представлены в Приложении 4.
2.4. Разработка решения уравнений на языке программирования Python
Python – это мощный профессиональный язык программирования, который благодаря своему простому синтаксису позволяет обучающимся быстро освоить базовые алгоритмические структуры и акцентировать основное внимание на оттачивании навыков программирования [5, с. 96]. Он преднамеренно оптимизирован для ускорения разработки – его встроенный инструментальный набор предоставляет программистам возможность разрабатывать программы за гораздо меньшее время, чем то, которое пришлось бы потратить, применяя ряд других инструментов [4, с. 43].
На языке программирования Python, программа для решения биквадратных уравнений будет иметь вид, представленный в Приложении 5.
Решенные биквадратных уравнений на языке Python представлены в Приложении 6.
2.5. Сравнительный анализ работы программ Pascal и Python
Выполняя сравнительный анализ разработанных программ, можно сделать следующие выводы:
обе программы решают биквадратные уравнения при любых значениях коэффициентов и анализируют их;
при одинаковых значениях коэффициентов программы выдают одинаковые результаты.
Программы на языках программирования Pascal и Python решают одну и ту же задачу – вычисление корней биквадратного уравнения. Однако они различаются по своим функциональным особенностям и подходам к реализации алгоритмов.
Язык Pascal отличается строгой структурированностью выполнения алгоритмов и требует использования условных операторов для обработки различных условий. Это может быть особенно полезно в ситуациях, где необходимо обеспечить высокую надёжность и предсказуемость работы программы.
Python, напротив, предлагает более интуитивный и понятный синтаксис, а также доступ к мощным математическим библиотекам, что позволяет существенно ускорить процесс разработки и реализации программных решений.
Выбор конкретного языка программирования зависит от специфики задачи, требований к производительности, а также предпочтений и опыта разработчика. Оба языка обладают высокой эффективностью, но Pascal подходит для создания стабильных и надёжных программных продуктов, тогда как Python является предпочтительным выбором для быстрого и эффективного решения задач.
На основании проведенного анализа можно констатировать, что оба рассмотренных языка программирования подходят для решения задачи благодаря своим функциональным характеристикам и широкому применению в ИТ.
Заключение
Практической значимостью даннойработы стало проведение эксперимента по разработке программы, которую можно будет использовать и в дальнейшем для нахождения корней биквадратных уравнений.
В ходе выполнения исследовательской работы были изучены основные принципы работы программирования на языке программирования на языках Паскаль и Питон при разработке программы для нахождения корней квадратных и биквадратных уравнений.
Подводя итоги исследования, можно сказать, что цель работы достигнута и получены следующие результаты:
исследованы квадратные и биквадратные уравнения;
составлен алгоритм решения биквадратных уравнений;
разработаны вычислительные программы для решения биквадратных уравнений;
проведен сравнительный анализ работы программ для решения биквадратных уравнений;
сформулированы выводы и рекомендации по выбору программы для решения уравнений с помощью компьютера.
Данная работа посвящена изучению и практическому решению биквадратных уравнений. Проект включает в себя алгоритм решения, анализ случаев для дискриминанта и нахождения вещественных корней, если таковые существуют, программный способ решения биквадратных уравнений, а также практические примеры.
Список используемых источников и литературы
Математика: большой справочник для школьников и поступающих в вузы / Д. И. Аверьянов, П. И. Алтынов, И. И. Баврин и др. — Москва: Дрофа, 1998. — 864 с.
Информатика и ИКТ: задачник-практикум. – Т. 2 / Л. А. Залогова [и др.]; под ред. И. Г. Семакина, Е. К. Хеннера. – 3-е изд. — Москва: БИНОМ. Лаборатория знаний, 2011. — 294 с.: ил.
Пичурин, Л.Ф. За страницами алгебры / Л.Ф. Пичурин. – Москва: Просвещение, 1990. – 256 с.
Лутц,М. Изучаем Руthon / М. Лутц; пер. с англ. Ю. Н. Артеменко. - 5-е изд. – Санкт-Петербург: Диалектика, 2019. - 832 с.
Маркелов, В. К.Инструментарий облачной среды Google Colaboratoty для обучения программированию и подготовки к ЕГЭ по информатике / В.К. Маркелов, О.А. Завьялова // Информатика в школе. - 2022. - № 6. - С. 68–80.
Макарова, Н.В. Информатика и ИКТ: практикум 8-9 / Н.В. Макарова. – Санкт-Петербург: Питер, 2008. – 385 с.
Угринович, Н.Д. Информатика и ИКТ: учебник для 9 класса / Н.Д. Угринович. – Москва: БИНОМ. Лаборатория знаний, 2010. – 295 с.: ил.
Приложения
Приложение 1.
Программа для решения квадратных уравнений на языке программирования Pascal
program kvadrat;
var a,b,c: real;
x1, x2: real; d:real;
begin
writeln ('введите коэффиценты a,b,c');
readln (a,b,c);
d:=b*b-4*a*c;
if d<0 then writeln ('действительных корней нет')
else if d=0
then writeln ('одиндействительныйкорень: x1=', -b/(2*a):6:3)
else
begin
d:=sqrt(d);
writeln ('два действительных корня');
writeln ('x1=', (-b+d)/(2*a):6:3);
writeln ('x2=', (-b-d)/(2*a):6:3);
end;
end.
Приложение 2.
Решенные квадратных уравнений в среде Pascal ABC.net
Рис. 1.1. Решение уравнения
Рис. 1.2. Решение уравнения
Рис. 1.3. Решение уравнения
Приложение 3.
Программа для решения биквадратных уравнений на языке программирования Pascal
program BiKvadrat;
var
a, b, c, x1, x2, x3, x4, y1, y2, d: real;
begin
writeln('Общий вид биквадратного уравнения');
writeln('a * x ^ 4 + b * x ^ 2 + c = 0');
write(' введите коэффициент a = ');
readln(a);
write('введите коэффициент b = ');
readln(b);
write('введите коэффициент c = ');
readln(c);
if a<>0 then
begin
if (b>0) and (c>0) then begin writeln(a,'*x^4+',b,'*x^2+',c,' = 0');writeln('замена y = x^2');writeln(a,'*y^2+',b,'*y+',c,' = 0');end;
if (b>0) and (c<0) then begin writeln(a,'*x^4+',b,'*x^2',c,' = 0');writeln('замена y = x^2');writeln(a,'*y^2+',b,'*y',c,' = 0');end;
if (b<0) and (c>0) then begin writeln(a,'*x^4',b,'*x^2+',c,' = 0');writeln('замена y = x^2');writeln(a,'*y^2',b,'*y+',c,' = 0');end;
if (b<0) and (c<0) then begin writeln(a,'*x^4',b,'*x^2',c,' = 0');writeln('замена y = x^2');writeln(a,'*y^2',b,'*y',c,' = 0');end;
if (b=0) and (c>0) then begin writeln(a,'*x^4+',c,' = 0');writeln('замена y = x^2');writeln(a,'*y^2+',c,' = 0');end;
if (b=0) and (c<0) then begin writeln(a,'*x^4',c,' = 0');writeln('замена y = x^2');writeln(a,'*y^2',c,' = 0');end;
if (b>0) and (c=0) then begin writeln(a,'*x^4+',b,'*x^2+',c,' = 0');writeln('замена y = x^2');writeln(a,'*y^2+',b,'*y = 0');end;
if (b<0) and (c=0) then begin writeln(a,'*x^4',b,'*x^2 = 0');writeln('замена y = x^2');writeln(a,'*y^2',b,'*y = 0');end;
d := sqr(b) - 4 * a * c;
if d < 0 then begin
writeln('Дискриминант меньше нуля');
writeln('Ответ: Биквадратное уравнение не имеет корней');
end
else
begin
if d = 0 then
begin
y1 := -b / (2 * a);
if y1<0 then writeln('Ответ: Биквадратное уравнение не имеет корней');
if y1=0 then begin x1:=0; writeln('Ответ: Биквадратное уравнение имеет один корень', ' x1 = 0');end;
if y1>0 then begin x1:=sqrt(y1); x2:=-sqrt(y1); writeln('Ответ: Биквадратное уравнение имеет два корня', ' x1 = ',x1:8:3,' x2 = ',x2:8:3);end;
end
else
begin
y1 := (-b + sqrt(d)) / (2 * a);
y2 := (-b - sqrt(d)) / (2 * a);
if (y1>0) and (y2>0) then begin x1:=sqrt(y1); x2:=-sqrt(y1); x3:=sqrt(y2); x4:=-sqrt(y2); writeln('Ответ: Биквадратноеуравнениеимеетчетырекорня', ' x1 = ',x1:4:2,' x2 = ',x2:4:2,' x3 = ',x3:4:2,' x4 = ',x4:4:2);end;
if (y1>0) and (y2<0) then begin x1:=sqrt(y1); x2:=-sqrt(y1); writeln('Ответ: Биквадратноеуравнениеимеетдвакорня', ' x1 = ',x1:4:2,' x2 = ',x2:4:2);end;
if (y1<0) and (y2>0) then begin x1:=sqrt(y2); x2:=-sqrt(y2); writeln('Ответ: Биквадратноеуравнениеимеетдвакорня', ' x1 = ',x1:4:2,' x2 = ',x2:4:2);end;
if (y1>0) and (y2=0) then begin x1:=sqrt(y1); x2:=-sqrt(y1); x3:=0; writeln('Ответ: Биквадратноеуравнениеимееттрикорня', ' x1 = ',x1:4:2,' x2 = ',x2:4:2,' x3 = ',x3:4:2);end;
if (y1=0) and (y2>0) then begin x1:=0; x2:=sqrt(y2); x3:=-sqrt(y2); writeln('Ответ: Биквадратноеуравнениеимееттрикорня', ' x1 = ',x1:4:2,' x2 = ',x2:4:2,' x3 = ',x3:4:2);end;
if (y1<0) and (y2=0) then begin x1:=0; writeln('Ответ: Биквадратноеуравнениеимеетодинкорень', ' x1 = ',x1:4:2);end;
if (y1=0) and (y2<0) then begin x1:=0; writeln('Ответ: Биквадратноеуравнениеимеетодинкорень', ' x1 = ',x1:4:2);end;
if (y1<0) and (y2<0) then writeln('Ответ: Биквадратное уравнение не имеет корней');
end;
end;
end
else writeln('Ответ: Уравнение не является биквадратным');
end.
Приложение 4.
Решенные биквадратных уравнений в среде Pascal ABC.net
Рис. 2.1. Решение уравнения
Рис. 2.2. Решение уравнения
Рис. 2.3. Решение уравнения
Рис. 2.4. Решение уравнения
Рис. 2.5. Решение уравнения
Рис. 2.6. Решение уравнения
Рис. 2.7. Решение уравнения
Рис. 2.8. Решение уравнения
Рис. 2.9. Решение уравнения
Приложение 5.
Программа для решения биквадратных уравнений на языке программирования Python
import math
print('Общий вид биквадратного уравнения')
print('a * x ^ 4 + b * x ^ 2 + c = 0')
a = float(input('Введите коэффициент a = '))
b = float(input('Введите коэффициент b = '))
c = float(input('Введите коэффициент c = '))
if a != 0:
d = b**2 - 4 * a * c
if d < 0:
print('Дискриминант меньше нуля')
print('Ответ: Биквадратное уравнение не имеет корней')
else:
if d == 0:
y1 = -b / (2 * a)
if y1 < 0:
print('Ответ: Биквадратное уравнение не имеет корней')
elif y1 == 0:
x1 = 0
print('Ответ: Биквадратное уравнение имеет один корень', ' x1 = 0')
else:
x1 = math.sqrt(y1)
x2 = -math.sqrt(y1)
print('Ответ: Биквадратное уравнение имеет два корня', ' x1 = ', x1, ' x2 = ', x2)
else:
y1 = (-b + math.sqrt(d)) / (2 * a)
y2 = (-b - math.sqrt(d)) / (2 * a)
if y1 > 0 and y2 > 0:
x1 = math.sqrt(y1)
x2 = -math.sqrt(y1)
x3 = math.sqrt(y2)
x4 = -math.sqrt(y2)
print('Ответ: Биквадратное уравнение имеет четыре корня',
' x1 = ', x1, ' x2 = ', x2, ' x3 = ', x3, ' x4 = ', x4)
elif y1 > 0 and y2 < 0:
x1 = math.sqrt(y1)
x2 = -math.sqrt(y1)
print('Ответ: Биквадратное уравнение имеет два корня', ' x1 = ', x1, ' x2 = ', x2)
elif y1 < 0 and y2 > 0:
x1 = math.sqrt(y2)
x2 = -math.sqrt(y2)
print('Ответ: Биквадратное уравнение имеет два корня', ' x1 = ', x1, ' x2 = ', x2)
elif y1 > 0 and y2 == 0:
x1 = math.sqrt(y1)
x2 = -math.sqrt(y1)
x3 = 0
print('Ответ: Биквадратное уравнение имеет три корня',
' x1 = ', x1, ' x2 = ', x2, ' x3 = ', x3)
elif y1 == 0 and y2 > 0:
x1 = 0
x2 = math.sqrt(y2)
x3 = -math.sqrt(y2)
print('Ответ: Биквадратное уравнение имеет три корня',
' x1 = ', x1, ' x2 = ', x2, ' x3 = ', x3)
elif y1 < 0 and y2 == 0:
x1 = 0
print('Ответ: Биквадратное уравнение имеет один корень', ' x1 = ', x1)
elif y1 == 0 and y2 < 0:
x1=0
print('Ответ: Биквадратное уравнение имеет один корень', ' x1 = ',x1)
elif y1 < 0 and y2 < 0:
print('Ответ: Биквадратное уравнение не имеет корней')
else:
writeln('Ответ: Уравнение не является биквадратным')
Приложение 6.
Решенные биквадратных уравнений на языке Python
Рис. 3.1. Решение уравнения
Рис. 3.2. Решение уравнения
Рис. 3.3. Решение уравнения
Рис. 3.4. Решение уравнения
Рис. 3.5. Решение уравнения
Рис. 3.6. Решение уравнения
Рис. 3.7. Решение уравнения
Рис. 3.8. Решение уравнения
Рис. 3.9. Решение уравнения