Problème de conditionnement

Réponses à toutes vos questions après le Bac (Fac, Prépa, etc.)
maniqk
Membre Naturel
Messages: 69
Enregistré le: 09 Oct 2013, 15:41

Problème de conditionnement

par maniqk » 30 Oct 2013, 12:04

Bonjour,

Je m'adresse à ceux qui connaissent le problème de conditionnement...
Je rappelle brièvement le problème :

On considère le système suivant :
x1 + 2*x2 = 3
2*x1 + 3,999*x2 = 5,999

La solution de ce système est (x1=1 x2=1)

Je "perturbe" légèrement le système :
x1 + 2*x2 = 3
2*x1 + 3,999*x2 = 6

La solution de ce système ci est (x1=3 x2=0)

-> En ayant très légèrement modifié l'un des membres de mon système, ma solution a complètement changé. On dit que le problème est mal conditionné.

Afin de savoir si un problème est bien conditionné ou non, on peut calculer un nombre appelé "conditionnement". Il est défini de la façon suivante : Cond(A) = ||A||*||A-1|| (inverse de A)
Dans l'exemple précédent, on peut définir la matrice A en écrivant le système sous forme matricielle (A*x = b). Plus ce nombre est grand, plus le problème est mal conditionné.

Je sais qu'il existe des méthodes d'estimation de ce nombre (l'estimation est utile car elle permet de ne pas calculer l'inverse de A...)

Ma question est :
Quelle est la validité du calcul du conditionnement si je le calcule après le calcul de l'inverse de A ?


Car supposons que mon problème soit mal conditionné, et que je souhaite calculer l'inverse d'une matrice A (je vais donc résoudre A*X = In donc n systèmes de type A*x = b), l'inverse calculée peut être fausse du coup... Donc la norme de mon inverse aussi. Du coup mon calcul de conditionnement n'est pas correct.

En gros, comment justifier le fait que je puisse calculer le conditionnement après résolution d'un système alors que justement la résolution de celui-ci peut amener à un résultat "faux" ?

Voilou, merci à ceux qui ont eu le courage de tout lire et à ceux qui me répondront ;)
maniqk



Dlzlogic
Membre Transcendant
Messages: 5273
Enregistré le: 14 Avr 2009, 12:39

par Dlzlogic » 30 Oct 2013, 12:22

Bonjour,
Je crois que j'ai bien compris le problème, mais ma réponse ne va probablement pas entrer dans votre contexte de calcul.
Quand j'ai à résoudre un système linéaire, il y a 3 résultats possible
Soit le système admet une solution (disons, c'est le cas normal)
Soit le système est impossible (on arrive à une opération du type a/epsilon a étant non nul et non très petit et epsilon très petit).
Soit le système est indéterminé (on arrive à une opération du type 0/0).
Il est bien évident que ces conditions de validité sont testées AVANT la résolution.

A mon avis, votre questionnement vient du fait que vous utilisez un boite noire. Donc, en considérant que la vérification n'est pas faite dans la boite, le contrôle AVANT ou APRES ne donnant pas le même résultat, ça pose un réel problème, je vous l'accorde.

Avatar de l’utilisateur
leon1789
Membre Transcendant
Messages: 5486
Enregistré le: 27 Nov 2007, 15:25

par leon1789 » 30 Oct 2013, 12:37

Dlzlogic a écrit:Bonjour,
Je crois que j'ai bien compris le problème,

Non Dlzillogic, tu ne sais pas ce que sont les problèmes de conditionnement en algèbre linéaire... (norme matricielle, etc.), donc encore une fois, évite d'intervenir pour taper à coté du sujet.

Sylviel
Membre Transcendant
Messages: 6466
Enregistré le: 20 Jan 2010, 12:00

par Sylviel » 30 Oct 2013, 12:50

Salut Maniqk,

je ne suis pas assez expert en analyse numérique et algèbre linéaire numérique pour te répondre précisément. Mon sentiment est le suivant : la formule de cond(A) que tu as donné est surtout théorique dans le sens où elle permet tout plein d'estimation d'erreur et de propagation d'erreurs dans les calculs. En revanche elle ne doit pas être utilisée tel quel pour estimer le conditionnement (comme tu l'as dis il y a sans doute des méthodes spécifique pour). Dans le cas diagonalisable il s'agit de calculer la plus grande et la plus petite valeur propre et je sais qu'il y a tout plein de littérature sur ce sujet (et que c'est même encore un sujet de recherche actif...).

En espérant t'avoir aidé.

P.S: Les remarques de Dlzlogic sur l'algèbre linéaire sont à prendre avec discernement (il t'explique par exemple qu'on ne peut rien dire sur un système qui a une infinité de solution, ou encore que les matrices sont inutiles etc...)
Merci de répondre aux questions posées, ce sont des indications pour vous aider à résoudre vos exercices.

Dlzlogic
Membre Transcendant
Messages: 5273
Enregistré le: 14 Avr 2009, 12:39

par Dlzlogic » 30 Oct 2013, 12:51

Salut Léon,
Au moins, lorsque j'interviens pour une question qui me parait intéressante, je suis sûr que tu liras le sujet et mon intervention et que tu ne pourras pas t'empêcher d'y trouver à redire.
Non, je ne connais pas les problèmes de conditionnement en algèbre linéaire, d'où ma mise au point au départ.
Dans le cas présent il s'agit de résoudre un système. Pour cela, on utilise l'algèbre linéaire, moi pas. J'ai donc expliqué, et au moins ce sujet ne restera pas sans réponse.
En d'autres termes, à cause de la méthode de résolution habituellement employée, le problème de conditionnement se pose, si on utilise une méthode bas niveau, ce problème n'existe pas.

maniqk
Membre Naturel
Messages: 69
Enregistré le: 09 Oct 2013, 15:41

par maniqk » 30 Oct 2013, 13:01

Merci pour vos réponses rapides !

Oui en effet, le problème de conditionnement est une discipline à part entière des mathématiques...
Et oui Sylviel tu m'as un peu aidé ^^

Le fait est que j'ai pris l'exemple d'un bouquin, et que dans celui-ci le conditionnement est calculé après avoir déterminé l'inverse de A. Bon là l'exemple est simple, c'est une matrice 2x2 donc je pense qu'il n'y a pas de problèmes... Mais pour les matrices plus grandes, pourquoi déterminer le conditionnement si l'on n'est pas sûr que l'inverse calculée est correcte... (c'était plutôt ça ma question en fait).

