`meandr()`

offers a calculus-driven approach to simulating random time-series behavior.
Inputs `n_nodes`

and `wt`

serve as tuning knobs for overall smoothness and direction, respectively.

For greater control over curve shape, see `create_path()`

meandr( n_nodes = 100L, wt = c(1, -1), gain = 0.75, n_points = 100L, scale = 1, seed = NULL )

n_nodes | An integer. Defines number of distinct inflection points in function. |
---|---|

wt | A numeric vector of values. These will be sampled (with replacement) |

gain | Tuning parameter. |

n_points | An integer. Controls output "resolution". (Underlying calculus is unaffected). |

scale | A number. Adjusts all y-values so that |

seed | A number passed to |

A `tibble`

containing coordinates of resulting function.

For `wt`

, recommend using length `2`

comprising of positive and negative element -
though any numeric vector will be accepted.
Default value, `c(1, -1)`

, will tend to produce curves with greatest directional variety.
As magnitude between `wt[1]`

and `wt[2]`

deviates, overall curve will veer to +/- `Inf`

.

Each call to `meandr()`

follows below execution flow:

(1) Build piecewise function, "f2", of "nodes" sampled (with replacement) from `wt`

.

(2) Integrate "f2" twice to obtain continuously differentiable function, "f".

(3) Interval (0, 1] is cut into `n_points`

- resulting values passed to "f".

(4) Output coordinates in `tibble`

# See vignette("meandr") # each call produces unique output meandr()#> # A tibble: 100 x 2 #> t f #> <dbl> <dbl> #> 1 0.01 -0.0313 #> 2 0.02 -0.125 #> 3 0.03 -0.219 #> 4 0.04 -0.25 #> 5 0.05 -0.281 #> 6 0.06 -0.313 #> 7 0.0700 -0.344 #> 8 0.08 -0.375 #> 9 0.09 -0.344 #> 10 0.10 -0.25 #> # ... with 90 more rows# n_nodes has the most impact on curve complexity curve1 <- meandr(n_nodes = 5) mplot(curve1) # simple piecewise quadratic