Ebene in Komponentenform < Lineare Algebra < Hochschule < Mathe < Vorhilfe
|
Hallo,
ich möchte mir an mehrere Punkte eine Ebene annäheren. Die Punkte liegen jedoch nur nahe an der Ebene, aber nicht direkt darauf. Wenn ich jetzt die Komponentenschreibweise der Ebenengleichung aus dem Bronstein benutze
Ax + By + Cz + D = 0
erhalte ich ja ein überbestimmtes System (bei mehr als 4 Punkten). Dieses kann ich ja dann auch als Matrixprodukt schreiben:
[mm] \pmat{x_1 & y_1 & z_1 & 1 \\ x_2 & y_2 & z2 & 1 \\ ...} \cdot \pmat{A \\ B \\ C \\ D} [/mm] = 0
Xp=0
Wenn ich diese Gleichung jetzt aber nach p auflöse, dann erhalte ich natürlich als Lösung nur den 0-Vector, was ja nicht Sinn der Sache ist.
Wo steckt also der Fehler in dem Ansatz ????
Grüße,
Thomas
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
|
|
|
|
> Hallo,
>
> ich möchte mir an mehrere Punkte eine Ebene annäheren. Die
> Punkte liegen jedoch nur nahe an der Ebene, aber nicht
> direkt darauf. Wenn ich jetzt die Komponentenschreibweise
> der Ebenengleichung aus dem Bronstein benutze
>
> Ax + By + Cz + D = 0
>
> erhalte ich ja ein überbestimmtes System (bei mehr als 4
> Punkten). Dieses kann ich ja dann auch als Matrixprodukt
> schreiben:
>
> [mm]\pmat{x_1 & y_1 & z_1 & 1 \\ x_2 & y_2 & z2 & 1 \\ ...} \cdot \pmat{A \\ B \\ C \\ D}[/mm]
> = 0
>
> Xp=0
>
> Wenn ich diese Gleichung jetzt aber nach p auflöse, dann
> erhalte ich natürlich als Lösung nur den 0-Vector, was ja
> nicht Sinn der Sache ist.
>
> Wo steckt also der Fehler in dem Ansatz ????
Hallo,
.
Du hast die Ebene mit der Gleichung Ax + By + Cz + D = 0.
Diese Gleichung ist ja äquivalent zu Ax + By + Cz = D.
"Mit Matrix" sieht das so aus:
[mm] \pmat{A & B& C \\0 & 0& 0 \\ 0 & 0& 0} \cdot \pmat{x \\ y \\ z }=\pmat{D \\ 0 \\ 0 }
[/mm]
Sämtliche [mm] \pmat{x \\ y \\ z }, [/mm] welche dieses GS lösen, liegen in Deiner Ebene.
Gruß v. Angela
|
|
|
|
|
Hallo Angela,
danke erst einmal für deine Antwort.
So ganz beantwortet ist meine Frage dadurch aber leider noch nicht. Ich möchte die Ebene ja jetzt für viele Punkte bestimmen. Dies geht ja über einen Least Squares Ansatz:
[mm] \pmat{ x_1 & y_1 & z_1 \\ x_2 & y_2 & z_2 \\ x_3 & y_3 & z_3 \\ ...} \cdot \pmat{A \\ B \\ C} [/mm] = [mm] \pmat{D \\ D \\ D \\ ...}
[/mm]
$Xp=d$
[mm] $X^T \cdot [/mm] Xp=X^Td$
[mm] p=\left(X^TX\right)^{-1}X^Td
[/mm]
Damit bekomme ich ja nun den Vektor p, welcher die Koeffizienten der Ebene enthält. Das klappt in dem Fall aber nur, wenn ich D z.B. vorher auf 1 setzte. Dann kann aber der Punkt (0,0,0) nicht mehr auf der gefundenen Ebene liegen.
Muss der Punkt (0,0,0) gesondert betrachtet werden und kann in dem allgemeinen Fall nicht berücksichtigt werden ?
Viele Grüße,
Thomas
|
|
|
|
|
Hallo Thomas!
Für mich sieht das alles ein wenig seltsam aus, da muss ich dein Gefühl teilen. Ich kann deine Frage nicht mit letzter Sicherheit beantworten (zugegebenermaßen ist mir ein wenig mulmig dabei, Numerik war noch nie meine Stärke), aber ich will es trotzdem einmal versuchen.
Das erste, was mich stört ist, ist die Tatsache, dass das LGS erst bei mehr als vier Punkten überbestimmt sein soll. Eine Ebene wird eindeutig durch drei Punkte festgelegt, falls sie nicht auf derselben Geraden liegen. Deshalb mein Ansatz:
$ax + by + z + d = 0$. Dies können wir oBdA annehmen, da wir jede Ebenengleichung durch Division mit dem Vorfaktor der z-Koordinate auf diese Form bringen können (der Fall, dass der Vorfaktor der z-Koordinate $0$ ist, macht für uns keinen Sinn (ansonsten wählen wir eine andere Koordinate aus), und ansonsen wäre die Ebenengleichung nicht eindeutig bestimmt). Durch Umformen erhalten wir die z Koordinate in Abhängigkeit der anderen Koordinaten und der Unbekannten:
$$z = -ax - by -d$$
Nun haben wir das (überbestimmte Gleichungssystem)
[mm] $$\begin{pmatrix}-x_1 & -y_1 & -1 \\ -x_2 & -y_2 & -1 \\ \vdots & \vdots & \vdots \\ -x_n & -y_n & -1 \end{pmatrix} [/mm] * [mm] \begin{pmatrix}a \\ b \\ d \end{pmatrix} [/mm] = [mm] \begin{pmatrix}z_1 \\ \vdots \\ z_n \end{pmatrix}$$
[/mm]
Darauf kann man nun die Methode der kleinsten Fehlerquadrate anwenden und dann solltest du hoffentlich auch deine Lösung erhalten.
Gruß!
|
|
|
|
|
Hallo Stephan,
das sieht so schon ganz gut aus. So ähnlich habe ich das jetzt auch gemacht, nur dass ich $D=1$ gesetzt habe. Dadurch darf ein Punkt (0,0,0) zwar nicht mehr zu einer Ebene gehören, aber das macht weiter nichts bei der Berechnung.
Obwohl dein Ansatz logisch und nachvollziehbar ist, entsteht ein ähnliches Problem. Willst du auf diese Weise aus den Punkten (0,0,0), (1,0,0) und (0,0,1) eine Ebene berechnen, so ergibt sich jeweils durch einsetzen:
[mm] $P_1: [/mm] D=0$
[mm] $P_2: [/mm] A+D=0 [mm] \Rightarrow [/mm] A=0$
[mm] $P_3: [/mm] 1+D=0 [mm] \Rightarrow [/mm] D=-1$
Warum das so nicht geht, liegt wohl daran, dass $D=0$ ist und somit der Ansatz mit dem Teilen durch $D$ nicht erlaubt ist.
Bleibt also insgesamt die Frage, ob das Problem allgemein für alle Punkte irgendwie lösbar ist.
Grüße,
Thomas
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 15:06 Mi 05.09.2007 | Autor: | Blech |
So wie ich das sehe mußt du zu allen anderen Bedingungen unten noch
[mm]\vektor{1& 1& 1& 1} \vektor{A\\ B \\ C \\ D } = 1[/mm]
oder was ähnliches hinzufügen (Die Parameter kann man ja beliebig normieren; es geht nur darum, daß 0 keine zulässige Lösung ist). Da sonst 0 = 0 immer eine Lösung ist.
Dann mit Normalengl. oder anderen Methoden der Ausgleichsrechnung berechnen.
>Obwohl dein Ansatz logisch und nachvollziehbar ist, entsteht ein ähnliches >Problem. Willst du auf diese Weise aus den Punkten (0,0,0), (1,0,0) und (0,0,1) >eine Ebene berechnen,
In dem Beispiel wäre das:
[mm]\pmat{ 0 & 0 & 0 & 1 \\ 1 & 0 & 0 & 1 \\ 0 & 0 & 1 & 1 \\ 1 & 1 & 1 & 1 }\vektor{a\\ b\\ c\\ d} = \vektor{0\\ 0\\ 0\\ 1}[/mm]
Ausgleichsrechnung ist hier nicht notwendig; man sieht sofort, daß b=1 die gesuchte Lösung ist.
|
|
|
|
|
Hallo Blech!
Wie ich schon geschrieben habe, ist die Ebenendarstellung nicht eindeutig. Deshalb wählt man eine Normierungsvorschrift. Dein Vorschlag ist dabei eine gute Idee!
Nun zu meiner kleinen Frage: Auch hier scheint leider das Problem nicht aus der Welt geschafft worden zu sein, dass nicht jede Ebene in dieser Form darstellbar ist (wie bei meinem Vorschlag). Denn die Ebene $x - y + z - 1 = 0$ lässt sich nicht auf deine vorgeschlagene Form bringen, denn es gilt $a + b + c + d = 0$.
Also liegt doch hier wieder eine Einschränkung der Allgemeinheit vor, oder?
Ich sehe auch leider keinen Weg, dieses Problem zu lösen :-(
Kann uns hier jemand weiterhelfen?
Gruß!
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 22:23 Mi 05.09.2007 | Autor: | Blech |
> Hallo Blech!
>
> Wie ich schon geschrieben habe, ist die Ebenendarstellung
> nicht eindeutig. Deshalb wählt man eine
> Normierungsvorschrift. Dein Vorschlag ist dabei eine gute
> Idee!
Sry, hatte Deine Antwort nur überflogen; wollte sie nicht klauen =)
> Nun zu meiner kleinen Frage: Auch hier scheint leider das
> Problem nicht aus der Welt geschafft worden zu sein, dass
> nicht jede Ebene in dieser Form darstellbar ist (wie bei
> meinem Vorschlag). Denn die Ebene [mm]x - y + z - 1 = 0[/mm] lässt
> sich nicht auf deine vorgeschlagene Form bringen, denn es
> gilt [mm]a + b + c + d = 0[/mm].
> Also liegt doch hier wieder eine
> Einschränkung der Allgemeinheit vor, oder?
Ich muß zugeben, daß ich das ganze nicht völlig durchdacht habe, aber es geht ja iirc nur um eine Approximation bei einer geg. Menge an Punkten, die nicht exakt auf einer Ebene liegen.
Bei meinem Vorschlag kann man ja den Einfluß, den die Nebenbed. auf das ganze hat, mit Wahl der Parameter variieren. D.h. mit [mm]1^4\cdot \vektor{a\\ b\\ c\\ d} = \vektor{0^3\\a},\quad a<<1[/mm] wird der Fehler in Deinem Bsp. beliebig klein. Ebenso für ein stark überbestimmtes System mit vielen geg. Punkten, oder?
Ka, vielleicht fällt uns noch eine bessere Methode ein. =/
|
|
|
|
|
Hallo Thomas!
Das Problem bei deinem Beispiel ist folgendes: Die Methode der kleinsten Fehlerquadrate wird ja immer verwendet, um eine Funktion zu finden, die die gegebenen Punkte bestmöglich approximiert. Ich habe nun eine Funktion in Abhängigkeit der x- und y-Koordinate vorgeschlagen, also $z = [mm] f_1(x,y)$. [/mm] Nun soll aber $0 = [mm] f_1(0,0)$ [/mm] sowie $1 = [mm] f_1(0,0)$ [/mm] gelten. Dies widerspricht aber der Definition einer Funktion. Kurzum ist die Ebene nicht als Funktion der ersten beiden Koordinaten darstellbar. Hier kann man sich natürlich damit behelfen, indem man eine andere Koordinate als Funktionswert darstellt, also $x = [mm] f_2(y,z)$, [/mm] was natürlich auch nicht immer geht.
Man muss also vorher ein wenig denken.
Insofern bleibt die Frage nach einer besseren Lösung
Gruß!
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 21:14 Mi 05.09.2007 | Autor: | rainerS |
Hallo Thomas,
> So ganz beantwortet ist meine Frage dadurch aber leider
> noch nicht. Ich möchte die Ebene ja jetzt für viele Punkte
> bestimmen. Dies geht ja über einen Least Squares Ansatz:
>
> [mm]\pmat{ x_1 & y_1 & z_1 \\ x_2 & y_2 & z_2 \\ x_3 & y_3 & z_3 \\ ...} \cdot \pmat{A \\ B \\ C}[/mm]
> = [mm]\pmat{D \\ D \\ D \\ ...}[/mm]
>
> [mm]Xp=d[/mm]
> [mm]X^T \cdot Xp=X^Td[/mm]
> [mm]p=\left(X^TX\right)^{-1}X^Td[/mm]
Das ist nicht der least squares Ansatz, es sei denn, alle Punkte liegen in einer Ebene.
Statt des Vektors
[mm]\pmat{D \\ D \\ D \\ ...}[/mm]
müsstest du einen Vektor
[mm]\pmat{D_1 \\ D_2 \\ D_3 \\ ...}[/mm]
ansetzen und die quadratischen Differenzen minimieren.
Einfacher ist folgender Ansatz:
Wir suchen eine Ebene mit der Gleichung [mm]Ax+By+Cz=D[/mm], sodass die Punkte [mm](x_1,y_1,z_1),\dots,(x_n,y_n,z_n)[/mm] möglichst nah an der Ebene liegen (im quadratischen Mittel).
Dazu rechnen wir erst einmal den Abstand [mm]d_i[/mm] eines Punktes [mm](x_i,y_i,z_i)[/mm] von der Ebene aus. Dieser Abstand ist die Projektion des Vektors [mm](x_i,y_i,z_i)[/mm] auf den Normaleneinheitsvektor der Ebene, also
[mm] d_i = \bruch{1}{\sqrt{A^2+B^2+C^2}} |Ax_i+By_i+Cz_i-D|[/mm]
Der mittlere quadratische Abstand aller Punkte ist der Mittelwert von [mm]d_i^2[/mm], also
[mm] S = \bruch{1}{n} \summe_{i=1}^n d_i^2 = \summe_{i=1}^n \bruch{1}{A^2+B^2+C^2} (Ax_i+By_i+Cz_i-D)^2[/mm]
Wir suchen das Minimum von S. Dazu setzen wir
[mm]\bruch{\partial S}{\partial A} = 0 [/mm], [mm]\bruch{\partial S}{\partial B} = 0 [/mm], [mm]\bruch{\partial S}{\partial C} = 0 [/mm], [mm]\bruch{\partial S}{\partial D} = 0 [/mm].
Das ergibt vier Gleichungen:
[mm] \bruch{1}{n} \summe_{i=1}^n 2\bruch{(Ax_i+By_i+Cz_i-D)((B^2+C^2)x_i-ABy_i-ACz_i+AD)}{(A^2+B^2+C^2)^2} = 0[/mm]
[mm] \bruch{1}{n} \summe_{i=1}^n 2\bruch{(Ax_i+By_i+Cz_i-D)((A^2+C^2)y_i-ABx_i-BCz_i+BD)}{(A^2+B^2+C^2)^2} = 0[/mm]
[mm] \bruch{1}{n} \summe_{i=1}^n 2\bruch{(Ax_i+By_i+Cz_i-D)((A^2+B^2)z_i-ACx_i-BCy_i+CD)}{(A^2+B^2+C^2)^2} = 0[/mm]
[mm] \bruch{1}{n} \summe_{i=1}^n -2\bruch{(Ax_i+By_i+Cz_i-D)}{(A^2+B^2+C^2)^2} = 0[/mm]
Das nichtlineare Gleichungssystem für A,B,C,D ist sehr kompliziert.
Man kann sich die Arbeit deutlich mit einem Trick vereinfachen: ich nehme an, das (A,B,C) den normierten Normalenvektor darstellen, dass also [mm]A^2+B^2+C^2=1[/mm] ist.
Dann suche ich das Minimum von
[mm] \bruch{1}{n} \summe_{i=1}^n d_i^2 = \summe_{i=1}^n(Ax_i+By_i+Cz_i-D)^2[/mm]
unter der Nebenbedingung [mm]A^2+B^2+C^2-1=0[/mm].
Die zu minimierende Funktion ist dann:
[mm] S = \summe_{i=1}^n(Ax_i+By_i+Cz_i-D)^2 + \lambda (A^2+B^2+C^2-1)[/mm].
Das entstehende Gleichungssystem für [mm](A,B,C,D,\lambda)[/mm] ist:
[mm] \bruch{1}{n} \summe_{i=1}^n 2x_i(Ax_i+By_i+Cz_i-D)+2\lambda A = 0[/mm]
[mm] \bruch{1}{n} \summe_{i=1}^n 2y_i(Ax_i+By_i+Cz_i-D)+2\lambda B = 0[/mm]
[mm] \bruch{1}{n} \summe_{i=1}^n 2z_i(Ax_i+By_i+Cz_i-D)+2\lambda C = 0[/mm]
[mm] \bruch{1}{n} \summe_{i=1}^n -2(Ax_i+By_i+Cz_i-D) = 0[/mm]
[mm] A^2+B^2+C^2-1=0[/mm]
oder:
[mm] A \summe_{i=1}^n x_i^2 +B \summe_{i=1}^n x_i y_i + C \summe_{i=1}^n x_iz_i - D \summe_{i=1}^n x_i + \lambda A = 0[/mm]
[mm] A \summe_{i=1}^n x_iy_i +B \summe_{i=1}^n y_i^2 +C \summe_{i=1}^n y_iz_i - D \summe_{i=1}^n y_i + \lambda B = 0[/mm]
[mm] A \summe_{i=1}^n x_iz_i +B \summe_{i=1}^n y_i z_i +C \summe_{i=1}^n z_i^2 - D \summe_{i=1}^n z_i + \lambda C = 0[/mm]
[mm] A \summe_{i=1}^n x_i + B \summe_{i=1}^n y_i + C \summe_{i=1}^n z_i -n D = 0[/mm]
[mm] A^2+B^2+C^2-1=0[/mm]
Die Summen kann man ganz einfach aus den gegebenen Punkten berechnen.
Das Gleichungssystem lässt sich noch etwas vereinfachen; ich weiß im Moment aber nicht, ob man die Lösung als Formel hinschreiben kann.
Viele Grüße
Rainer
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 16:00 Do 06.09.2007 | Autor: | DerHunter |
Hallo Rainer,
danke für diese ausführliche Antwort. Das klingt alles einleuchtend und ich werde das mal so ausprobieren.
Ich hatte Least Squares Ansatz so in der MATLAB-Hilfe gefunden. Deshalb bin ich einfach mal davon ausgegangen, dass man das so auf dieses Problem hier anwenden kann.
Danke auch an alle anderen "Antworter" .
Viele Grüße,
Thomas
|
|
|
|
|
Hallo Rainer,
hab grad nochmal nachgerechnet. Das Gleichungssystem:
$ A [mm] \summe_{i=1}^n x_i^2 [/mm] +B [mm] \summe_{i=1}^n x_i y_i [/mm] + C [mm] \summe_{i=1}^n x_iz_i [/mm] - D [mm] \summe_{i=1}^n x_i [/mm] + [mm] \lambda [/mm] A = 0 $
$ A [mm] \summe_{i=1}^n x_iy_i [/mm] +B [mm] \summe_{i=1}^n y_i^2 [/mm] +C [mm] \summe_{i=1}^n y_iz_i [/mm] - D [mm] \summe_{i=1}^n y_i [/mm] + [mm] \lambda [/mm] B = 0 $
$ A [mm] \summe_{i=1}^n x_iz_i [/mm] +B [mm] \summe_{i=1}^n y_i z_i [/mm] +C [mm] \summe_{i=1}^n z_i^2 [/mm] - D [mm] \summe_{i=1}^n z_i [/mm] + [mm] \lambda [/mm] C = 0 $
$ A [mm] \summe_{i=1}^n x_i [/mm] + B [mm] \summe_{i=1}^n y_i [/mm] + C [mm] \summe_{i=1}^n z_i [/mm] -n D = 0 $
$ [mm] A^2+B^2+C^2-1=0 [/mm] $
entspricht ja bis auf die [mm] $\lambda [/mm] A$, [mm] $\lambda [/mm] B$, [mm] $\lambda [/mm] C$ und der Nebenbingung schon dem Ansatz
$X^TX [mm] \cdot \pmat{A\\B\\C\\-D}$,
[/mm]
wobei $X$ jetzt als letzte Spalte noch 1 enthält.
Der Rest ließe sich dann ja auch noch unterbringen:
$X^TX [mm] \cdot \pmat{A\\B\\C\\-D} [/mm] + [mm] \lambda \pmat{A\\B\\C\\0} [/mm] = 0$
Muss nur noch die Nebenbedingung beachtet werden....
Grüße,
Thomas
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 10:21 Fr 07.09.2007 | Autor: | rainerS |
Hallo Thomas,
> entspricht ja bis auf die [mm]\lambda A[/mm], [mm]\lambda B[/mm], [mm]\lambda C[/mm]
> und der Nebenbingung schon dem Ansatz
>
> [mm]X^TX \cdot \pmat{A\\B\\C\\-D}[/mm],
>
> wobei [mm]X[/mm] jetzt als letzte Spalte noch 1 enthält.
Nein, das stimmt so nicht. Du musst erst für jeden Punkt die Matrix [mm]X_i^T\,X_i[/mm] bilden und dann über alle Punkte summieren, also:
[mm]M = \summe_{i=1}^n X_i^T\,X_i =
\begin{pmatrix}
\summe_{i_1}^n x_i^2 & \summe_{i_1}^n x_iy_i & \summe_{i_1}^n x_iz_i & \summe_{i_1}^n x_i \\
\summe_{i_1}^n x_iy_i & \summe_{i_1}^n y_i^2 & \summe_{i_1}^n y_iz_i & \summe_{i_1}^n y_i \\
\summe_{i_1}^n x_iz^i & \summe_{i_1}^n y_iz_i & \summe_{i_1}^n z_i^2 & \summe_{i_1}^n z_i \\
\summe_{i_1}^n x_i & \summe_{i_1}^n y_i & \summe_{i_1}^n z_i & \summe_{i_1}^n 1
\end{pmatrix}
[/mm]
> Der Rest ließe sich dann ja auch noch unterbringen:
>
> [mm]X^TX \cdot \pmat{A\\B\\C\\-D} + \lambda \pmat{A\\B\\C\\0} = 0[/mm]
>
> Muss nur noch die Nebenbedingung beachtet werden....
Stimmt, man könnte das als lineares Gleichungssystem mit [mm]\lambda[/mm] als Parameter betrachten, es lösen und [mm]\lambda[/mm] über die Nebenbedingung bestimmen.
[EDIT] Nachtrag
Dieses lineare Gleichungssystem hat nur dann andere als die triviale Lösung A=B=C=D=0, wenn die Determinante der Koeffizientenmatrix gleich 0 ist. Daraus kann man [mm]\lambda[/mm] ausrechnen. Leider führt auch das zu sehr komplizierten Ausdrücken, sodass mir folgende Vorgehensweise am einfachsten erscheint:
1. Elimiere D mit Hilfe der vierten Gleichung.
2. Berechne die Summen, bestimme die Determinante des entstehenden linearen Gleichungssystems für (A,B,C) in Abhängigkeit von [mm]\lambda[/mm]. Berechne die Werte von [mm]\lambda[/mm], für die die Determinante 0 wird (maximal 3).
3. Setze die drei Werte in das Gleichungssystem ein. Jetzt ist eine Gleichung redundant. Bestimme numerisch eine Lösung.
Viele Grüße
Rainer
|
|
|
|