Enfin bon, je vais essayer d'embobiner ceux qui liront mon rapport :D

Sylviel
Membre Transcendant
Messages: 6466
Enregistré le: 20 Jan 2010, 12:00

par Sylviel » 30 Oct 2013, 13:04

Non Dlzlogic : quelque soit la "méthode de résolution" le problème se pose.

La question est globalement la suivante : si tu as une incertitude sur ta partie de droite, est ce que cela va beaucoup affecté la solution ? Maniqk à sorti un exemple instructif sur le sujet...

Il existe un nombre associé à la matrice (les coeff dans la partie de gauche) qui permet de majorer l'erreur sur la solution (en fonction de l'erreur sur les données). C'est ce nombre qu'on appelle conditionnement. Et Maniqk demande comment peut-on calculer ce nombre ?
Merci de répondre aux questions posées, ce sont des indications pour vous aider à résoudre vos exercices.

maniqk
Membre Naturel
Messages: 69
Enregistré le: 09 Oct 2013, 15:41

par maniqk » 30 Oct 2013, 13:09

La question est globalement la suivante : si tu as une incertitude sur ta partie de droite, est ce que cela va beaucoup affecté la solution ?


En fait on étudie une perturbation sur le membre de droite, sur le membre de gauche, ou les deux ^^ Mais c'est pas le problème

Et Maniqk demande comment peut-on calculer ce nombre ?


Pas exactement en fait. Je "sais" comment calculer ce nombre (en l'occurence utiliser la définition...) ou alors je sais l'estimer.

Ma question porte sur la validité de ce nombre s'il n'est pas estimé (s'il est calculé "exactement" quoi), mais je ne suis peut être pas assez clair là dessus

Sylviel
Membre Transcendant
Messages: 6466
Enregistré le: 20 Jan 2010, 12:00

par Sylviel » 30 Oct 2013, 14:04

J'ai bien compris ton problème Maniqk, et la question est valide. Du coup je pense qu'il existe des méthodes spécifiques (dans le cas diagonalisable c'est le cas pour sûr) mais je ne les connais pas. Au pif je dirais que tu peux améliorer la précision par préconditionnement (par une matrice connue donc dont tu peux calculer exactement le conditionnement). Mon laïus était juste pour essayer de faire comprendre un peu de quoi on parle à Dlzlogic.
Merci de répondre aux questions posées, ce sont des indications pour vous aider à résoudre vos exercices.

Dlzlogic
Membre Transcendant
Messages: 5273
Enregistré le: 14 Avr 2009, 12:39

par Dlzlogic » 30 Oct 2013, 14:12

J'ai poussé l'expérience en mettant 6.001 pour le terme de droite.
La solution est x1=5.0000 x2=-1.0000.
Mon avis : les 3 systèmes sont 3 systèmes différents qui admettent chacun une solution différente.
[EDIT]
De plus, pour un système de 2 équation, soit il admet une solution, soit les deux équations sont identiques à un facteur de proportionnalité près, alors le système admet une infinité de solutions, dans mon vocabulaire on dit indéterminé, soit il est impossible (déterminant nul). Il n'y a pas d'autre possibilité.

maniqk
Membre Naturel
Messages: 69
Enregistré le: 09 Oct 2013, 15:41

par maniqk » 30 Oct 2013, 14:16

Lol oui je le savais déjà ^^ On considère des systèmes différents mais l'un des membres varie à peine et on a une solution "complètement" différente (je crois avoir vu un exemple où l'on modifie juste un terme de 0,00001 près)

Enfin bon, si quelqu'un s'y connait en algèbre numérique et qu'il passe par ici tant mieux, sinon c'est pas grave ;)

Merci à tous !

Avatar de l’utilisateur
leon1789
Membre Transcendant
Messages: 5486
Enregistré le: 27 Nov 2007, 15:25

par leon1789 » 30 Oct 2013, 17:00

Merci à Dlzlogic de nous faire découvrir les systèmes linéaires 2x2.

Dlzlogic a écrit:Salut Léon,
Au moins, lorsque j'interviens pour une question qui me parait intéressante, je suis sûr que tu liras le sujet et mon intervention et que tu ne pourras pas t'empêcher d'y trouver à redire.

et il y a de quoi, en effet. :dodo:

Dlzlogic a écrit:Non, je ne connais pas les problèmes de conditionnement en algèbre linéaire, d'où ma mise au point au départ.
Dans le cas présent il s'agit de résoudre un système. Pour cela, on utilise l'algèbre linéaire, moi pas. J'ai donc expliqué, et au moins ce sujet ne restera pas sans réponse.
En d'autres termes, à cause de la méthode de résolution habituellement employée, le problème de conditionnement se pose, si on utilise une méthode bas niveau, ce problème n'existe pas.

Donc tu ne connais pas, et tu penses avoir la solution au problème après une brève mise au point.
Moi, je dis CHA-PEAU ! Finalement, l'algèbre linéaire, c'est faciiile. :we:

 

Retourner vers ✯✎ Supérieur

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 43 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite