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

Bewertung von Matrizen

 

Sven1904
Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 18.09.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.12.2013, 12:30     Titel: Bewertung von Matrizen
  Antworten mit Zitat      
Guten Morgen. Ich hätte mal eine Frage bzgl. der Bewertung von Matrizen.


Ich habe ein überbestimmtes Gleichungssystem mit Ungleichungen als Nebenbedingungen. Dieses löse ich mit dem lsqln Verfahren. Dabei bekomme ich auch sehr gute Ergebnisse heraus.


Ich suche eine Funktion bei der ich genau untersuchen kann, welche Zeilen voneinander abhängig sind bzw (fast) gleich sind um so eine Bewertung durchführen zu können.

Sind z.B. fast alle Zeilen gleich, so ergibt sich ja kein sinnvolles Ergebniss.

Gibt es da Möglichkeiten in Matlab diese Matrizen zu bewerten? Über den Rank werden ja auch die Spalten untersucht, was ich in diesem Fall nicht benötige.

Welche numerischen Faktoren sollte man noch untersuchen um eine Aussage treffen zu können, ob das Gleichungssystem zu brauchbaren Ergebnissen kommt.

Ich bin Euch für Eure Hilfe sehr dankbar!

Schöne Grüße
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 09.12.2013, 17:47     Titel:
  Antworten mit Zitat      
Hallo,

ich würde die Konditionszahl der Matrix verwenden
Code:


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

Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 18.09.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.12.2013, 10:14     Titel:
  Antworten mit Zitat      
Moin Harald,

vielen Dank mal wieder für deine schnelle Antwort! Ich bin dir da sehr dankbar!

Mit cond habe ich auch überlegt! Da meine A Matrix eine 20x7 ist, habe ich eine Konditionierungszahl von ca 10. Das ist sehr hoch, jedoch liefert lsqlin immer sehr gute Werte und mein Residium ist sehr gering.

Es kann allerdings sein, dass meine A Matrix sich in Zukunft ändert und deshalb soll ich mein Gleichungssystem allgemein bewerten bzw. meine A Matrix.

ist z.B A x =b (überbestimmt mit Ungleichungen als Nebenbedingungen)

Fall 1
Code:


A = [ 3 2 4 5  %gleiche Zeile
        3 2 4 5   %gleiche Zeile
        3 2 4 5   %gleiche Zeile
        2 1 5 7
        2 1 6 5]

b = [ 1; 2; 3; 5; 7]
 



Über lsqlin bekomme ich trotzdem Werte heraus. Jedoch möchte ich mir dann als Wahnung anzeigen lassen dass die ersten 3 Zeilen gleich sind und der Benutzer sich diese nochmal anschauen sollte. Gibt es eine mathematische Operation wo man gleiche Zeilen heraus bekommt? Über rank werden ja auch die Spalten betrachtet und das möchte ich hier nicht.


Fall 2

Code:

A = [ 3 2 1 2  %gleiche Zeile
        3 2 5 2   %gleiche Zeile
        3 2 7 9   %gleiche Zeile
        0 0 0 0      

b = [ 0; 0; 0; 5]
 


Auch hier würde lsqlin ein Ergebniss heraus bekommen, das der x Vektor = 0 ist. Ich bräuchte jedoch wieder einen Befehl der dem Anwender dann sagt, dass die A Matrix eventuell fehlerhaft ist und das Problem nicht gelöst werden kann.


Also ganz allgemein:

Gibt es eine Möglichkeit überbestimmte Gleichungssysteme numerisch zu bewerten, bei der alle Eingangsdaten wie A, b und evt. Ranbedingungen betrachtet werden, außer am Ende über das Residium.

Vielen Dank!

Schöne Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 10.12.2013, 21:10     Titel:
  Antworten mit Zitat      
Hallo,

eine Konditionszahl von 10 ist alles andere als hoch.

Minibeispiel:
Code:
cond([1 1; 1 1+1e-6])

... und selbst das ist noch nicht wirklich problematisch.

Fall 1: du könntest dir die lineare Korrelation zwischen Zeilen ansehen
Code:

wenn außerhalb der Nebendiagonalen 1 steht, hast du doppelte Zeilen

Fall 2: was ist hier das genaue Kriterium, nach dem die Matrix als "möglicherweise fehlerhaft" eingestuft werden soll?

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 18.09.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.12.2013, 12:33     Titel:
  Antworten mit Zitat      
Hallo Harald,

vielen Dank für die Antwort. Leider konnte ich mich nicht eher melden.

Das mit der Correlation hat mir sehr weiter geholfen! und für Fall 2 werde ich mich jetzt auf exitflag des lsqlin befehls verlassen.

Schöne Grüße
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.