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