From 664b3848a2d9df96412bfc8e7d2e735a55bb2801 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rivny=C3=A1k=20T=C3=ADmea?= <rivnyak.timea@hallgato.ppke.hu> Date: Mon, 7 Jun 2021 15:33:46 +0000 Subject: [PATCH] recursive LSQ --- recursiveLSQ.m | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 recursiveLSQ.m diff --git a/recursiveLSQ.m b/recursiveLSQ.m new file mode 100644 index 0000000..2f320d5 --- /dev/null +++ b/recursiveLSQ.m @@ -0,0 +1,13 @@ +function [theta, p] = recursiveLSQ(phi, y, lambda0, alpha) + p = zeros(size(phi)); + p(1, :) = reshape(pinv(sum(alpha * phi .* phi)), [], size(phi, 2)); + theta = zeros(size(phi)); + theta(1, :) = p(1) .* sum(alpha * phi .* y, 1); + lambda = zeros(size(phi, 1), 1); + lambda(1) = lambda0; + for t = 2:size(phi, 1) + lambda(t) = lambda0 * lambda(t-1) + 1 - lambda0; + p(t, :) = 1/lambda(t) * (p(t-1, :) - (p(t-1, :) .* phi(t, :) .* phi(t, :) .* p(t-1, :))./((lambda(t)/alpha)+phi(t, :) .* p(t-1, :) .* phi(t, :))); + theta(t, :) = theta(t-1, :) + alpha * p(t, :) .* phi(t, :) .* (y(t)-phi(t, :) .* theta(t-1, :)); + end +end \ No newline at end of file -- GitLab