Jacobimatrix und Normale < Numerik < Hochschule < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 23:10 Di 13.03.2012 | Autor: | Drno |
Aufgabe | Im Folgenden ein Beispiel um das Problem zu erleutern:
Es soll ein Vektor [mm] (\vec{n} [/mm] = [mm] (n_x, n_y, n_z)^T) [/mm] bestimmt werden, der die kleinsten Winkel zu drei anderen Vektoren besitzt (im Sinne kleinste Winkel-Quadrate). Das könnte z.B. mit einem iterativen Least-Squares-Algorithmus gelöst werden.
[mm] \alpha_1 [/mm] = [mm] cos^{-1}(\vec{n_1}^T*\vec{n})
[/mm]
[mm] \alpha_2 [/mm] = [mm] cos^{-1}(\vec{n_2}^T*\vec{n})
[/mm]
[mm] \alpha_3 [/mm] = [mm] cos^{-1}(\vec{n_3}^T*\vec{n})
[/mm]
Im Folgenden soll daher die Jacobi-Matrix an der Stelle [mm] \vec{n} [/mm] = [mm] \vec{n}_0 [/mm] berechnet werden. |
Mir ist allerdings nicht ganz klar, wie ich die partiellen Ableitungen bestimmen soll. Mir fallen zwei Möglichkeiten ein:
1. [mm] \bruch{\partial \alpha_1}{\partial n_x}|_{\vec{n}_0} [/mm] = [mm] \bruch{cos^{-1}(\vec{n_1}^T*\bruch{\vec{n}_0+(\Delta_x, 0, 0)^T}{\parallel\vec{n}_0+(\Delta_x, 0, 0)^T\parallel_2}) - cos^{-1}(\vec{n_1}^T*\bruch{\vec{n}_0-(\Delta_x, 0, 0)^T}{\parallel\vec{n}_0-(\Delta_x, 0, 0)^T\parallel_2}) }{2*\Delta_x}
[/mm]
2. [mm] \bruch{\partial \alpha_1}{\partial n_x}|_{\vec{n}_0} [/mm] = [mm] \bruch{cos^{-1}(\vec{n_1}^T*\bruch{\vec{n}_0+(\Delta_x, 0, 0)^T}{\parallel\vec{n}_0+(\Delta_x, 0, 0)^T\parallel_2}) - cos^{-1}(\vec{n_1}^T*\bruch{\vec{n}_0-(\Delta_x, 0, 0)^T}{\parallel\vec{n}_0-(\Delta_x, 0, 0)^T\parallel_2}) }{\bruch{\Delta_x}{\parallel\vec{n}_0+(\Delta_x, 0, 0)^T\parallel_2} + \bruch{\Delta_x}{\parallel\vec{n}_0-(\Delta_x, 0, 0)^T\parallel_2}}
[/mm]
Die Normalisierung von [mm] \vec{n}_0+(\Delta_x, [/mm] 0, [mm] 0)^T [/mm] ist nötig, damit der veränderte Vektor weiterhin die Länge 1 besitzt. Nun ist die Frage wie man generell mit der Noramlisierung umgeht. Im ersten Fall wird außer Acht gelassen, dass die tatsächliche Schrittweite aufgrund der Normalisierung geringer ist. Im zweiten Fall würde dies Berücksichtigt.
Nun finde ich beide Formulierungen nicht gerade schön. Durch die Normalisierung werden auch die y- und z- Komponenten der Vektoren beeinflusst, obwohl nur nach der x-Komponenten abgeleitet wurde. Wie bestimmt man also so eine partielle Ableitung richtig?
Vielen Dank für alle Antworten!
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 18:44 Do 15.03.2012 | Autor: | rainerS |
Hallo!
> Im Folgenden ein Beispiel um das Problem zu erleutern:
> Es soll ein Vektor [mm](\vec{n}[/mm] = [mm](n_x, n_y, n_z)^T)[/mm] bestimmt
> werden, der die kleinsten Winkel zu drei anderen Vektoren
> besitzt (im Sinne kleinste Winkel-Quadrate). Das könnte
> z.B. mit einem iterativen Least-Squares-Algorithmus gelöst
> werden.
>
> [mm]\alpha_1[/mm] = [mm]cos^{-1}(\vec{n_1}^T*\vec{n})[/mm]
> [mm]\alpha_2[/mm] = [mm]cos^{-1}(\vec{n_2}^T*\vec{n})[/mm]
> [mm]\alpha_3[/mm] = [mm]cos^{-1}(\vec{n_3}^T*\vec{n})[/mm]
>
> Im Folgenden soll daher die Jacobi-Matrix an der Stelle
> [mm]\vec{n}[/mm] = [mm]\vec{n}_0[/mm] berechnet werden.
> Mir ist allerdings nicht ganz klar, wie ich die partiellen
> Ableitungen bestimmen soll. Mir fallen zwei Möglichkeiten
> ein:
>
> 1. [mm]\bruch{\partial \alpha_1}{\partial n_x}|_{\vec{n}_0}=\bruch{cos^{-1}(\vec{n_1}^T*\bruch{\vec{n}_0+(\Delta_x, 0, 0)^T}{\parallel\vec{n}_0+(\Delta_x, 0, 0)^T\parallel_2}) - cos^{-1}(\vec{n_1}^T*\bruch{\vec{n}_0-(\Delta_x, 0, 0)^T}{\parallel\vec{n}_0-(\Delta_x, 0, 0)^T\parallel_2}) }{2*\Delta_x}[/mm]
>
> 2. [mm]\bruch{\partial \alpha_1}{\partial n_x}|_{\vec{n}_0} = \bruch{cos^{-1}(\vec{n_1}^T*\bruch{\vec{n}_0+(\Delta_x, 0, 0)^T}{\parallel\vec{n}_0+(\Delta_x, 0, 0)^T\parallel_2}) - cos^{-1}(\vec{n_1}^T*\bruch{\vec{n}_0-(\Delta_x, 0, 0)^T}{\parallel\vec{n}_0-(\Delta_x, 0, 0)^T\parallel_2}) }{\bruch{\Delta_x}{\parallel\vec{n}_0+(\Delta_x, 0, 0)^T\parallel_2} + \bruch{\Delta_x}{\parallel\vec{n}_0-(\Delta_x, 0, 0)^T\parallel_2}}[/mm]
>
> Die Normalisierung von [mm]\vec{n}_0+(\Delta_x,[/mm] 0, [mm]0)^T[/mm] ist
> nötig, damit der veränderte Vektor weiterhin die Länge 1
> besitzt. Nun ist die Frage wie man generell mit der
> Noramlisierung umgeht. Im ersten Fall wird außer Acht
> gelassen, dass die tatsächliche Schrittweite aufgrund der
> Normalisierung geringer ist. Im zweiten Fall würde dies
> Berücksichtigt.
>
> Nun finde ich beide Formulierungen nicht gerade schön.
> Durch die Normalisierung werden auch die y- und z-
> Komponenten der Vektoren beeinflusst, obwohl nur nach der
> x-Komponenten abgeleitet wurde. Wie bestimmt man also so
> eine partielle Ableitung richtig?
Die Normierung von [mm] $\vec{n}$ [/mm] ist eine zusätzliche Bedingung. Du hast also nicht wirklich drei Winkel. Zwei Möglichkeiten:
1. Lass die Normierung weg und nimm [mm]\|\vec{n}\|=1[/mm] als Nebenbedingung hinzu (mit Lagrangemultiplikator).
2. Beschreibe [mm] $\vec{n}$ [/mm] als Einheitsvektor in Polarkoordinaten:
[mm] \vec{n} = \vektor{\sin \theta\cos\phi\\\sin\theta\sin\phi\\\cos\theta} [/mm]
und nimm [mm] $\theta$ [/mm] und [mm] $\phi$ [/mm] als unabhängige Winkel.
Viele Grüße
Rainer
|
|
|
|
|
Status: |
(Frage) überfällig | Datum: | 22:01 Mi 21.03.2012 | Autor: | Drno |
Vielen Dank für die Hilfe!
Die Zweite Möglichkeit klingt sehr interssant, leider kenne ich mich mit Lagrangemultiplikatoren aber (noch) gar nicht aus. Gibt es gute Literatur, oder ist es einfach, eine Formulierung für diesen Fall zu finden?
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 22:20 Fr 23.03.2012 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|