logo

Intersection de 3 plans quelconques dans l'espace


maths supIntersection de 3 plans quelconques dans l'espace

#msg1941071 Posté le 29-07-08 à 20:12
Posté par ProfilCanardWC CanardWC

Bonsoir à tous!

Dans le cadre d'un développement informatique, j'ai besoin de trouver l'intersection de 3 plans dans l'espace, 3 plans quelconques.
J'ai donc fouillé sur internet, et j'ai trouvé une méthode (enfin, des pistes de méthodes car cela ne correspondait pas toujours) avec les matrices. j'aimerai savoir si mon raisonnement est bon.
On considère bien sûr que les calculs sont justes (l'ordinateur n'arrondit rien).

On dispose de 3 plans, N, M et P, défini chacun par 3 points distincts.
On en déduit aisément un vecteur normal. J'ai utilisé le produit vectoriel.
On appellera n, de coordonnées (a b c), le vecteur normal à N.
n' est le vecteur normal à M, de coordonnées a' b' c'
n" est le vecteur normal à P, de coordonnées a" b" c"


Je pose une matrice nommée :

(a b c )
(a' b' c')
(a" b" c")


Je peux affirmer que les plans N, M et P ont pour équations cartésiennes respectives:

ax  + by  + cz  + e  = 0
a'x + b'y + c'z + e' = 0
a"x + b"y + c"z + e" = 0


Avec:
e  = -n  . OA
e' = -n' . OA'
e" = -n" . OA"
<=>
e  = -(a. Ax+b. Ay+c. Az)
e' = -(a.A'x+b.A'y+c.A'z)
e" = -(a.A"x+b.A"y+c.A"z)


En posant d, d' et d" comme suit:

d  = -e  = a. Ax+b. Ay+c. Az
d' = -e' = a.A'x+b.A'y+c.A'z
d" = -e" = a.A"x+b.A"y+c.A"z


Mes plans ont donc comme autre équation:
ax  + by  + cz  (+ e  - e ) = -e
a'x + b'y + c'z (+ e' - e') = -e'
a"x + b"y + c"z (+ e" - e") = -e"
<=>
ax  + by  + cz  = d
a'x + b'y + c'z = d'
a"x + b"y + c"z = d"


Je pose maintenant la matrice :

