function computeBestU(x, y, stateTransitionFnc, N, dt, targetX, targetY) { uStar = 0.0; var minPos; var dMin = 100000.0; for (let ut1=-uMax; ut1<uMax; ut1 += uMax/10) { for (let ut2=-uMax; ut2<uMax; ut2 += uMax/10) { let positions = futurePositions(x, y, [ut1, ut2], stateTransitionFnc, N, dt); let d = closestDistanceToPositions(targetX, targetY, positions) if (d<dMin) { dMin = d; uStar = ut1; minPos = positions; } } } drawPositions(minPos); return uStar; }