Jakobimatrix bereit für Iterationen

This commit is contained in:
2025-12-19 09:35:29 +01:00
parent 3accf4cf74
commit b5f5161b3d
2 changed files with 77 additions and 68 deletions

View File

@@ -8,7 +8,7 @@ class FunktionalesModell:
def __init__(self, pfad_datenbank, a, b):
self.pfad_datenbank = pfad_datenbank
self.berechnungen = Berechnungen(a, b)
self.substitutionen_dict = self.dict_substitutionen_naeherungen_us()
self.substitutionen_dict = self.dict_substitutionen_uebergeordnetes_system()
self.dict_punkt_symbole = {}
def jacobi_matrix_symbolisch(self):
@@ -249,19 +249,47 @@ class FunktionalesModell:
else:
unbekanntenvektor_numerisch = unbekanntenvektor_neumerisch_vorherige_Iteration + dX_Vektor
dict_unbekanntenvektor = self.unbekanntenvektor_numerisch_to_dict_unbekanntenvektor(liste_unbekanntenvektor_symbolisch, unbekanntenvektor_numerisch)
self.substitutionen_dict = self.dict_substitutionen_uebergeordnetes_system(dict_unbekanntenvektor)
Export.matrix_to_csv(r"Zwischenergebnisse\Unbekanntenvektor_Numerisch_Iteration0.csv", [""],
liste_unbekanntenvektor_symbolisch, unbekanntenvektor_numerisch,
"Unbekanntenvektor")
return unbekanntenvektor_numerisch
def unbekanntenvektor_numerisch_to_dict_unbekanntenvektor(self, liste_unbekanntenvektor_symbolisch, unbekanntenvektor_numerisch):
dict_unbekanntenvektor_numerisch = {}
index = 0
for symbol in liste_unbekanntenvektor_symbolisch:
name = str(symbol)
if not name.startswith("X"):
continue
punktnummer = str(name[1:])
dict_unbekanntenvektor_numerisch[punktnummer] = sp.Matrix([
unbekanntenvektor_numerisch[index],
unbekanntenvektor_numerisch[index + 1],
unbekanntenvektor_numerisch[index + 2]
])
index += 3
return dict_unbekanntenvektor_numerisch
def berechnung_dl(self, beobachtungsvektor_numerisch, beobachtungsvektor_naeherung_numerisch):
dl = beobachtungsvektor_numerisch - beobachtungsvektor_naeherung_numerisch
return dl
def dict_substitutionen_naeherungen_us(self):
def dict_substitutionen_uebergeordnetes_system(self, unbekanntenvektor_aus_iteration = None):
db_zugriff = Datenbankzugriff(self.pfad_datenbank)
dict_koordinaten_B_L = self.berechnungen.geometrische_breite_laenge(db_zugriff.get_koordinaten("naeherung_us"))
if unbekanntenvektor_aus_iteration is None:
dict_koordinaten_B_L = self.berechnungen.geometrische_breite_laenge(db_zugriff.get_koordinaten("naeherung_us"))
else:
dict_unbekanntenvektor_aus_iteration = self.unbekanntenvektor_numerisch_to_dict_unbekanntenvektor(unbekanntenvektor_aus_iteration)
dict_koordinaten_B_L = self.berechnungen.geometrische_breite_laenge(
dict_unbekanntenvektor_aus_iteration)
liste_beobachtungen = db_zugriff.get_beobachtungen_from_beobachtungenid()
substitutionen = {}