ich sitz mal wieder vor einem kleinen bis größeren mathematischen (oder auch anwendungsbezogenen) Problem:
Ich bin während meiner Diplomarbeit über ein Gleichungssystem gestolpert, für das ich keine Lösung finde. Die erste Gleichung lautet:
j ist die imaginäre Einheit.
Alle weiteren Gleichungen ergeben sich, indem das Wertepaar (u1,i1) durch (u2,i2), … bis max. (u40,i40) ersetzt wird.
Wenn ich mich nicht verzählt habe, enthält die Gleichung bzw. das System 8 Unbekannte
Upr Upi Z1r Z1i Z2r Z2i Yr Yi
Ich brauche meines Wissens also 8 Paare zur Lösung. Nur irgendwie komm’ ich mit Matlab [‚solve‘] (und auch mit MathCad[‚find‘,‚minerr‘]) auf keine (vernünftige) Lösung, egal wieviele Gleichungen ich angebe.
Mache ich einen Denkfehler (d.h. ist das Gleichungssystem in der Form überhaupt lösbar?), oder kann ich nur die verfügbare Software nicht bedienen? Im ersten Fall wüsste ich gern die Begründung; zweiten Fall bitte ich um ein erklärendes Beispiel (bevorzugt für Matlab), wie’s richtig geht.
ich würd zuerst versuchen die Gleichung in Real und Imaginärteil aufzuspalten, damit hast du ja dann schon 2 Gleichungen. Davon brauchst du dann also eigentlich nur 4. (ohne Garantie, etwa so:smile:
probiers mal mit diesen 2x4 Gleichungen, Matlab hat öfter Probleme mit Real und Imaginär Teil zu rechnen…
Aber wenn du von deiesen Wertepaaren eh 40 hast ist es überbestimmt, und wenn du für die ersten 4 ne Lösung hats kann di auch im wiederspruch zu den restlichen 36 (oder zumindest einer davon) stehen, und das System ist nichtmehr lösbar, vielleicht war auch das das Problem…
Babel
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
ich würd zuerst versuchen die Gleichung in Real und
Imaginärteil aufzuspalten, damit hast du ja dann schon 2
Gleichungen. Davon brauchst du dann also eigentlich nur 4.
(ohne Garantie, etwa so:smile:
probiers mal mit diesen 2x4 Gleichungen, Matlab hat öfter
Probleme mit Real und Imaginär Teil zu rechnen…
Aber wenn du von deiesen Wertepaaren eh 40 hast ist es
überbestimmt, und wenn du für die ersten 4 ne Lösung hats kann
di auch im wiederspruch zu den restlichen 36 (oder zumindest
einer davon) stehen, und das System ist nichtmehr lösbar,
vielleicht war auch das das Problem…
Babel
Hi Babel,
das händische Ausmultiplizieren wollte ich eigentlich vermeiden (zusätzliche Fehlerquelle). Aber gut, dann werd ich jetzt dann etwas Papier damit befüllen …
Mit den 40-Wertepaaren ist das System überbestimmt, aber: da es sich um Meßwerte handelt, sehe ich da kein Problem, mir 8 Paare auszusuchen, damit das Gleichungssystem zu lösen. Mit den restlichen Paaren kann ich das Ergebnis verifizieren und ggfs. Fehler bzw. Mittelwert angeben …
Eine exakte mathematische Lösung, die alle Paare erfüllen, wird es nicht geben - aber die Ergebnisse sollten alle in der gleichen Größenordnung liegen.
Hallo peherr,
was du da erzählst hört sich nach einem typischen Fall für Kurvenanpassung („Fit“) an. Du hast anscheinend irgendeine Spannung als Funktion eines Stroms gemessen und du hast ein Modell für deine Schaltung/ dein Gerät/… , das diese Messung beschreiben soll, aber 4 komplexe Parameter enthält.
Mach dich also mal über Fits schlau - es lohnt sich. Mathlab sollte das durchaus können.
Der Versuch, ein überbestimmtes Problem dadurch zu lösen, dass man nur ein paar Messwerte auswählt und dann das Gleichungssystem löst, ist IMHO Zeitverschwendung.
Normalerweise wird bei einem Fit die „Summe der Quadrate“, also die Summe der qadrierten Differenzen zwischen Modell und Messung minimiert. Noch besser wäre es, wenn auch noch die Messgenauigkeit bekannt wäre, dann könnten diese Quadrate noch mit 1/Fehlerquadrat gewichtet werden.
Das Fit-Programm dreht dann so lange an den Parametern bis das Minimum gefunden ist (ein beliebtes Verfahren dazu ist der Marquardt-Levenberg-Algorithmus). Meist muss du noch halbwegs vernünftig geschätzte Startwerte für deine Parameter angeben. Das dürfte aber nicht so schwierig sein, wenn man weiß was du eigentlich machst.
was du da erzählst hört sich nach einem typischen Fall für
Kurvenanpassung („Fit“) an. Du hast anscheinend irgendeine
Spannung als Funktion eines Stroms gemessen und du hast ein
Modell für deine Schaltung/ dein Gerät/… , das diese Messung
beschreiben soll, aber 4 komplexe Parameter enthält.
Fast richtig: ich will aus den Meßwerten die ideale Leerlaufspannung sowie die Impedanzen der Einspeisung bestimmen. Die komplexen Größen ergeben sich in dem Fall aus einer Transformation (Stichwort: Raumzeiger) aus den gemessenen Zeitverläufen.
Mach dich also mal über Fits schlau - es lohnt sich. Mathlab
sollte das durchaus können.
Der Versuch, ein überbestimmtes Problem dadurch zu lösen, dass
man nur ein paar Messwerte auswählt und dann das
Gleichungssystem löst, ist IMHO Zeitverschwendung.
Schön! Ich hab’ da auch schon etliche Zeit dran verschwendet - ohne wirklich ein sinnvolles Ergebnis zu haben.
Normalerweise wird bei einem Fit die „Summe der Quadrate“,
also die Summe der qadrierten Differenzen zwischen Modell und
Messung minimiert. Noch besser wäre es, wenn auch noch die
Messgenauigkeit bekannt wäre, dann könnten diese Quadrate noch
mit 1/Fehlerquadrat gewichtet werden.
Das Fit-Programm dreht dann so lange an den Parametern bis das
Minimum gefunden ist (ein beliebtes Verfahren dazu ist der
Marquardt-Levenberg-Algorithmus). Meist muss du noch halbwegs
vernünftig geschätzte Startwerte für deine Parameter angeben.
Das dürfte aber nicht so schwierig sein, wenn man weiß was du
eigentlich machst.
Wie gesagt: Bestimmung der Impedanzen der Einspeisung (R und X im T-förmigen Ersatznetzwerk) und der idealen Leerlaufspannung nach Betrag und Phasenlage.
Zusätzliches Problem: durch Schwankungen der realen Netzfrequenz hab’ ich keine Information mehr über die Phasenlage der transformierten Größen. Ich kenne lediglich die Beträge und sollte damit aber Rückschlüsse auf die Winkel der gesuchten Größen machen.