WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Überbestimmtes Gleichungssystem lösen

 

Olivechkin
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 11.05.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.05.2012, 13:01     Titel: Überbestimmtes Gleichungssystem lösen
  Antworten mit Zitat      
Guten Tag,

ich möchte gerne eine überbestimmtes Gleichungssystem lösen, wie genau kann ich das mit Matlab machen?

Das Gleichungssystem sieht so aus:

 \begin{pmatrix} 2500 \\ 3500 \\ 5000 \\ 1000 \end{pmatrix} = \begin{pmatrix} C1111 & C1122 & 0 & 0 \\ C1122 & C2222 & 0 & 0 \\ 0 & 0 & C1111 & C1122 \\ 0 & 0 & C1122 & C2222\end{pmatrix} * \begin{pmatrix} e11 \\ e22 \\ e11_2 \\ e22_2 \end{pmatrix}

Das heißt ich habe 4 Gleichungen aber nur 3 Unbekannte in der Matrix ( die ganzen C's].
Private Nachricht senden Benutzer-Profile anzeigen


MaFam
Forum-Meister

Forum-Meister


Beiträge: 799
Anmeldedatum: 02.05.12
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 11.05.2012, 13:10     Titel:
  Antworten mit Zitat      
Hallo,

zunächst musst du das auf die korrekte Form bringen, denn die Koeffizientenmatrix setzt sich aus den e's zusammen. Dann kannst entweder über die Pseudo-Inverse nach Moore-Penrose gehen oder aber eine QR-Zerlegung machen. Letzteres ist numerisch stabiler.

Grüße, MaFam
Private Nachricht senden Benutzer-Profile anzeigen
 
Olivechkin
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 11.05.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.05.2012, 13:15     Titel:
  Antworten mit Zitat      
Vielen Dank schon einmal für die schnelle Antwort!

Wie genau würde ich das denn programmieren?
Bin kein Profi in Matlab, deswegen weiß ich nicht genau was du damit meinst, dass ich es in die richtige Form bringen muss...
Private Nachricht senden Benutzer-Profile anzeigen
 
MaFam
Forum-Meister

Forum-Meister


Beiträge: 799
Anmeldedatum: 02.05.12
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 11.05.2012, 13:20     Titel:
  Antworten mit Zitat      
Dann frag' ich lieber nochmal nach. Sind die C's die Unbekannten oder doch die e's. Was ist also gegeben, was nicht?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 11.05.2012, 14:00     Titel:
  Antworten mit Zitat      
Hallo,

in Ergänzung zu den Kommentaren von MaFam:

Das lineare Gleichungssystem muss in die Form A*x = b umformuliert werden, mit gegebenem A und b und gesuchtem x. Dimensionen:
A: [m x n]
x: [n x 1]
b: [m x 1]
Also m Gleichungen mit n Unbekannten.

Danach braucht man nur noch
Code:


Wenn ein Gleichungssystem überbestimmt ist, macht der Backslash-Algorithmus das von MaFam genannte automatisch.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Olivechkin
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 11.05.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.05.2012, 14:30     Titel:
  Antworten mit Zitat      
Die unbekannten sind die c's! Leider weiß ich immer noch nicht genau wie ich umformen soll, damit ich die matrixkoeffizienten berechnen kann...
Private Nachricht senden Benutzer-Profile anzeigen
 
MaFam
Forum-Meister

Forum-Meister


Beiträge: 799
Anmeldedatum: 02.05.12
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 11.05.2012, 14:42     Titel:
  Antworten mit Zitat      
Per Hand, aber erstmal die Bezeichnungen vereinfachen:

 \begin{pmatrix} 2500 \\ 3500 \\ 5000 \\ 1000 \end{pmatrix} = \begin{pmatrix} C1 & C2 & 0 & 0 \\ C2 & C3 & 0 & 0 \\ 0 & 0 & C1 & C2 \\ 0 & 0 & C2 & C3\end{pmatrix} * \begin{pmatrix} e1 \\ e2 \\ e3 \\ e4\end{pmatrix}

Das führt zu:


<br />
2500=C1*e1+C2*e2
<br />


<br />
3500 =C2*e1+C3*e2
<br />


<br />
5000 =C1*e3+C2*e4
<br />


<br />
1000 =C2*e3+C3*e4
<br />

Da aber C_i*e_i kommutativ ist, tauscht du und gehst das ganze rückwärts.

Und hier noch ein Link zum Zusammenhang von QR-Zerlegung und Normalengleichung. Aber wie Harald schon schrieb, beherrscht der Backslash-Operator das bereits, was aber nicht das "Geheimnis" dahinter offenbart.

http://www.peter-junglas.de/fh/vorl...../numa/html/app-herl4.html

Zuletzt bearbeitet von MaFam am 11.05.2012, 15:03, insgesamt 2-mal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
MaFam
Forum-Meister

Forum-Meister


Beiträge: 799
Anmeldedatum: 02.05.12
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 11.05.2012, 14:52     Titel:
  Antworten mit Zitat      
Ich hatte einen Fehler bei den C's im letzten Beitrag, das ist aber nun korrigiert. Ich erhalte dann für die Koeffizientenmatrix:


<br />
A=\begin{pmatrix} e1 & e2 & 0 \\ 0 & e1 & e2 \\ e3 & e4 & 0 \\ 0 & e3 & e4\end{pmatrix}
<br />
Private Nachricht senden Benutzer-Profile anzeigen
 
Olivechkin
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 11.05.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.05.2012, 14:24     Titel:
  Antworten mit Zitat      
Ich habe das mit: C=e\s lösen können, das Problem ist, dass ich Ergebnisse sehr ungenau sind. Liegt das vielleicht an der Rechnung, oder daran, wie ich mein e und s bestimmt habe?
Private Nachricht senden Benutzer-Profile anzeigen
 
MaFam
Forum-Meister

Forum-Meister


Beiträge: 799
Anmeldedatum: 02.05.12
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 21.05.2012, 14:30     Titel:
  Antworten mit Zitat      
Hallo,

was ist e, was ist s?

Grüße, Marc
Private Nachricht senden Benutzer-Profile anzeigen
 
Olivechkin
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 11.05.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.05.2012, 14:55     Titel:
  Antworten mit Zitat      
e wäre in den Fall A, als die Matrix mit e1,e2,e3 und e4 und s wäre b, das ist dann der Vektor den ich da stehen hatte s=[2500;3500;5000;1000]
Private Nachricht senden Benutzer-Profile anzeigen
 
MaFam
Forum-Meister

Forum-Meister


Beiträge: 799
Anmeldedatum: 02.05.12
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 21.05.2012, 15:10     Titel:
  Antworten mit Zitat      
Da das Gleichungssystem überbestimmt ist, kann die Lösung nicht alle Gleichungen erfüllen. Das funktioniert hier anders. Es steckt ein Ausgleichsproblem dahinter. Die Lösung erfüllt eine Minimaleigenschaft, denn sie minimiert die Summe aller Fehlerquadrate.
Private Nachricht senden Benutzer-Profile anzeigen
 
Olivechkin
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 11.05.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.05.2012, 15:21     Titel:
  Antworten mit Zitat      
ok, das heißt der Fehler wird minimal, oder? Das bedeutet, dass die Ungenauigkeit nicht an der Rechnung selbst liegt, sondern an den Werten, die ich für e1 bis e4 auslese.
Private Nachricht senden Benutzer-Profile anzeigen
 
MaFam
Forum-Meister

Forum-Meister


Beiträge: 799
Anmeldedatum: 02.05.12
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 21.05.2012, 15:33     Titel:
  Antworten mit Zitat      
Die Abweichungen liegen erstmal daran, dass das System überbestimmt ist. Natürlich spielen die Daten auch eine Rolle. Je größer diese gestreut sind, desto größer wird die mittlere Abweichung sein.
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.