| polynomialIndex | R Documentation |
Function polynomialIndex
provides a matrix which allows to iterate through the elements
of multivariate polynomial being aware of these elements' powers.
So (i, j)-th element of the matrix is power of j-th variable in i-th
multivariate polynomial element.
Function printPolynomial prints multivariate polynomial
given its degrees (pol_degrees) and coefficients
(pol_coefficients) vectors.
polynomialIndex(pol_degrees = numeric(0), is_validation = TRUE)
printPolynomial(pol_degrees, pol_coefficients, is_validation = TRUE)
pol_degrees |
a non-negative integer vector of polynomial degrees (orders). |
is_validation |
logical value indicating whether function input
arguments should be validated. Set it to |
pol_coefficients |
numeric vector of polynomial coefficients. |
Multivariate polynomial of degrees
(K_{1},...,K_{m}) (pol_degrees) has the form:
a_{(0,...,0)}x_{1}^{0}*...*x_{m}^{0}+ ... +
a_{(K_{1},...,K_{m})}x_{1}^{K_{1}}*...*x_{m}^{K_{m}},
where a_{(i_{1},...,i_{m})} are polynomial coefficients, while
polynomial elements are:
a_{(i_{1},...,i_{m})}x_{1}^{i_{1}}*...*x_{m}^{i_{m}},
where (i_{1},...,i_{m}) are polynomial element's powers corresponding
to variables (x_{1},...,x_{m}) respectively. Note that
i_{j}\in \{0,...,K_{j}\}.
Function printPolynomial removes polynomial elements
whose coefficients are zero and variables whose powers are zero. Output may
contain long coefficient representations as they are not rounded.
Function polynomialIndex
returns a matrix whose rows correspond to variables while columns
correspond to powers.
So (i, j)-th element of this matrix corresponds to the
power i_{j} of the x_{j} variable in i-th polynomial
element. Therefore i-th column of this matrix contains vector of
powers (i_{1},...,i_{m}) for the i-th polynomial element.
So the function transforms m-dimensional elements indexing
to one-dimensional.
Function printPolynomial returns the string which
contains polynomial symbolic representation.
## Get polynomial indexes matrix for the polynomial
## whose degrees are (1, 3, 5)
polynomialIndex(c(1, 3, 5))
## Consider multivariate polynomial of degrees (2, 1) such that coefficients
## for elements whose powers sum is even are 2 and for those whose powers sum
## is odd are 5. So the polynomial is 2+5x2+5x1+2x1x2+2x1^2+5x1^2x2 where
## x1 and x2 are polynomial variables.
# Create variable to store polynomial degrees
pol_degrees <- c(2, 1)
# Let's represent its powers (not coefficients) in a matrix form
pol_matrix <- polynomialIndex(pol_degrees)
# Calculate polynomial elements' powers sums
pol_powers_sum <- pol_matrix[1, ] + pol_matrix[2, ]
# Let's create a polynomial coefficients vector filling it
# with NA values
pol_coefficients <- rep(NA, (pol_degrees[1] + 1) * (pol_degrees[2] + 1))
# Now let's fill the coefficients vector with correct values
pol_coefficients[pol_powers_sum %% 2 == 0] <- 2
pol_coefficients[pol_powers_sum %% 2 != 0] <- 5
# Finally, let's check that the correspondence is correct
printPolynomial(pol_degrees, pol_coefficients)
## Let's represent a polynomial 0.3+0.5x2-x2^2+2x1+1.5x1x2+x1x2^2
pol_degrees <- c(1, 2)
pol_coefficients <- c(0.3, 0.5, -1, 2, 1.5, 1)
printPolynomial(pol_degrees, pol_coefficients)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.