Mais tu as infiniment plus de divisions que DrTopos...
Version imprimable
Mais tu as infiniment plus de divisions que DrTopos...
Oui mais j'ai moins de multiplications.... Il reste à voir si le temps qui est gagné sur les multiplications n'est pas perdu sur les divisions, c'est vrai.
En plus du temps, tes divisions induiront inévitablement des arrondis qui peuvent produire des erreurs monstrueuses. Fais confiance à DrTopos.
Je ne remettais du tout en cause ce que disais DrTopos, j'essayai juste de défendre un point de vue différent.
De toute façon ça revient au même, car lui il stocke le 1/a11 et l'applique pour chaque terme de la ligne, alors que moi je stock le a21/a11 et l'applique pour chaque terme de la ligne...
C'est pas si différent...
Pour ce qui est des erreurs je l'ai déjà dis il faut trier les lignes, regarder la ligne avec le plus petit pivot, on divisera alors par un nombre plus petit on aura moins d'erreur, que si on prend un pivot au pif.
Je ne vois pas de division chez DrTopos, et c'est justement ça la force de sa méthode.
Car il y a des matrices où, quels que soient le pivot que tu choisis, tu obtiens un résultat où l'erreur est énorme (en fait, aussi grande qu'on veut. Si je me rappelle bien, ça s'appelle des matrices mal conditionnées).
Dans la méthode du pivot, le choix du pivot est important évidemment. Il me semble toutefois que le meilleur choix consiste à prendre le coefficient dont la valeur absolue est la plus proche possible de 1, et non pas le plus petit ou le plus grand. En effet, 1 (ou -1) est un pivot idéal, car il ne provoque pas de division. Diviser par quelquechose de proche de 1 provoque moins de variation et donc moins de dégats dans la précision. De toute façon je crois que la situation est symétrique en ce qui concerne zéro et l'infini.
C'est en lisant ce genre de remarques, pleines de bon sens mais auxquelles je n'ai pas pensé, que je me rends compte à quel point j'ai perdu depuis mes études de maths... Ah làlà, quelle misère !Citation:
Envoyé par DrTopos
Je ne crois pas que le problème soit tellement lié aux maths. C'est plutôt une façon de penser en général, quand il s'agit de disciplines ou intervient une certaine dose de formalisme (math, info, physique, etc...). Notre intuition peut être guidée soit par les règles formelles (souvent tout simplement des règles syntaxiques, ou des règles de calcul), soit par des considérations sémantiques (par exemple géométriques, visuelles, expérimentales, etc...). Je crois qu'on a trop tendance à n'intuiter que sur des bases sémantiques, alors qu'une intuition plus formelle donne souvent de meilleures idées. C'est le cas de l'exemple, puisque le fait que diviser par 1 consiste à ne rien faire est une règle de calcul.Citation:
Envoyé par alveric
Combien ai-je vu d'étudiants restant secs sur des démonstrations, parce qu'ils essayaient d'avoir des visions géométriques du problème (souvent érronées d'ailleurs) , alors qu'en fait l'application de règles simples et systématiques (relatives par exemple à l'usage des quantificateurs) donne tout de suite la solution. Je crois qu'il faut se méfier des modèles mentaux, surtout visuels, pour se concentrer plus sur les méthodes.
Mais en informatique, si on utilise des flottants, diviser par 1.04 ou par 2.08 donnera la même précision, tout se passe "modulo" 2
Tu sous-entends donc que diviser par 2 est une opération qui ne peut pas provoquer de perte de données. En fait la division par 2, dans la représentation par mantisse et exposant, consiste à soustraire 1 à l'exposant. Or l'exposant étant stocké sur un nombre fini de bits, il arrive un moment où ce n'est plus possible d'où risque de perte de données quand même. Evidemment, il faut aller très loin, puisque dans un nombre sur 64 bits, l'exposant dispose d'un nombre confortable de bits.Citation:
Envoyé par Miles
Ceci dit, l'expression ``tout se passe modulo 2'' n'est pas adéquate ici. Ce qui est sûr est que le calcul sur des entiers de 32 bits (type int ou long en C) se fait modulo 2^32 (et non pas modulo 2; heureusement d'ailleurs). Parler de ``modulo'' pour des flottants n'a pas à ma connaissance de définition précise.
C'est pour cette raison que jai mis des guillemets ;) ce n'est pas un vrai modulo, mais un modulo sur l'erreur de calcul, on peut dire. Jusqu'à ce qu'on arrive à des nombres très grands ou des nombres très petits où ça plante complètement !