Moore-Penrose Pseudoinverse < Gleichungssysteme < Lineare Algebra < Hochschule < Mathe < Vorhilfe
|
Status: |
(Frage) reagiert/warte auf Reaktion | Datum: | 16:02 Do 23.12.2010 | Autor: | Felica |
Liebe Forumsmitglieder!
Beim Programmieren verwende ich gerade eine Formel aus einem Paper, die ich mir nicht ganz erklären kann. Dies wäre für die Anwendung zwar nicht zwingend notwendig, jedoch würde ich gerne verstehen, wie es zu der Umformung kommt.
Und zwar wird
S = C * B + [mm] \lambda C^{T}LC
[/mm]
(wobei S ein Vektor mit n Einträgen; C ein Vektor mit r Einträgen; B eine Matrix mit n x r Einträgen und Lambda eine Gewichtung ist) umgeformt. S und B sind bekannt, also soll nach C aufgelöst werden. Dies wird laut Paper mit der Moore-Penrose Pseudoinversen gemacht, was zu
C = [mm] (B^{T}B+\lambda L)^{-1}B^{T}S
[/mm]
führen soll. Nun habe ich mich informiert, wie die Moore-Penrose Pseudoinverse definiert ist und kann daran sehen, dass
bei S = CB
die Definition zu
C = [mm] (B^{T}B)^{-1}B^{T}S
[/mm]
führen würde, was dem Ergebnis zu dem ich kommen möchte ja schon sehr ähnlich ist. Meine Frage ist nun, wie ich bei der Umformung weiter vorgehen kann, um zu dem gewünschten Ergebnis zu kommen.
S = C * B + [mm] \lambda C^{T}LC
[/mm]
Ich würde zunächst einmal C ausklammern
S = C (B+ [mm] \lambda C^{T}L)
[/mm]
Doch dann weiss ich nicht so recht weiter. Wie komme ich mit der Moore-Penrose zu der Pseudoiversen von (B+ [mm] \lambda C^{T}L) [/mm] ? Darf mein bei der Summe die jeweiligen Summanden einzeln invertieren? Dann könnte ich bei B ja wieder obige Formel einsetzen..
Vielen Dank schon mal für jede Hilfe!
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 18:09 Do 23.12.2010 | Autor: | felixf |
Moin!
> Beim Programmieren verwende ich gerade eine Formel aus
> einem Paper, die ich mir nicht ganz erklären kann. Dies
> wäre für die Anwendung zwar nicht zwingend notwendig,
> jedoch würde ich gerne verstehen, wie es zu der Umformung
> kommt.
> Und zwar wird
>
> S = C * B + [mm]\lambda C^{T}LC[/mm]
>
> (wobei S ein Vektor mit n Einträgen; C ein Vektor mit r
> Einträgen; B eine Matrix mit n x r Einträgen und Lambda
> eine Gewichtung ist) umgeformt.
Hier habe ich schon mehrere Probleme.
1. Die Vektoren sind Zeilenvektoren, nicht? Also $S$ ist eine $1 [mm] \times [/mm] n$-Matrix und $C$ eine $1 [mm] \times [/mm] r$-Matrix.
2. Damit $C B$ Sinn macht, muss $B$ das Format $r [mm] \times [/mm] n$ haben. Dann hat zumindest $C B$ das gleiche Format wie $S$.
3. Egal wie ich es drehe und wende, $L$ muss eine $1 [mm] \times [/mm] 1$-Matrix sein und [mm] $C^T [/mm] L C$ ist quadratisch, also vom Format $r [mm] \times [/mm] r$ (oder alternativ vom Format $1 [mm] \times [/mm] 1$, was noch weniger Sinn macht). Dann macht jedoch $C B + [mm] \lambda C^T [/mm] L C$ ueberhaupt keinen Sinn, da etwas vom Format $1 [mm] \times [/mm] n$ zu etwas vom Format $r [mm] \times [/mm] r$ addiert werden soll.
Also irgendwas stimmt da gewaltig nicht...
LG Felix
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 18:31 Do 23.12.2010 | Autor: | Felica |
Vielen Dank für die Antwort.
> 1. Die Vektoren sind Zeilenvektoren, nicht? Also [mm]S[/mm] ist eine
> [mm]1 \times n[/mm]-Matrix und [mm]C[/mm] eine [mm]1 \times r[/mm]-Matrix.
Nein, S ist als n x 1 und C als r x 1 angegeben
> 2. Damit [mm]C B[/mm] Sinn macht, muss [mm]B[/mm] das Format [mm]r \times n[/mm]
> haben. Dann hat zumindest [mm]C B[/mm] das gleiche Format wie [mm]S[/mm].
Oh, Entschuldigung. Es steht BC da. Das habe ich falsch eingegeben :(
>
> 3. Egal wie ich es drehe und wende, [mm]L[/mm] muss eine [mm]1 \times 1[/mm]-Matrix
> sein und [mm]C^T L C[/mm] ist quadratisch, also vom Format [mm]r \times r[/mm]
> (oder alternativ vom Format [mm]1 \times 1[/mm], was noch weniger
> Sinn macht). Dann macht jedoch [mm]C B + \lambda C^T L C[/mm]
> ueberhaupt keinen Sinn, da etwas vom Format [mm]1 \times n[/mm] zu
> etwas vom Format [mm]r \times r[/mm] addiert werden soll.
Also L ist hier angegeben als RxR Matrix, nur mit Einträgen entlang der Diagonale.
Viele Grüße,
Felica
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 19:05 Do 23.12.2010 | Autor: | felixf |
Moin!
> > 1. Die Vektoren sind Zeilenvektoren, nicht? Also [mm]S[/mm] ist eine
> > [mm]1 \times n[/mm]-Matrix und [mm]C[/mm] eine [mm]1 \times r[/mm]-Matrix.
>
> Nein, S ist als n x 1 und C als r x 1 angegeben
> > 2. Damit [mm]C B[/mm] Sinn macht, muss [mm]B[/mm] das Format [mm]r \times n[/mm]
> > haben. Dann hat zumindest [mm]C B[/mm] das gleiche Format wie [mm]S[/mm].
>
> Oh, Entschuldigung. Es steht BC da. Das habe ich falsch
> eingegeben :(
Ok, dann sind es Spaltenvektoren und das Format von $B$ passt.
> > 3. Egal wie ich es drehe und wende, [mm]L[/mm] muss eine [mm]1 \times 1[/mm]-Matrix
> > sein und [mm]C^T L C[/mm] ist quadratisch, also vom Format [mm]r \times r[/mm]
> > (oder alternativ vom Format [mm]1 \times 1[/mm], was noch weniger
> > Sinn macht). Dann macht jedoch [mm]C B + \lambda C^T L C[/mm]
> > ueberhaupt keinen Sinn, da etwas vom Format [mm]1 \times n[/mm] zu
> > etwas vom Format [mm]r \times r[/mm] addiert werden soll.
>
> Also L ist hier angegeben als RxR Matrix, nur mit
> Einträgen entlang der Diagonale.
Ok. Das Problem aendert sich jedoch nicht: falls [mm] $\lambda$ [/mm] ein Skalar ist, so ist [mm] $\lambda C^T [/mm] L C$ eine $1 [mm] \times [/mm] 1$-Matrix, also ein Skalar. Und das addiert zu einem Vektor macht keinen Sinn.
Fehlt da noch etwas?
LG Felix
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 19:38 Do 23.12.2010 | Autor: | Felica |
> > > 3. Egal wie ich es drehe und wende, [mm]L[/mm] muss eine [mm]1 \times 1[/mm]-Matrix
> > > sein und [mm]C^T L C[/mm] ist quadratisch, also vom Format [mm]r \times r[/mm]
> > > (oder alternativ vom Format [mm]1 \times 1[/mm], was noch weniger
> > > Sinn macht). Dann macht jedoch [mm]C B + \lambda C^T L C[/mm]
> > > ueberhaupt keinen Sinn, da etwas vom Format [mm]1 \times n[/mm] zu
> > > etwas vom Format [mm]r \times r[/mm] addiert werden soll.
> >
> > Also L ist hier angegeben als RxR Matrix, nur mit
> > Einträgen entlang der Diagonale.
>
> Ok. Das Problem aendert sich jedoch nicht: falls [mm]\lambda[/mm]
> ein Skalar ist, so ist [mm]\lambda C^T L C[/mm] eine [mm]1 \times 1[/mm]-Matrix,
> also ein Skalar. Und das addiert zu einem Vektor macht
> keinen Sinn.
Ja, also hier steht zunächst
S = B*C+ E,
wobei E als Fehlervektor beschrieben ist, was ja passen würde. Allerdings wird das E anschließend durch das [mm] C^T [/mm] L C
ersetzt. Hm, und wenn ich jetzt mit E die Rechnung nach C auflösen würde?
S-E = B*C dürfte ich ja dann schon mal machen. Und für B dann diese Moore-Penrose?
Viele Grüße,
Felica
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 20:15 Do 23.12.2010 | Autor: | Felica |
Inzwischen habe ich in zwei weiteren Quellen eine andere Ansatzformel gefunden:
M(C) = [mm] (S-BC)^{T}(S-BC)+\lambda C^{T}LC [/mm]
wobei hier neben der Moore-Penrose auch das least square für die Umformung genannt werden (leider ohne Zwischenschritte). Es führt zu dem gewünschten Ergebnis, also
C = [mm] (B^{T}B+\lambda L)^{-1}B^{T}S. [/mm]
Könnte dies die passende Ausgangsgleichung sein?
Viele Grüße,
Felica
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 19:20 Do 23.12.2010 | Autor: | ullim |
Hi,
also irgendwie stimmen die DImensionen noch immer nicht.
S=(nx1) Matrix
B=(nxr) Matrix
C=(rx1) Matrix
L=(rxr) Matrix
[mm] \lambda=? [/mm] Skalar oder Matrix
[mm] S=BC+\lambda*C^TLC [/mm] ergibt eine Matrix der Dimension
(n x 1)=(n x [mm] 1)+\lambda*(1 [/mm] x 1) also muss [mm] \lambda=(n [/mm] x 1) Matrix sein
In der Lösung steht aber [mm] \lambda*L [/mm] und das geht nicht
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 19:47 Do 23.12.2010 | Autor: | Felica |
Hallo,
> S=(nx1) Matrix
> B=(nxr) Matrix
> C=(rx1) Matrix
> L=(rxr) Matrix
> [mm]\lambda=?[/mm] Skalar oder Matrix
>
[mm] \lambda [/mm] ist ein Skalar. Hm..
Viele Grüße,
Felica
|
|
|
|