Question

I ai un ensemble de points et je peux dériver une solution des moindres carrés sous la forme:

z = Ax + By + C  

Les coefficients sont corrects, je calculer, mais comment pourrais-je obtenir le vecteur normal au plan dans une équation de cette forme? Tout simplement en utilisant A, B et C coefficients de cette équation ne semblent pas correctes, un vecteur normal en utilisant mon jeu de données de test.

Était-ce utile?

La solution

À la suite de la réponse de dmckee:

a x b = (a2b3 - A3b2), (a3b1 - a1b3), (A1B2 - A2B1)

Dans le cas a1 = 1, a2 = a3 = 0 A b1 = b2 = 0 1 = b3 B

so = (-A), (-B), (1)

Autres conseils

Formez les deux vecteurs

v1 = <1 0 A>
v2 = <0 1 B>

les deux qui se trouvent dans le plan et prendre le contre-produit:

N = v1 x v2 = <-A, -B, +1>     (or    v2 x v1 = <A, B, -1>  )

Il fonctionne parce que le produit croisé de deux vecteurs est toujours perpendiculaire à la fois des entrées. Donc, en utilisant deux vecteurs (non colinéaires) dans le plan vous donne une normale.

NB:. Vous voulez probablement normalisé normale, bien sûr, mais je vais laisser cela comme un exercice

Un peu de couleur supplémentaire sur la réponse dmckee. Je commentaires directement, mais je ne suis pas encore suffisant représentant SO. ; - (

Le plan z = Ax + By + C ne contient que des points (1, 0, A) et (0, 1, B) lorsque C = 0. Donc, nous parlerions le plan z = Ax + By. Ce qui est bien, bien sûr, puisque ce second plan est parallèle à l'original, la translation verticale unique qui contient l'origine. Le vecteur orthogonal nous voulons calculer est invariante par les traductions comme celui-ci, donc pas de mal.

Certes, le phrasé de dmckee est que son mensonge « vecteurs » spécifiés dans le plan, pas les points, donc il est sans doute couvert. Mais il me semble utile de reconnaître explicitement les traductions implicites.

Boy, il a été un moment pour moi sur ce genre de choses, aussi.

pédante vôtre ...; -)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top