diff --git a/.idea/Masterprojekt-Campusnetz.iml b/.idea/Masterprojekt-Campusnetz.iml
index 1d2fcdf..89b2bd1 100644
--- a/.idea/Masterprojekt-Campusnetz.iml
+++ b/.idea/Masterprojekt-Campusnetz.iml
@@ -4,7 +4,7 @@
-
+
\ No newline at end of file
diff --git a/.idea/dataSources.local.xml b/.idea/dataSources.local.xml
index 608cff1..c0ea428 100644
--- a/.idea/dataSources.local.xml
+++ b/.idea/dataSources.local.xml
@@ -1,6 +1,6 @@
-
+
"
@@ -27,5 +27,18 @@
+
+
+ "
+
+
+ master_key
+ no-auth
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml
index 32a5ff8..f7fd9a2 100644
--- a/.idea/dataSources.xml
+++ b/.idea/dataSources.xml
@@ -15,5 +15,12 @@
jdbc:sqlite:$PROJECT_DIR$/Campusnetz.db
$ProjectFileDir$
+
+ sqlite.xerial
+ true
+ org.sqlite.JDBC
+ jdbc:sqlite:$PROJECT_DIR$/Campusnetz.db
+ $ProjectFileDir$
+
\ No newline at end of file
diff --git a/.idea/dataSources/bf3bfb54-ef6e-4a90-8cb8-69f52581bab9.xml b/.idea/dataSources/bf3bfb54-ef6e-4a90-8cb8-69f52581bab9.xml
new file mode 100644
index 0000000..fd9393f
--- /dev/null
+++ b/.idea/dataSources/bf3bfb54-ef6e-4a90-8cb8-69f52581bab9.xml
@@ -0,0 +1,1714 @@
+
+
+
+
+ 3.45.1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+ window
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+ 1
+ 1
+
+
+
+
+ 1
+ 1
+
+
+ 1
+ 1
+
+
+ 1
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ window
+
+
+ window
+
+
+
+
+
+ 1
+ 1
+
+
+ 1
+ 1
+
+
+ 1
+
+
+ window
+
+
+
+ 1
+
+
+ window
+
+
+ 1
+
+
+ 1
+ 1
+
+
+
+
+
+ 1
+
+
+ 1
+
+
+ window
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ 1
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ 1
+ 1
+
+
+ 1
+ window
+
+
+ 1
+ window
+
+
+ 1
+ 1
+
+
+ 1
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ 1
+ 1
+
+
+ 1
+ 1
+
+
+ 1
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ 1
+ 1
+
+
+ 1
+ 1
+
+
+ 1
+ window
+
+
+ 1
+ window
+
+
+ 1
+ 1
+
+
+ 1
+ 1
+
+
+ 1
+
+
+ 1
+ 1
+
+
+ 1
+ 1
+
+
+ 1
+ 1
+
+
+ 1
+ 1
+
+
+ window
+
+
+ window
+
+
+
+ window
+
+
+ window
+
+
+ window
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ aggregate
+
+
+ 1
+
+
+
+
+
+ 1
+ 1
+
+
+ window
+
+
+ aggregate
+
+
+ 1
+ 1
+
+
+ window
+
+
+ 1
+
+
+ aggregate
+
+
+ window
+
+
+ window
+
+
+ 1
+
+
+ 1
+
+
+
+
+
+
+
+ window
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ 1
+ 1
+
+
+
+ 1
+
+
+ 1
+
+
+
+
+ window
+
+
+ 1
+
+
+ 1
+
+
+
+
+
+ 1
+
+
+ window
+
+
+ 1
+
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+
+
+ 1
+
+
+
+
+ 1
+
+
+
+ aggregate
+
+
+
+ 1
+ 1
+
+
+ window
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ window
+
+
+ 1
+
+
+ 1
+
+
+ 1
+ 1
+
+
+ 1
+
+
+ window
+
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ 1
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ aggregate
+
+
+ aggregate
+
+
+ 1
+
+
+ 1
+ 2025-12-16.15:12:27
+
+
+ R
+
+
+ 1
+
+
+ 2
+
+
+ R
+
+
+ 1
+
+
+ 2
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ 1
+
+
+ 2
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ 1
+
+
+ 2
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ R
+
+
+ R
+
+
+ 1
+
+
+ 2
+
+
+ R
+
+
+ 1
+
+
+ 2
+
+
+ 3
+
+
+ R
+
+
+ R
+
+
+ R
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ R
+
+
+ R
+
+
+ R
+
+
+ R
+
+
+ R
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ R
+
+
+ 1
+
+
+ 2
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ 1
+
+
+ 2
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ R
+
+
+ 1
+
+
+ 2
+
+
+ R
+
+
+ 1
+
+
+ 2
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ R
+
+
+ 1
+
+
+ 2
+
+
+ R
+
+
+ 1
+
+
+ 2
+
+
+ 3
+
+
+ R
+
+
+ 1
+
+
+ 2
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ R
+
+
+ 1
+
+
+ 2
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ 1
+
+
+ 2
+
+
+ R
+
+
+ R
+
+
+ R
+
+
+ 1
+
+
+ 2
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ R
+
+
+ R
+
+
+ R
+
+
+ 1
+
+
+ 2
+
+
+ R
+
+
+ 1
+
+
+ 2
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ R
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ 1
+
+
+ 2
+
+
+ R
+
+
+ R
+
+
+ R
+
+
+ 1
+
+
+ 2
+
+
+ R
+
+
+ R
+
+
+ R
+
+
+ R
+
+
+ R
+
+
+ 1
+
+
+ 2
+
+
+ R
+
+
+ 1
+
+
+ 2
+
+
+ 3
+
+
+ R
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ 1
+
+
+ 2
+
+
+ R
+
+
+ 1
+
+
+ 2
+
+
+ 3
+
+
+ R
+
+
+ 1
+
+
+ 2
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ 1
+
+
+ 2
+
+
+ 3
+
+
+ R
+
+
+ 1
+
+
+ 2
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ 1
+
+
+ 2
+
+
+ R
+
+
+ 1
+
+
+ 2
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ 1
+
+
+ 2
+
+
+ R
+
+
+ 1
+
+
+ 2
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ 1
+
+
+ 2
+
+
+ R
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ 1
+
+
+ 2
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ 1
+
+
+ 2
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ 1
+
+
+ 2
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ 1
+
+
+ 2
+
+
+ R
+
+
+ 1
+
+
+ 2
+
+
+ R
+
+
+ 1
+
+
+ 2
+
+
+ R
+
+
+ R
+
+
+ R
+
+
+ 1
+
+
+ 2
+
+
+ R
+
+
+ 1
+
+
+ 2
+
+
+ R
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ R
+
+
+ R
+
+
+ 1
+
+
+ 2
+
+
+ 3
+
+
+ R
+
+
+ 1
+
+
+ 2
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ 1
+
+
+ 2
+
+
+ R
+
+
+ 1
+
+
+ 2
+
+
+ R
+
+
+ R
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ 1
+
+
+ 2
+
+
+ R
+
+
+ 1
+
+
+ 2
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ 1
+
+
+ 2
+
+
+ R
+
+
+ R
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ 1
+
+
+ 2
+
+
+ R
+
+
+ R
+
+
+ 1
+
+
+ 2
+
+
+ R
+
+
+ 1
+
+
+ 2
+
+
+ 3
+
+
+ R
+
+
+ 1
+
+
+ 2
+
+
+ 3
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ R
+
+
+ 1
+
+
+ 2
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ R
+
+
+ 1
+
+
+ 2
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ 1
+
+
+ 2
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ 1
+
+
+ R
+
+
+ 1
+
+
+
+
+
+
+ 1
+ INTEGER|0s
+
+
+ 2
+ INTEGER|0s
+
+
+ 3
+ TEXT(10)|0s
+
+
+ 4
+ TEXT(10)|0s
+
+
+ 5
+ INTEGER|0s
+
+
+ 6
+ NUMERIC(8,6)|0s
+
+
+ 7
+ NUMERIC(8,6)|0s
+
+
+ 8
+ NUMERIC(8,4)|0s
+
+
+ 9
+ TEXT(200)|0s
+
+
+ beobachtungenID
+ 1
+
+
+ 1
+ INTEGER|0s
+
+
+ 2
+ TEXT(200)|0s
+
+
+ 3
+ TEXT(200)|0s
+
+
+ instrumenteID
+ 1
+
+
+ 1
+ TEXT(10)|0s
+
+
+ 2
+ NUMERIC(9,3)|0s
+
+
+ 3
+ NUMERIC(7,3)|0s
+
+
+ 4
+ NUMERIC(8,3)|0s
+
+
+ 5
+ NUMERIC(9,3)|0s
+
+
+ 6
+ NUMERIC(7,3)|0s
+
+
+ 7
+ NUMERIC(8,3)|0s
+
+
+ punktnummer
+ 1
+ 1
+
+
+ punktnummer
+ 1
+ sqlite_autoindex_Netzpunkte_1
+
+
+ 1
+ TEXT|0s
+
+
+ 2
+ TEXT|0s
+
+
+ 3
+ TEXT|0s
+
+
+ 4
+ INT|0s
+
+
+ 5
+ TEXT|0s
+
+
+
\ No newline at end of file
diff --git a/.idea/dataSources/bf3bfb54-ef6e-4a90-8cb8-69f52581bab9/storage_v2/_src_/schema/main.uQUzAA.meta b/.idea/dataSources/bf3bfb54-ef6e-4a90-8cb8-69f52581bab9/storage_v2/_src_/schema/main.uQUzAA.meta
new file mode 100644
index 0000000..8dab49c
--- /dev/null
+++ b/.idea/dataSources/bf3bfb54-ef6e-4a90-8cb8-69f52581bab9/storage_v2/_src_/schema/main.uQUzAA.meta
@@ -0,0 +1,2 @@
+#n:main
+! [0, 0, null, null, -2147483648, -2147483648]
diff --git a/.idea/misc.xml b/.idea/misc.xml
index ba45cb8..590a59e 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -3,5 +3,5 @@
-
+
\ No newline at end of file
diff --git a/Datumsfestlegung.py b/Datumsfestlegung.py
new file mode 100644
index 0000000..74b129c
--- /dev/null
+++ b/Datumsfestlegung.py
@@ -0,0 +1,14 @@
+import sympy as sp
+
+def auswahlmatrix_E(u: int, aktive_unbekannte_indices: Iterable[int]) -> sp.Matrix:
+ E = sp.zeros(u, u)
+ for idx in aktive_unbekannte_indices:
+ E[int(idx), int(idx)] = 1
+ return E
+
+def raenderungsmatric_G():
+
+
+def teilspurminimierung_Gi(G: sp.Matrix, E: sp.Matrix) -> sp.Matrix:
+ Gi = E * G
+ return Gi
diff --git a/Parameterschaetzung.py b/Parameterschaetzung.py
index e24efee..c134e4a 100644
--- a/Parameterschaetzung.py
+++ b/Parameterschaetzung.py
@@ -37,4 +37,4 @@ def ausgleichung(A, dl, stoch_modell: StochastischesModell):
Export.Export.ausgleichung_to_datei(r"Zwischenergebnisse\Ausgleichung_Iteration0.csv", dict_ausgleichung)
- return dict_ausgleichung
\ No newline at end of file
+ return dict_ausgleichung, dx
\ No newline at end of file
diff --git a/Stochastisches_Modell.py b/Stochastisches_Modell.py
index 701bd6d..c6aca9e 100644
--- a/Stochastisches_Modell.py
+++ b/Stochastisches_Modell.py
@@ -36,19 +36,22 @@ class StochastischesModell:
self.sigma0_gruppe[g] = 1.0
- def berechne_Qll_P(self) -> Tuple[sp.Matrix, sp.Matrix]:
+ def berechne_Qll(self) -> Tuple[sp.Matrix, sp.Matrix]:
n = self.n_beob
Q_ll = sp.zeros(n, n)
P = sp.zeros(n, n)
for i in range(self.n_beob):
sigma_i = self.sigma_beob[i, 0] #σ-Wert der i-ten Beobachtung holen
- g = int(self.gruppe_beob[i, 0]) #Gruppenzugehörigkeit der Beobachtung bestimmen
+ g = int(self.gruppe_beob[i, 0]) #Gruppenzugehörigkeit der Beobachtung bestimmen
sigma0_sq = self.sigma0_gruppe[g] #Den Varianzfaktor der Gruppe holen
q_ii = sigma_i**2 #σ² berechnen
Q_ll[i, i] = q_ii #Diagonale
P[i, i] = 1 / (sigma0_sq * q_ii) #durch VKS nicht mehr P=Qll^-1
- return Q_ll, P
+ return Q_ll
+ def berechne_P(Q_ll):
+ P = Q_ll.inv()
+ return P
def berechne_Qvv(self, A: sp.Matrix, P: sp.Matrix, Q_xx: sp.Matrix) -> sp.Matrix:
Q_vv = P.inv() - A * Q_xx * A.T