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 +
+ + 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