Calculs faux, besoin de calculs avec conditions

Salut!

Je rencontre un problème sur Excel: je dois effectuer des calculs relativement compliqués, et il semblerait que des erreurs aléatoires apparaissent dans mon programme.

Explications pour situer le problème (si ça vous intéresse):

À l'école d'ingénieur, et je dois étudier un "mécanisme de Tchebychev" dans le cadre d'un cours de "cinématique multicorps" (mécanique des machines).

En résumé, le système se compose d'un assemblage de barres assemblées avec des pivots, et lorsqu'on actionne l'une des barres (en la faisant tourner avec un moteur), elle fait bouger le reste. Le système n'a qu'un seul degré de liberté (si ça vous parle).

Ce qu'on me demande, c'est de calculer la position d'un point donné du mécanisme (le bout d'une barre), en fonction de la position de la barre pilotée. Je dois calculer une position en X et une position en Y e fonction de l'angle phi, et je dois faire cela de 0° à 360° avec un incrément de 1°.

Pour les matheux: c'est un problème non-linéaire qu'on résout avec l'algorithme de Newton-Raphson, en passant par du calcul matriciel.

J'ai utilisé Excel pour faire mes calculs, mais il semble que des erreurs aléatoires se glissent systématiquement dans mon résultat.

En créant un graphique, je devrais obtenir une courbe relativement lisse; dans mon cas, elle apparaît avec le forme attendue, mais en oscillant de manière apparemment aléatoire.

J'ai remarqué que parfois, Excel ne se "rendait pas compte" qu'une valeur était nulle, et affichait un résultat infinitésimal à la place (exemple: multipliez une matrice par son inverse; vous devriez obtenir une matrice unitaire composée de 1 et de 0, mais il se peut qu'Excel renvoie des valeurs microscopiques à la place des 0). Je ne sais pas comment on appelle ce genre d'erreurs, mais il me semble possible qu'elles soient en cause dans mon cas.

J'ai imaginé demander à Excel de remplacer automatiquement les valeurs ne dépassant pas un certain seuil (que je prendrai le soin de définir pour maîtriser les choses), mais je ne sais pas comment on intègre ce genre de conditions dans une formule...

Remarque: qu'Excel affiche 1*10^-17 à la place de zéro n'est pas un problème en soi; mais je fais plusieurs itérations qui font apparaître ces erreurs (parfois même avec des exposants), et les erreurs microscopiques prennent une proportion inacceptable au bout du compte. C'est ça mon problème, je pense...

Merci beaucoup à ceux qui auront eu le courage de lire et de répondre, et félicitations si vous avez tout compris! ;D

bonjour

remplacer la valeur C3 par

SI (C3<10^(-7) ; 0 ; C3)

es-tu bien certain que ton système n'a pas réellement des pics de mouvement ? (ça arrive quand on combine des sinus il me semble)

Alors non, ma courbe doit être lisse et plutôt régulière. Il y a bien des sinus dans mon calcul, mais je les utilise seulement pour diminuer mes angles quand ils sortent de l'intervalle -PI à PI (en radians): ASIN(SIN(angle)) = angle compris entre -PI et PI, si je ne me trompe pas. Mais ça ne devrait pas déranger ma courbe en principe.

Pour la condition c'est bien, mais y a-t-il un moyen de l'intégrer directement dans un calcul?

Je vais essayer de mettre les zéros à zéro, pour l'instant, mais si quelqu'un d'autre a des idées du genre de problème que je peux avoir, je suis tout ouïe!

Bonsoir,

Arrondis tes calculs à 14 décimales maxi.

=ARRONDI(ta_formule;14)

A+

Oh! Je connaissais pas cette formule, et elle risque d'être bien pratique... Je m'y colle de ce pas et je vous dirai si le problème est réglé.

À part ça, c'est normal qu'Excel ait autant de mal à fournir des résultats stables pour des séries de calcul?

je pense que oui c'est normal

surtout s'il y a des valeurs issues de soustractions de nombres proches

il existe même des exemples (pas vraiment sur Excel, mais informatiques) qui démontrent les erreurs monstrueuses qu'on peut faire

http://serge.mehl.free.fr/anx/acc_arr.html

salut OOiste,

oui, c'est une idée d'arrondir

quelle sera la différence entre

=ARRONDI(ta_formule;14)

et

= SI (ta_formule<10^(-7) ; 0 ; ta_formule)

?

as-tu choisi l'arrondi à 14 chiffres pour t'éloigner de la précision d'Excel (de 15 chiffres) , si oui, je propose de s'en éloigner encore plus et d'arrondir à 12 chiffres.

+ d'info sur

http://support.microsoft.com/default.aspx?scid=kb%3Bfr-fr%3B214118

Premièrement, la CONDITION ne permet pas d'arrondir, mais de faire une fonction "par morceaux".

Le dernier exemple en date, me concernant, c'est le frottement, qui a un coefficient différent si l'objet le subissant est mobile ou immobile. La fonction CONDITION permet de switcher entre deux valeurs possibles (peut-être plus, j'en sais rien).

Je peux en tout cas dire que l'arrondi peut de mettre sur la même case que la formule, tandis que la condition doit être écrite sur une case associée à une autre case contenant la formule. Pour la précision et la fiabilité du calcul, j'en sais rien.

re bonjour

non,

la condition peut aussi se mettre dans une formule; comme je l'ai réécrit dans mon précédent message, ainsi :

à la place de ta_formule tu mets :

SI (ta_formule<10^(-7) ; 0 ; ta_formule)

tu peux donc tester les 2 idées et même les mixer si besoin

Mmh... non, Excel me renvoie une erreur de "référence circulaire", ou un truc du genre. En gros, la formule demande son propre résultat pour arriver à un résultat...

Ca joue toujours pas =D Je vais essayer les mêmes calculs sur un autre programme. Quelqu'un peut-il me dire si le tableur d'Openoffice risque de produire les mêmes erreurs?

re bonjour

hem...

si en C4 tu as actuellement une formule du genre = C1+C2, tu la remplaces simplement par = SI ( (C1+C2)<10^(-7) ; 0 ; C1+C2)

il n'y a pas de référence circulaire

quant à Calc, je propose que tu fasses l'essai, il est gratuit

Rechercher des sujets similaires à "calculs faux besoin conditions"