![]() |
Wiener bzw. Pseudoinverse - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +--- Thema: Wiener bzw. Pseudoinverse (/Thread-Wiener-bzw-Pseudoinverse) |
Wiener bzw. Pseudoinverse - Arachnoid - 25.01.2013 17:57 Hallo zusammen, bei der Realisierung der sogenannten Wiener-Inversen in LabView (z.B. http://spectronet.de/portals/visqua/story_docs/vortraege_2010/101007_farbworkshop_ilmenau/101007_02_klein_hochschule_aachen.pdf auf S. 14) bin ich auf ein Problem gestossen. Prinzipiell bin ich stückweise vorgegangen und habe vorerst die Pseudoinverse realisiert, einmal über die Pseudoinverse wie sie von LabView berechnet wird (über die Singulärwertzerlegung) und zum andern über einfache Operationen der linearen Algebra. Im angehängten .VI habe ich beide Möglichkeiten realisiert. Prinzipiell müssten beide ein identisches Ergebnis liefern, dies ist jedoch nur dann der Fall wenn der Wert 1E+30 in der Eingangsmatrix durch einen erheblich kleineren Wert ersetzt wird. Mein Problem ist nun, dass ich zur Realisierung der Wiener-Inversen auf die Variante über einfache Operationen der linearen Algebra angewiesen bin, diese jedoch für konkrete Werte teilweise falsche Ergebnisse zu liefern scheint. Hat jemand die Wiener-Inverse ggf. schoneinmal versucht in LabView zu realisieren? Bzw. kann jemand bezüglich des Problems oben weiterhelfen? Viele Grüße, Arachnoid RE: Wiener bzw. Pseudoinverse - jg - 25.01.2013 21:14 Numerisch gesehen ist dein Zahlen-Beispiel sehr "ungeschickt", denn es enthält eine sehr große (1e+30) und kleine Zahlen (1e-4). Da tut sich Gleitkomma-Rechnung grundsätzlich schwer und man muss schon sehr genau hinschauen, ob da noch das Richtige rauskommt. Ein weiterer Fehler ist, dass du bei bei der LabVIEW-Pseudo-Inversen die Standard-Toleranz nicht geändert hast, vgl. Hilfe: Code: tolerance: defines a level such that the number of singular values greater than this level is the rank of Input Matrix. The default is –1. If tolerance is negative, the internal tolerance used to determine rank is set as shown in the following equation. Wie aber schon eingangs gesagt, das Ergebnis ist mit Vorsicht zu genießen. Der Test A-inv x A geht z.B. bei deinem Zahlenbeispiel nicht auf. Gruß, Jens RE: Wiener bzw. Pseudoinverse - Arachnoid - 27.01.2013 11:59 Hallo Jens, vielen Dank für deine Hilfe, die Standardtoleranz hatte ich ehrlich gesagt übersehen! Beste Grüße, Arachnoid |