Engee 文档
Notebook

创建和计算多项式

本演示讨论了多项式的基本操作:创建、计算和查找根。

要在Engee中使用多项式-它们的创建,计算,寻根和数学运算,您可以使用该库 Polynomials.jl. 让我们下载并连接它这个例子。

In [ ]:
import Pkg
Pkg.add("Polynomials")
using Polynomials;
   Resolving package versions...
  No Changes to `~/.project/Project.toml`
  No Changes to `~/.project/Manifest.toml`

创建多项式

为了创建一个多项式的形式
让我们使用该功能 Polynomial(),我们将从自由项开始传递其系数的向量。

In [ ]:
Polynomial([1, -4, 4])
Out[0]:
1 - 4∙x + 4∙x2

您还可以通过将系数变量传递给函数来创建多项式-以向量或矩阵的形式。 . 函数的结果(多项式)可以传递给变量进行进一步的操作。

In [ ]:
p = [4 0 0 -3 2 33];
y = Polynomial(vec(p))
Out[0]:
4 - 3∙x3 + 2∙x4 + 33∙x5

创建多项式的功能可以逐元素计算。 这样的调用的结果将是多项式的向量,并且由系数的向量组成的向量将需要传递给函数。

In [ ]:
P1 = [1, 2, 3, 0, 1];
P2 = [1, 0, -1];
P3 = [0, -1, 4, -2];
P = [P1, P2, P3];

Y = Polynomial.(P)
Out[0]:
3-element Vector{Polynomial{Int64, :x}}:
 Polynomial(1 + 2*x + 3*x^2 + x^4)
 Polynomial(1 - x^2)
 Polynomial(-x + 4*x^2 - 2*x^3)

默认情况下,多项式的变量为 x. 要更改变量,必须显式指定它。:

In [ ]:
Polynomial([1,2,3], :t)
Out[0]:
1 + 2∙t + 3∙t2

您可以使用函数根据其根的值创建多项式 fromroots(). 多项式赋值的形式 它将以以下格式复制。

In [ ]:
u = fromroots([4,1,2])
Out[0]:
-8 + 14∙x - 7∙x2 + x3

计算多项式

使用调用表示法计算多项式。 计算先前创建的多项式

在点 .

In [ ]:
y(1)
Out[0]:
36

要计算使用逐个元素调用创建的多项式,您需要访问创建的向量的一个元素。 例如,计算多项式 在点 .

In [ ]:
Y[2](0.1)
Out[0]:
0.99

求多项式的根

要找到多项式的根,使用函数 roots(). 它需要传递一个多项式,例如,通过创建函数。:

In [ ]:
Polynomials.roots(Polynomial([1, 0, -1]))
Out[0]:
2-element Vector{Float64}:
 -1.0
  1.0

根据根的值计算前面创建的函数的根:
.

In [ ]:
Polynomials.roots(u)
Out[0]:
3-element Vector{Float64}:
 0.9999999999999991
 2.0000000000000018
 3.9999999999999982

从计算函数的结果可以看出,根的获得值不等于指定的值,这是通过计算浮点数的错误来解释的。

计算寻根函数的结果可以是复数的向量。 例如,让我们计算以前给定多项式的根
.

In [ ]:
Polynomials.roots(y)
Out[0]:
5-element Vector{ComplexF64}:
  -0.6988527464788102 + 0.0im
 -0.22121608146338845 - 0.5967022127055316im
 -0.22121608146338845 + 0.5967022127055316im
   0.5403394243997632 - 0.3691905470638564im
   0.5403394243997632 + 0.3691905470638564im

对于多项式向量,也可以按元素计算根。 :

In [ ]:
Polynomials.roots.(Y)
Out[0]:
3-element Vector{Vector}:
 ComplexF64[-0.34974582621172073 - 0.43899033747531147im, -0.34974582621172073 + 0.43899033747531147im, 0.34974582621172157 - 1.746977896113271im, 0.34974582621172157 + 1.746977896113271im]
 [-1.0, 1.0]
 [0.2928932188134525, 1.7071067811865475, 0.0]

结论

在这个例子中,我们检查了多项式基本运算的基本方法:创建,计算和查找根。 要更详细地研究该主题并提高您在Engee中使用多项式的技能,我们建议您参考文档的相关部分。:
多项式库.jl