Matthias,

der Lösungsvorschlag von Rossir ist ein schöner intuitiver Ansatz. Dabei bleibt aber unbeantwortet, in welchem Sinne die Ebene "optimal" eingepasst ist. Auf alle Fälle richtig ist es, den Mittelpunkt der Punktwolke (also den Mittelwert aller Punkt-Vektoren) als Bezugspunkt der Ebene (rossir nennt ihn den Hesse-Punkt) zu verwenden.

Die naheliegende Antwort auf die Frage, was "mathematisch optimal" bedeuten soll, ist: Die Ebene soll so liegen, dass möglichst viele Punkte davon einen möglichst geringen Abstand haben. Als Abstand betrachtet man dabei die Länge der Senkrechten von der Ebene zu dem betreffenden Punkt. Wie man die ausrechnet, wenn man den Normalenvektor (rossir nennt es den Hesse-Vektor) und den Bezugspunkt kennt, weisst Du ja sicher.

Nur liefert die Berechnung einen positiven Abstand, wenn der Punkt über und einen negativen, wenn er darunter liegt. Wenn man diese Formel in einen Algorithmus steckt, der die Ebene liefert, von der alle Punkte den minimalen Abstand haben, dann wird der versuchen, möglichst viele Abstände möglichst negativ zu machen. Denn "möglichst klein" bedeutet in der Mathematik nun einmal "möglichst negativ".

Das wird erst besser, wenn man das Quadrat des Abstandes nimmt; das ist nämlich immer positiv. Wenn man nun die Summe über die Abstandsquadrate aller Punkte bildet, dann bekommt man eine Funktion, die immer positiv ist. Und die Ebene, von der die Punkte den kleinsten möglichen Abstand haben, zeichnet sich durch ein Minimum dieser Funktion aus. Diese Funktion ist zudem stetig und deshalb differenzierbar. Das hat der gute Herr C.F.Gauss schon 1795 herausgefunden.

Um das Minimum zu finden, muss man die Summe der Abstandsquadrate nach dem Bezugspunkt und dem Normalenektor differenzieren und die Ableitungen gleich Null setzen. Dadurch bekommt man einen Satz von lösbaren Gleichungen. Die Formeln, die bei der Lösung herauskommen sind nicht simpel, aber auch nicht schwer zu programmieren.

Ciao,
mare_crisium