Revision d5c974ac9ce897791737b6f4e0cee5de2254e6f6 authored by Andreas Stuhlmueller on 31 January 2017, 02:56:40 UTC, committed by Andreas Stuhlmueller on 31 January 2017, 02:56:40 UTC
1 parent 22b8f88
Raw File
semiMarkovRandomWalk.wppl
var init = function(dim) {
  return repeat(dim, function() { return gaussian(200, 1) });
}

var transition = function(lastPos, secondLastPos) {
  return map2(
      function(lastX, secondLastX) {
        var momentum = (lastX - secondLastX) * .7;
        return gaussian(lastX + momentum, 3);
      },
      lastPos,
      secondLastPos
  );
};

var semiMarkovWalk = function(n, dim) {
  var prevStates = (n == 2) ? [init(dim), init(dim)] : semiMarkovWalk(n - 1, dim);
  var newState = transition(last(prevStates), secondLast(prevStates));
  return prevStates.concat([newState]);
};

semiMarkovWalk(80, 2);
back to top