( d  )
( d' )
( d" )


Soit E l'ensemble des points de l'intersection des trois plans
Tous les points de E vérifient donc les équations des 3 plans

Soit M(x, y, z) un des points de E

Je pose une nouvelle matrice, nommée L:
(x)
(y)
(z)


Quelque soit M(x, y, z) € E:
ax  + by  + cz  = d
a'x + b'y + c'z = d'
a"x + b"y + c"z = d"


Sous forme de matrices (ben tiens, je ne les ai pas posées pour rien! ^^):

(a  b  c )   (x)   (d )
(a' b' c') . (y) = (d')
(a" b" c")   (z)   (d")


C'est à dire, quelque soit M(x, y, z) € E
alpha * I = Beta

Je cherche alors le déterminant de alpha
L'intersection des trois plans n'est pas un point si et seulement si det() = 0 (E est un ensemble vide ou une infinité de points si et seulement si det() = 0)

(Si le déterminant de est nul, le programme se clot, et indique que l'intersection n'est pas un point. Si le déterminant est non-nul, le programme se poursuit.)

Il existe, à ce stade, un unique point M(x, y, z) qui appartient aux trois plans
Je prends la matrice inverse de alpha, qui existe vu que le déterminant de alpha est nul.
Soit -1 la matrice inverse de . Je résous mon équation matricielle (ça se dit?):


. I =
<=>
-1 * * I = -1 *
<=>
I = -1 *


Je n'ai plus qu'a calculer I, car je connait les deux autres matrices.
Maintenant, connaissant I, j'en déduis les coordonnées de M:
(x)
I = (y)
(z)
<=>
M(x, y, z)


Ainsi, j'obtiens les coordonnées du point d'intersection de 3 plans quelconques, sans soucis de cas particulier.
Existe-t-il une erreur dans ce raisonnement?
Pour m'assurer fermement du bon fonctionnement de mon code, pourriez-vous me donner des équations de 3 plans, avec le point d'intersection calculé préalablement? Je n'ai aps trouvé d'exercices corrigés d'équations de 3 plans sur le net (sans corrigé, c'est inutile: je veux m'assurer que le programme trouve le même résultat qu'un humain ayant fait le calcul manuellement).

Merci d'avance de votre aide!
re : Intersection de 3 plans quelconques dans l'espace#msg1941161 Posté le 29-07-08 à 21:40
Posté par ProfilCanardWC CanardWC

En testant via Géospace, avec 6 essais sur des points quelconques, j'ai obtenus les mêmes résultats entre géoplan et mon programme.
Je n'ose rien en déduire de façon catégorique, mais je suppose que le raisonnement mathématique était bon. Pourriez vous néanmoins me le confirmer?
Pour les exemples que je demandais, de fait des essais avec géospace, ce n'est plus nécessaire

Merci @ vous !
re : Intersection de 3 plans quelconques dans l'espace#msg1941279 Posté le 29-07-08 à 22:31
Posté par Profillafol lafol Correcteur

Bonjour
théoriquement, c'est bon, mais tu pourrais dans certains cas rencontrer des problèmes numériques : certaines matrices sont "mal conditionnées", et ça a pour effet qu'une différence de moins de 0.1 unité sur une composante du second membre (ton beta, par exemple écrire 0.3 au lieu de 1/3, ou 1.4 au lieu de racine de 2, dans une des lignes) peut engendrer une différence de plus de 1000 unités dans les composantes de la solution .....
re : Intersection de 3 plans quelconques dans l'espace#msg1941285 Posté le 29-07-08 à 22:33
Posté par Profilinfophile infophile

Bonsoir

Tu peux rajouter une étape pour calculer le conditionnement, histoire de contrôler les erreurs numériques.
re : Intersection de 3 plans quelconques dans l'espace#msg1941311 Posté le 29-07-08 à 22:50
Posté par Profillafol lafol Correcteur

il y a aussi le problème que par exemple remplacer racine de 2 par son approximation à tant près peut rendre nul un déterminant qui ne l'aurait pas été avec racine de deux, et vice versa : meme sur la nature de l'intersection, il y a doute, dès lors qu'on est en numérique
re : Intersection de 3 plans quelconques dans l'espace#msg1941394 Posté le 29-07-08 à 23:45
Posté par ProfilCanardWC CanardWC

Merci de vos réponses!
La numérisation est effectuée sur une précision de 10^-3 lors de la création des points du plan: les coordonnées du point sont arrondies.
La précision des calculs est de l'ordre de 10^-9 ou 10^-12 (je ne sais plus exactement ^^), c'est à dire que tout résultat sauvé est arrondi à 9 chiffres apres la virgule.

Auriez-vous des exemples, ou une piste, où un écart d'un millième dans le calcul (lors du calcul du vecteur normal, lors du calcul de beta, du déterminant ou une autre étape) engendre une erreur importante?
Comment se calcule le conditionnement? (et comment se définit-il?)
re : Intersection de 3 plans quelconques dans l'espace#msg1941400 Posté le 29-07-08 à 23:47
Posté par Profillafol lafol Correcteur

il faudra que je recherche mon exemple, mais après le 15 aout : je pars en rando
re : Intersection de 3 plans quelconques dans l'espace#msg1941401 Posté le 29-07-08 à 23:48
Posté par Profilinfophile infophile

J'ai souvenir d'une matrice où il y a avait une erreur de l'ordre 10^(-3) et qui faussait beaucoup le résultat.

Le conditionnement est donné par ||A||.||A-1||

re : Intersection de 3 plans quelconques dans l'espace#msg1941405 Posté le 29-07-08 à 23:50
Posté par Profilinfophile infophile

Bonne rando lafol !
re : Intersection de 3 plans quelconques dans l'espace#msg1941423 Posté le 30-07-08 à 00:08
Posté par ProfilCanardWC CanardWC

Oui, bonne randonnée à toi lafol!

N'ayant pas fait les matrices en cours, je ne sais pas comment si calcule ||A||. Qu'est-ce donc et comment le trouve-t-on? Il s'agit de la norme de la matrice?
A l'image du calcul de la norme d'un vecteur, pour trouver ||A||, je dois élevé tous ses coeficiants au carré, en faire la somme, et en prendre la racine carrée?
re : Intersection de 3 plans quelconques dans l'espace#msg1941427 Posté le 30-07-08 à 00:12
Posté par Profilinfophile infophile

Non c'est la norme matricielle, je t'en cause demain
re : Intersection de 3 plans quelconques dans l'espace#msg1941433 Posté le 30-07-08 à 00:19
Posté par ProfilCanardWC CanardWC

C'est aimable de ta part! Je vais quand même essayer de chercher moi-même sur internet, maintenant que je sais quoi chercher (car "norme matrice" ne renvoyait pas grand chose ^^).

Et pour le conditionnement, une fois calculé, comment puis-je le traiter pour savoir si mon calcul va être totalement déplacé? Apparemment, il faudrait trouver un conditionnement valant 1 (idéalement), mais quelle valeur-seuil serait-il conseillé d'utiliser, en voulant une précision de l'ordre de 1? de même pour une précision à 0,1; à 0,01 et enfin à 10^-3?

Merci encore !
re : Intersection de 3 plans quelconques dans l'espace#msg1941440 Posté le 30-07-08 à 00:33
Posté par ProfilCanardWC CanardWC

Mais en fait, les points du plan sont alignés sur la grille de calcul, donc, ils sont arrondis à 10^-6 près.
De fait, logiquement, le vecteur normal du plan est lui aussi sur la grille, non? Donc la matrice A est parfaitement exacte, puisqu'elle reprend les coordonnées des vecteurs.
Apres, pour la matrice B, ca serait différent... Vu qu'elle contient des valeurs de la forme
ax + by + cz, sa précision passe à l'ordre de 3x(10^-6)²
Donc B devrait avoir une précision de 10^-12. Or, la finesse de calcul est de 10^-6...

Si je restreins la grille de départ à 10^-3, la matrice A est toujours exacte, et précise à 10^-3
Du coup, les valeurs de B sont précises à un niveau de 3x(10^-3)², donc la précision de B devrait être de l'ordre de 10^-6, ce qui concorde avec la finesse de calcul du programme.

Donc, en forcant l'alignement des 3 points qui définissent le plan sur une grille de 10^-3, logiquement, le résultat est parfaitement fiable. Je me trompe?

Répondre à ce sujet

réservé Seuls les membres peuvent poster sur le forum !

Vous devez être connecté pour poster
attention Un modérateur est susceptible de supprimer toute contribution qui ne serait pas en relation avec le thème de discussion abordé, la ligne éditoriale du site, ou qui serait contraire à la loi.

  • Ce topic

    imprimer Imprimer
    réduire la tailleRéduire   /   agrandir la tailleAgrandir

    Pour plus d'options, connection connectez vous !
  • Fiches de maths

    * géométrie en post-bac
    1 fiches de mathématiques sur "géométrie" en post-bac disponibles.


cours particuliers - cours de maths haut de pagehaut Retrouvez cette page sur ilemaths l'île des mathématiques
© Tom_Pascal & Océane 2008