Создание, вычисление нахождение корней многочленов
Создание и вычисление многочленов
В этом демонстрационном примере рассмотрены базовые операции с многочленами: создание, вычисление и нахождение корней.
Для работы с многочленами - их созданием, вычислением, нахождением корней и математическими операциями над ними в Engee можно воспользоваться библиотекой Polynomials.jl
. Загрузим и подключим её для данного примера.
import Pkg
Pkg.add("Polynomials")
using Polynomials;
Создание многочлена
Для того, чтобы создать многочлен вида
воспользуемся функцией Polynomial()
, которой передадим вектор его коэффициентов, начиная со свободного члена.
Polynomial([1, -4, 4])
Также создать многочлен можно, передав в функцию переменную коэффициентов - в виде вектора или матрицы . Результат работы функции (многочлен) можно передать переменной для дальнейших операций.
p = [4 0 0 -3 2 33];
y = Polynomial(vec(p))
Функция создания многочлена может быть рассчитана поэлементно. Результатом такого вызова будет вектор многочленов, а в функцию необходимо будет передать вектор, состоящий из векторов коэффициентов.
P1 = [1, 2, 3, 0, 1];
P2 = [1, 0, -1];
P3 = [0, -1, 4, -2];
P = [P1, P2, P3];
Y = Polynomial.(P)
По умолчанию, переменной многочленов является x
. Для изменения переменной необходимо задать её явно:
Polynomial([1,2,3], :t)
Создать многочлен можно по значениям его корней, используя при этом функцию fromroots()
. Форма задания многочлена будет воспроизведиться в следующем виде.
u = fromroots([4,1,2])
Вычисление многочлена
Вычисление многочленов производится при помощи нотации вызова. Рассчитаем ранее созданный многочлен
в точке .
y(1)
Для вычисления многочлена, созданного при помощи поэлементного вызова, необходимо обращаться к элементу созданного вектора. Например, вычислим многочлен в точке .
Y[2](0.1)
Нахождение корней многочлена
Для нахождения корней многочлена используется функция roots()
. Ей необходимо передать многочлен - например, через функцию создания:
Polynomials.roots(Polynomial([1, 0, -1]))
Вычислим корни функции, созданной ранее по значениям корней:
.
Polynomials.roots(u)
Как видно из результата вычисления функции, полученные значения корней не равны заданным, что объясняется погрешностью при расчёте чисел с плавающей точкой.
Результатом вычисления функции нахождения корней может быть вектор комплексных чисел. Например, вычислим корни для ранее заданного многочлена
.
Polynomials.roots(y)
Также корни можно вычислить поэлементно, для вектора многочленов :
Polynomials.roots.(Y)
Вывод
В этом примере мы рассмотрели основные подходы базовых операций с многочленами: создания, вычисления и нахождения корней. Для более детального изучения темы и улучшения навыков работы с многочленами в Engee рекомендуем обратиться к соответствующим разделам документации:
Библиотека Polynomials.jl.