Constructs a mapper for cos
/sin
functions of orders 1 (if
intercept
is TRUE
, otherwise 0) through order
. The total number of
basis functions is intercept + 2 * order
.
Optionally, each order can be given a non-unit scaling, via the scaling
vector, of length intercept + order
. This can be used to
give an effective spectral prior. For example, let
scaling = 1 / (1 + (0:4)^2)
x <- seq(0, 1, length.out = 11)
bmh1 = bm_harmonics(order = 4, interval = c(0, 1))
u1 <- ibm_eval(
bmh1,
input = x,
state = rnorm(9, sd = rep(scaling, c(1, 2, 2, 2, 2)))
)
Then, with
the stochastic properties of u1
and u2
will be the same, with
scaling^2
determining the variance for each frequency contribution.
The period for the first order harmonics is shifted and scaled to match
interval
.
Usage
bm_harmonics(order = 1, scaling = 1, intercept = TRUE, interval = c(0, 1))
bru_mapper_harmonics(...)
Arguments
- order
For
bm_harmonics
, specifies the maximumcos
/sin
order. (Default 1)- scaling
For
bm_harmonics
, specifies an optional vector of scaling factors of lengthintercept + order
, or a common single scalar.- intercept
logical; For
bm_harmonics
, ifTRUE
, the first basis function is a constant. (DefaultTRUE
)- interval
numeric length-2 vector specifying a domain interval. Default
c(0, 1)
.- ...
Arguments passed on to
bm_harmonics()
See also
bru_mapper, bru_mapper_generics
Other mappers:
bm_aggregate()
,
bm_collect()
,
bm_const()
,
bm_factor()
,
bm_fm_mesh_1d
,
bm_fmesher()
,
bm_index()
,
bm_linear()
,
bm_logsumexp()
,
bm_marginal()
,
bm_matrix()
,
bm_mesh_B()
,
bm_multi()
,
bm_pipe()
,
bm_repeat()
,
bm_scale()
,
bm_shift()
,
bm_sum()
,
bm_taylor()
,
bru_get_mapper()
,
bru_mapper()
Other specific bm_harmonics method implementations:
ibm_jacobian()
,
ibm_n()
Examples
m <- bm_harmonics(2)
ibm_eval2(m, input = c(0, pi / 4, pi / 2, 3 * pi / 4), 1:5)
#> $offset
#> [1] 7.000000 -7.247183 4.306719 -3.678570
#>
#> $jacobian
#> 4 x 5 Matrix of class "dgeMatrix"
#> [,1] [,2] [,3] [,4] [,5]
#> [1,] 1 1.0000000 0.0000000 1.0000000 0.0000000
#> [2,] 1 0.2205840 -0.9753680 -0.9026854 -0.4303012
#> [3,] 1 -0.9026854 -0.4303012 0.6296817 0.7768532
#> [4,] 1 -0.6188200 0.7855328 -0.2341236 -0.9722068
#>