|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre expérimenté
![]() Inscription : février 2010 Messages : 1 473 ![]() |
Salut tous,
j'ai vu sur un document que pour optimiser la methode de Gauss (minimiser les erreur d'arrondis) il faut choisir le plus grand pivot possible (et donc permurter les lignes). je n'ai pas compris pourquoi, pourriez vous m'expliquer svp ? => ce que je comprends pas c'est que si on raisonne comme cela on peut se dire: je dois ajouter à chaque ligne un nombre enorme pour avoir le pivot maximal ! je comprends que ce raisonnement est faux mais j'aimerai comprendre c'est quoi cet histoire de pivot max... merci d'avance pour votre aide |
|
|
00
|
|
|
#2 |
![]() ![]() Jean-Marc Blanc Inscription : avril 2007 Messages : 2 658 ![]() |
Salut!
Sur ce site, il y a des cours, en particulier un que j'ai écrit: "Résolution des systèmes linéaires", où tu trouveras la réponse à ta question. Jean-Marc Blanc
__________________
Calcul numérique de processus industriels Formation, conseil, développement Point n'est besoin d'espérer pour entreprendre, ni de réussir pour persévérer. (Guillaume le Taiseux) |
|
|
10
|
|
|
#3 |
|
Membre expérimenté
![]() Inscription : février 2010 Messages : 1 473 ![]() |
merci je vais regarder
|
|
|
00
|
|
|
#4 | ||
|
Membre émérite
![]() Chercheur Inscription : mars 2010 Messages : 733 ![]() |
Bonjour,
tu liras dans beaucoup de documents qu'il faut pivoter pour améliorer la précision de tes calculs mais en fait on sait théoriquement que ça ne sert pas à grand chose. Quand on résout un système linéaire Ax=b à l'aide de la méthode de Gauss, on sait que l'erreur sur la solution vérifie Citation:
Citation:
La vraie raison pour laquelle on pivote est que l'on s'assure de ne pas avoir de pivot nul lorsque la matrice est inversible, c'est-à-dire qu'on s'assure de ne jamais diviser par un terme nul. Dit autrement, la factorisation LU d'une matrice inversible existe toujours à une permutation par ligne ou par colonne près . Sans permutation, une matrice inversible n'admet pas nécessairement de factorisation LU. Pour approfondir le sujet, tu peux lire le livre de Higham intitulé "Accuracy and stability of numerical algorithms". |
||
|
|
10
|
|
|
#5 | |
|
Membre expérimenté
![]() Inscription : février 2010 Messages : 1 473 ![]() |
Citation:
merci alex pour cette reponse ! en gros ce que tu veux me dire c'est que si la matrice est mal conditionnée je peux prendre n'importe quel pivot la solution sera pourrie ? si j'ai une matrice très bien conditionnée la solution de changer de pivot ameliore grandement les resultats où c'est negligeable ? (c'est solution porte de nom de pivot partiel, c'est bien ça ?) |
|
|
|
00
|
|
|
#6 | ||
|
Membre émérite
![]() Chercheur Inscription : mars 2010 Messages : 733 ![]() |
Le pivotage est dit partiel si on ne permute que des lignes (pivotage partiel par ligne) ou que des colonnes (pivotage partiel par colonne). Il est dit total lorsqu'on permute à la fois des lignes et des colonnes.
Il faut bien comprendre que la norme de l'erreur est bornée par un terme de conditionnement ET un terme de croissance, c'est-à-dire que : 1. il s'agit bien d'une borne supérieure qui ne donne qu'une estimation du pire cas possible. Un problème mal conditionné ne conduit pas nécessairement à de grandes erreurs de calcul. 2. les influences du préconditionnement et du pivotage ne sont pas liées (on n'agit pas sur le même terme). Ceci permet de répondre à tes questions. Citation:
Citation:
EDIT : je vais te donner une réponse plus frappante pour que tu comprennes bien. Je résous des systèmes linéaires inversibles de conditionnement en 10^8 et de terme de croissance en 10^9 et j'obtiens quand même une solution à 10^{-9} près. Seulement, je ne peux vérifier cela qu'après calcul de la solution. Par conséquent, pour éviter les problèmes, on préfère préconditionner et faire du pivotage pour éviter d'avoir des problèmes d'imprécisions et/ou d'inexistence de la factorisation LU. |
||
|
|
10
|
|
|
#7 |
|
Membre expérimenté
![]() Inscription : février 2010 Messages : 1 473 ![]() |
merci beaucoup pour ta reponse !!!
=> peux tu m'en dire un peu plus sur ce terme de croisance stp ? c'est la capacité en amplifier les erreurs ou un truc dans ce genre ? => es ce terme de croissance est lié au rayon spectral de la matrice ? et si oui comment ? pourquoi ... ? merci de ton aide |
|
|
00
|
|
|
#8 | |||
|
Membre émérite
![]() Chercheur Inscription : mars 2010 Messages : 733 ![]() |
Citation:
Citation:
Citation:
|
|||
|
|
10
|
|
|
#9 |
|
Membre expérimenté
![]() Inscription : février 2010 Messages : 1 473 ![]() |
merci pour ton aide.
Si j'ai bien compris une matrice avec un conditionnement parfais, si on l'a résous par Gauss peut donner un résultat pourri... ? ![]() j'aurais pas pensé... |
|
|
00
|
|
|
#10 |
|
Membre émérite
![]() Chercheur Inscription : mars 2010 Messages : 733 ![]() |
Tout à fait! C'est le cas de tous les algorithmes qui ne sont pas rétrogradement stables (backward stable).
|
|
|
10
|
|
|
#11 |
|
Membre expérimenté
![]() Inscription : février 2010 Messages : 1 473 ![]() |
|
|
|
00
|
|
|
#12 |
|
Membre émérite
![]() Chercheur Inscription : mars 2010 Messages : 733 ![]() |
Il s'avère qu'en pratique l'algorithme fournit généralement des solutions très précises mais on ne sait pas expliquer pourquoi :
http://www.cse.illinois.edu/courses/..._Mysteries.pdf |
|
|
10
|
|
|
#13 |
|
Membre expérimenté
![]() Inscription : février 2010 Messages : 1 473 ![]() |
merci pour le lien
et en pratique c'est beaucoup utilisé comme algo ? par exemple dans matlab c'est ceci qui est utilisé ou un autre ? on prefere utiliser des methodes iteratives en pratiques ou direct ? et pourquoi .. ? |
|
|
00
|
|
|
#14 | |||
|
Membre émérite
![]() Chercheur Inscription : mars 2010 Messages : 733 ![]() |
Citation:
Citation:
Citation:
|
|||
|
|
10
|
|
|
#15 |
|
Membre expérimenté
![]() Inscription : février 2010 Messages : 1 473 ![]() |
merci beaucoup pour ces supers explication, une dernière:
=> tu dis que les méthodes directes utilisent + de memoires vivent, à quoi cela est lié ? il y a moijns d'operation que les methodes iteratives mais les operations sont plus grosses ? c'est un truc dans ce genre ? pourrais tu m'expliquer stp ? merci d'avance (c la dernière question |
|
|
00
|
|
|
#16 |
|
Membre émérite
![]() Chercheur Inscription : mars 2010 Messages : 733 ![]() |
On suppose que tu dois résoudre un système linéaire inversible de taille n. Avec une méthode itérative, tu devras stocker quelques vecteurs intermédiaires de taille n. Avec une méthode directe, tu devras stocker la factorisation LU de ta matrice c'est-à-dire des matrices de taille nxn. Tu gagnes un peu parce que ces matrices sont triangulaires mais ça reste beaucoup plus important que le stockage de quelques vecteurs.
|
|
|
10
|
|
|
#17 |
|
Membre expérimenté
![]() Inscription : février 2010 Messages : 1 473 ![]() |
merci beaucoup, je comprends ce que tu veux dire.
c'est tres gentil d'avoir pris le temsp de m'aider |
|
|
00
|
|
|
#18 |
|
Membre émérite
![]() Chercheur Inscription : mars 2010 Messages : 733 ![]() |
Pas de problème!
![]() Bonne continuation: |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com