Engee 文档
Notebook

多项式的微分和积分

本例展示了如何使用 Polynomials.jl 库中的函数derivative()integrate() 来分析求多项式的导数和积分。

让我们连接 Polynomials.jl 库:

In [ ]:
using Polynomials

多项式微分

让我们定义一个多项式$p(x) = x^3-4x^2+7$

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

求多项式的一阶导数$q_1(x)=p'(x)=3x^2-8x$ :

In [ ]:
q_1 = derivative(p)
Out[0]:
-8∙x + 3∙x2

求多项式的二次导数$q_2(x) = q_1'(x)= p''(x) = 6x-8$ :

In [ ]:
q_2 = derivative(p, 2)
Out[0]:
-8 + 6∙x

求有理表达式$\frac{a(x)}{b(x)}$ 的导数,其中$a(x)$ 和$b(x)$ 是多项式:

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

该表达式的一阶导数等于:

$$c(x) = \left( \frac{a(x)}{b(x)} \right)' = \left( \frac{x^2+3x+5}{2x^2+4x+6} \right)' = \frac{-2x^2-8x-2}{4x^4+16x^3+40x^2+48x+36}$$

如果函数derivative() 在计算有理函数的导数时返回一个值,那么得到的值也将是有理函数:

In [ ]:
c = derivative(ab)
Out[0]:
(-2 - 8*x - 2*x^2) // (36 + 48*x + 40*x^2 + 16*x^3 + 4*x^4)

如果函数derivative() 在计算有理函数的导数时返回两个值,那么我们将得到所得表达式的分子和分母的多项式:

$$c(x) = \frac{c_n(x)}{c_d(x)} = \frac{-2x^2-8x-2}{4x^4+16x^3+40x^2+48x+36}$$ $$c_n(x) = -2x^2-8x-2$$ $$c_d(x) = 4x^4+16x^3+40x^2+48x+36$$

In [ ]:
c_n, c_d = derivative(ab)
[c_n, c_d]
Out[0]:
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(x) = \int q_1(x) dx = \int \left(3x^2-8x\right) dx = x^3-4x^2 :$$

In [ ]:
s_0 = integrate(q_1)
Out[0]:
-4.0∙x2 + 1.0∙x3

让我们求同一多项式的积分,但要加上自由系数:

$$s(x) = \int q_1(x) dx +C= \int \left(3x^2-8x\right) dx +7 = x^3-4x^2+7$$

In [ ]:
s = integrate(q_1, 7)
Out[0]:
7.0 - 4.0∙x2 + 1.0∙x3

结论

在本演示中,我们了解了如何使用 Polynomials.jl 库微分和积分多项式。