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;
}