Kalman-and-Bayesian-Filters-in-Python icon indicating copy to clipboard operation
Kalman-and-Bayesian-Filters-in-Python copied to clipboard

Problem in solution to "Exercise: The Effect of Acceleration" in Chapter 1

Open axlan opened this issue 4 years ago • 2 comments

For this exercise the solution is given as:


def gen_data(x0, dx, count, noise_factor, accel=0.):
    zs = []
    for i in range(count):
        zs.append(x0 + accel * (i**2) / 2 + dx*i + randn()*noise_factor)
        dx += accel
    return zs
   

If I'm understanding this correctly, this is basically sampling the closed form solution of integrating the acceleration to get the distance travelled with some random noise. The closed form solution is:

image

Which matches the expression in the solution, but I was confused by the incrementing of dx. My understanding is that dx is v0 so there's no need to increment it over time. The velocity is increasing, but dx in this expression shouldn't go up for each sample since that's already accounted for by the integration being used. Based on this I believe the solution should be:


def gen_data(x0, dx, count, noise_factor, accel=0.):
    zs = []
    for i in range(count):
        zs.append(x0 + accel * (i**2) / 2 + dx*i + randn()*noise_factor)
    return zs
   

Doesn't effect the actual lesson being communicated here, though.

axlan avatar Jun 01 '21 20:06 axlan

you're right!

LikeGiver avatar Jul 31 '21 08:07 LikeGiver

See https://github.com/rlabbe/Kalman-and-Bayesian-Filters-in-Python/issues/369

PebetoUofC avatar Feb 03 '22 01:02 PebetoUofC