#课本P144例题
""" Python 简单的自适应过滤移动平均预测方法 """
import numpy as np
import matplotlib.pyplot as plt#用于迭代的函数
def self_adaptive( seq, N, k, maxsteps ):## 初始化序列seq_ada = np.zeros( len(seq) ) # 设置预测序列的初始数字是 0et = np.zeros( len(seq) ) # 设置误差序列的初始数字是 0sum_abs_et = sum(seq)## 计算初始权值w = np.ones( (N, 1) )# 初始化权值为1w = w/N# 初始化权值为1/N#均方误差mse = sum(seq**2)/len(seq)## 计算停止条件为误差的最小值或者是mse的最小值min_Err =min(mse, 0) # 设置最小误差## 把 maxsteps 交给 step 用于迭代计算# maxsteps 并不参与计算step = maxsteps## 主事件循环while (step >= 0):for i in range( N, ( len(seq) ) ):seq_ada[i] = (seq[ (i-N):(i) ]@np.flipud(w))[