For a statistically stationary environment it would be advantageous to use gear shifting, that is to reduce the adaptation gain with time. To illustrate this, try using a varying adaptation gain and observe the results. Also observe the error. If the error is high, what should the adaptation gain be to reduce it? Try incorporating into your program a subroutine which calculates a suitable adaptation gain for the (k+1) coeffcent update based on the kth error.
Note: to compare different methods for choosing the adaptation gain, always initialise the seed before creating a new vector of random numbers, and assume that the maximum permissible overshoot for each coeffcient is 20% of its true value; then compare the different methods, by considering the rise time in each case. The best method will give the shortest rise time.