exponentialSequence function

List<num> exponentialSequence(
  1. num tStart,
  2. num tEnd, {
  3. int iterations = 1000,
})

Exponentially decreasing sequence with start value tStart and end value tEnd.

The general form of the sequence members is:

t(k) = tStart * exp( -lambda * k) where lambda = -log(tEnd.abs() / tStart.abs()) / (n - 1).

Implementation

List<num> exponentialSequence(num tStart, num tEnd, {int iterations = 1000}) {
  final lambda = -log(tEnd.abs() / tStart.abs()) / (iterations - 1);
  final beta = exp(-lambda);
  var prev = tStart / beta;
  return List<num>.generate(iterations, (i) => prev = prev * beta);
}