series | R Documentation |
Power series of multivariate polynomials, in various forms
trunc(S,n)
truncall(S,n)
trunc1(S,...)
series(S,v,showsymb=TRUE)
## S3 method for class 'series'
print(x,...)
onevarpow(S,...)
taylor(S,vx,va,debug=FALSE)
mvp_taylor_onevar(allnames,allpowers,coefficients, v, n)
mvp_taylor_allvars(allnames,allpowers,coefficients, n)
mvp_taylor_onepower_onevar(allnames, allpowers, coefficients, v, n)
mvp_to_series(allnames, allpowers, coefficients, v)
S |
Object of class |
n |
Non-negative integer specifying highest order to be retained |
v |
Variable to take Taylor series with respect to. If missing,
total power of each term is used (except for |
x,... |
Object of class |
showsymb |
In function |
vx,va,debug |
In function |
allnames,allpowers,coefficients |
Components of |
Function onevarpow()
returns just the terms in which the
symbols corresponding to the named arguments have powers equal to the
arguments' powers. Thus:
onevarpow(as.mvp("x*y*z + 3*x*y^2 + 7*x*y^2*z^6 + x*y^3"),x=1,y=2) mvp object algebraically equal to 3 + 7 z^6
Above, we see that only the terms with x^1*y^2
have been
extracted, corresponding to arguments x=1,y=2
.
Function series()
returns a power series expansion of powers of
variable v
. The value returned is a list of three elements
named mvp
, varpower
, and variablename
. The first
element is a list of mvp
objects and the second is an integer
vector of powers of variable v
(element variablename
is
a character string holding the variable name, argument v
).
Function trunc(S,n)
returns the terms of S
with the sum
of the powers of the variables \leq n
. Alternatively, it
discards all terms with total power >n
.
Function trunc1()
is similar to trunc()
. It takes a
mvp
object and an arbitrary number of named arguments, with
names corresponding to variables and their values corresponding to the
highest power in that variable to be retained. Thus
trunc1(S,x=2,y=4)
will discard any term with variable x
raised to the power 3 or above, and also any term with variable
y
raised to the power 5 or above. The highest power of
x
will be 2 and the highest power of y
will be 4.
Function truncall(S,n)
discards any term of S
with any
variable raised to a power greater than n
.
Function series()
returns an object of class series
; the
print method for series
objects is sensitive to the value of
getOption("mvp_mult_symbol")
; set this to "*"
to get
mpoly
-compatible output.
Function taylor()
is a convenience wrapper for series()
.
Functions mvp_taylor_onevar()
, mvp_taylor_allvars()
and
mvp_to_series()
are low-level helper functions that are not
intended for the user.
Robin K. S. Hankin
deriv
trunc(as.mvp("1+x")^6,2)
trunc(as.mvp("1+x+y")^3,2) # discards all terms with total power>2
trunc1(as.mvp("1+x+y")^3,x=2) # terms like y^3 are treated as constants
trunc(as.mvp("1+x+y^2")^3,3) # discards x^2y^2 term (total power=4>3)
truncall(as.mvp("1+x+y^2")^3,3) # retains x^2y^2 term (all vars to power 2)
onevarpow(as.mvp("1+x+x*y^2 + z*y^2*x"),x=1,y=2)
(p2 <- rmvp(10))
series(p2,"a")
# Works well with pipes:
f <- function(n){as.mvp(sub('n',n,'1+x^n*y'))}
Reduce(`*`,lapply(1:6,f)) %>% series('y')
Reduce(`*`,lapply(1:6,f)) %>% series('x')
(p <- horner("x+y",1:4))
onevarpow(p,x=2) # coefficient of x^2
onevarpow(p,x=3) # coefficient of x^3
p %>% trunc(2)
p %>% trunc1(x=2)
(p %>% subs(x="x+dx") -p) %>% trunc1(dx=2)
# Nice example of Horner's method:
(p <- as.mvp("x + y + 3*x*y"))
trunc(horner(p,1:5)*(1-p)^2,4) # should be 1
## Third order taylor expansion of f(x)=sin(x+y) for x=1.1, about x=1:
(sinxpy <- horner("x+y",c(0,1,0,-1/6,0,+1/120,0,-1/5040,0,1/362880))) # sin(x+y)
dx <- as.mvp("dx")
t3 <- sinxpy + aderiv(sinxpy,x=1)*dx + aderiv(sinxpy,x=2)*dx^2/2 + aderiv(sinxpy,x=3)*dx^3/6
t3 %<>% subs(x=1,dx=0.1) # t3 = Taylor expansion of sin(y+1.1)
t3 %>% subs(y=0.3) - sin(1.4) # numeric; should be small
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.