55 const Index used_history = iteration - 1;
56 Eigen::VectorXd OutMixed =
output_.back();
57 Eigen::VectorXd InMixed =
input_.back();
59 if (iteration > 1 &&
order_ > 1) {
61 Eigen::VectorXd DeltaN = OutMixed - InMixed;
64 Eigen::MatrixXd A = Eigen::MatrixXd::Zero(used_history, used_history);
65 Eigen::VectorXd c = Eigen::VectorXd::Zero(used_history);
67 for (
Index m = 1; m < iteration; m++) {
69 c(m - 1) = (DeltaN -
output_[used_history - m] +
input_[used_history - m])
72 for (
Index j = 1; j < iteration; j++) {
74 (DeltaN -
output_[used_history - m] +
input_[used_history - m])
75 .dot((DeltaN -
output_[used_history - j] +
76 input_[used_history - j]));
80 Eigen::VectorXd coefficients = A.fullPivHouseholderQr().solve(c);
83 for (
Index n = 1; n < iteration; n++) {
85 OutMixed += coefficients(n - 1) *
87 InMixed += coefficients(n - 1) *