|
|
Covarianz Matrix nicht pos. def. |
|
JB |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 26.09.2014, 19:43
Titel: Covarianz Matrix nicht pos. def.
|
 |
Hallo,
mit dem Befehl
cov( data )
sollte mir Matlab eigentlich eine positiv definite matrix liefern. In einigen sehr seltenen Fälle ist das Ergebnis aber eine matrix mit ein paar negativen Eigenwerten (in der Grössenordnung 1e-10).
Kann eigentlich nur ein numerisches Problem sein...
Irgendwelche Lösungsvorschläge?
schonmal vielen Dank
JB
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 26.09.2014, 20:09
Titel:
|
 |
Hallo,
hast du ein Beispiel?
Grüße,
Harald
|
|
|
JB |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 26.09.2014, 21:09
Titel:
|
 |
Beschreibung: |
load Beispiel sigma = cov(data); min(eig(sigma)) |
|
 Download |
Dateiname: |
Beispiel.rar |
Dateigröße: |
65.2 KB |
Heruntergeladen: |
366 mal |
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 26.09.2014, 21:23
Titel:
|
 |
Hallo,
da
würde ich sagen, dass dieser Eigenwert im Rahmen der Rechentoleranz als 0 angenommen werden kann. Wenn ich mir das so ansehe, dann etliche andere im übrigen ebenso:
Grüße,
Harald
|
|
|
JB |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 26.09.2014, 21:24
Titel:
|
 |
Hab eine Lösung gefunden:
Einfach auf der Diagonalen die Werte etwas erhöhen, zb so:
Das macht die Covarianzmatrix pos. def. Ist zwar keine schöne Lösung weil die Matrix verändert wird, was anderes fällt mir aber nicht ein...
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 26.09.2014, 22:04
Titel:
|
 |
Hallo,
damit verfälscht du einfach alle Eigenwerte ein wenig. Warum nicht einfach die entsprechenden Eigenwerte als 0 im Rahmen von Rechenungenauigkeit betrachten?
Grüße,
Harald
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|