ExtendedLaurentPolynomials.Polynomial
— TypePolynomial{T}(coeffs, exponent; variable)
Creates a Polynomial with coeffs
of type T
. Supports Rational
exponents and substitution.
#Examples
julia> Polynomial(8)
8
julia> Polynomial([1, 2, 3, 4, 5], [-2, -1, 0, 1, 2])
z^-2 + 2*z^-1 + 3 + 4*z + 5*z^2
julia> Polynomial([1, 2, 3, 4, 5], [-2, -1, 0, 1, 2]; variable=:x)
x^-2 + 2*x^-1 + 3 + 4*x + 5*x^2
julia> Polynomial([1, 2, 3, 4, 5], [-2, -1, 0, 1, 2]; ϵ=10^(-3))
z^-2 + 2*z^-1 + 3 + 4*z + 5*z^2
ExtendedLaurentPolynomials.Polynomial
— Method(p::Polynomial)(x::Number)
(→)(x::Number, p::Polynomial)
Evaluates p
of x
.
Examples
julia> p = Polynomial([1, 2, 3, 4, 5], [-2, -1, 0, 1, 2])
z^-2 + 2*z^-1 + 3 + 4*z + 5*z^2
julia> p(2.3)
39.7086011342155
julia> 2.3 → p
39.7086011342155
Base.Math.exponent
— Methodexponent(p::Polynomial)
Returns exponents of Polynomial p
.
ExtendedLaurentPolynomials.:→
— Methodsubstitute(p::Polynomial, expr::Expr)
(→)(p::Polynomial, expr::Expr)
Substitutes expr
for p.variable
. expr
can be only √x
, a*x^b
or √(a*x^b)
.
Examples
julia> p = Polynomial([1, 2, 3, 4, 5], [-2, -1, 0, 1, 2])
z^-2 + 2*z^-1 + 3 + 4*z + 5*z^2
julia> substitute(p, :(√x))
x^-1 + 2*x^⁻¹/₂ + 3 + 4*x^¹/₂ + 5*x
julia> :(√x) → p
x^-1 + 2*x^⁻¹/₂ + 3 + 4*x^¹/₂ + 5*x
ExtendedLaurentPolynomials.InvZ
— MethodInvZ(p::Polynomial)
Performs inverse z-transform on polynomial p
that has only integer exponents.
Examples
julia> p = Polynomial([1, 2, 3, 4, 5], [-2, -1, 0, 1, 2])
z^-2 + 2*z^-1 + 3 + 4*z + 5*z^2
julia> InvZ(p)
5-element Vector{Int64}:
1
2
3
4
5
ExtendedLaurentPolynomials.LaurentDown
— MethodLaurentDown(p::Polynomial)
Downscales p.
Examples
julia> p = Polynomial([1, 2, 3, 4, 5], [-2, -1, 0, 1, 2])
z^-2 + 2*z^-1 + 3 + 4*z + 5*z^2
julia> LaurentDown(p)
z^-1 + 3.0 + 5.0*z
ExtendedLaurentPolynomials.LaurentLeft
— MethodLaurentLeft(p::Polynomial)
Shifts polynomial p
to the left.
Examples
julia> p = Polynomial([1, 2, 3, 4, 5], [-2, -1, 0, 1, 2])
z^-2 + 2*z^-1 + 3 + 4*z + 5*z^2
julia> LaurentLeft(p)
z^-1 + 2 + 3*z + 4*z^2 + 5*z^3
ExtendedLaurentPolynomials.LaurentRight
— MethodLaurentRight(p::Polynomial)
Shifts polynomial p
to the right.
Examples
julia> p = Polynomial([1, 2, 3, 4, 5], [-2, -1, 0, 1, 2])
z^-2 + 2*z^-1 + 3 + 4*z + 5*z^2
julia> LaurentRight(p)
z^-3 + 2*z^-2 + 3*z^-1 + 4 + 5*z
ExtendedLaurentPolynomials.LaurentUp
— MethodLaurentUp(p::Polynomial)
Upscales p.
Examples
julia> p = Polynomial([1, 2, 3, 4, 5], [-2, -1, 0, 1, 2])
z^-2 + 2*z^-1 + 3 + 4*z + 5*z^2
julia> LaurentUp(p)
z^-4 + 2*z^-2 + 3 + 4*z^2 + 5*z^4
ExtendedLaurentPolynomials.degree
— Methoddegree(p::Polynomial)
Computes degree of p
as difference between maximal and minimal exponent of it.