Сообщество Engee

Полиномы - дифференцирование и интегрирование

Автор
avatar-alexevsalexevs
Notebook

Дифференцирование и интегрирование многочленов

В этом примере показано применение функций derivative() и integrate() из библиотеки Polynomials.jl для аналитического нахождения производных и интегралов многочленов.

Подключим библиотеку Polynomials.jl:

using Polynomials

Дифференцирование многочленов

Зададим многочлен

p = Polynomial([7, 0, -4, 1])
7 - 4∙x2 + x3

Найдём первую производную многочлена :

q_1 = derivative(p)
-8∙x + 3∙x2

Найдём вторую производную многочлена :

q_2 = derivative(p, 2)
-8 + 6∙x

Найдём производную рационального выражения , где и - многочлены:

a = Polynomial([5, 3, 1]);
b = Polynomial([6, 4, 2]);
ab = a // b
(5 + 3*x + x^2) // (6 + 4*x + 2*x^2)

Первая производная такого выражения будет равна:

В случае, если функция derivative() при вычислении производной рациональной функции возвращает одно значение, то полученное значение также будет рациональной функцией:

c = derivative(ab)
(-2 - 8*x - 2*x^2) // (36 + 48*x + 40*x^2 + 16*x^3 + 4*x^4)

Если же функция derivative() при вычислении производной рациональной функции возвращает два значения, то мы получим многочлены числителя и знаменателя результирующего выражения:

c_n, c_d = derivative(ab)
[c_n, c_d]
2-element Vector{Polynomial{Int64, :x}}:
 Polynomial(-2 - 8*x - 2*x^2)
 Polynomial(36 + 48*x + 40*x^2 + 16*x^3 + 4*x^4)

Интегрирование многочленов

Найдем интеграл многочлена

s_0 = integrate(q_1)
-4.0∙x2 + 1.0∙x3

Найдём интеграл этого же многочлена, но с добавлением свободного коэффициента:

s = integrate(q_1, 7)
7.0 - 4.0∙x2 + 1.0∙x3

Вывод

В этом демонстрационном примере были рассмотрены способы дифференцирования и интегрирования многочленов средствами библиотеки Polynomials.jl.