Aller au contenu
Posté(e)
comment_125332

Bonjour

Pourquoi certains programmes de calcul numérique en génie civil, parfois ne répondent pas à ce qui est attendu ou donne des résultats inattendus ou illogiques même si les données de l'utilisateur sont correcte . Et il suffit de reprendre la manip pour que ça marche au deuxième tour :)  

Cdt   

  • Réponses 29
  • Vues 5.4k
  • Créé
  • Dernière réponse

Meilleurs contributeurs dans ce sujet

Messages populaires

  • philkakou
    philkakou

    Le plus simple serait de définir une variable tolerance et vérifier si alpha se trouve dans la tolerance autour de la valeur de x En fait , le problème vient de la représentation numérique d'un n

  • Le problème est là. C'est quoi très petit? Puis quelle est la conséquence de ce très petit pour l’intersection des droites sur le très petit pour déterminer les points confondus? Puis sur le très peti

  • BELLAMINE
    BELLAMINE

    Exactement, et pour éviter ce piège dû à la machine que peut on proposé pour éviter ce bug très dangereux pour  la programmation informatique en calcul numèrique ? Cdt

recommended_posts

comment_125371
Il y a 3 heures, philkakou a dit :

Le plus simple serait de définir une variable tolerance et vérifier si alpha se trouve dans la tolerance autour de la valeur de x

En fait , le problème vient de la représentation numérique d'un nombre irrationnel

je dis comme lui :D

  • Auteur
comment_125380

Bonjour

Pourquoi j'ai dit que ce genre de bug est très dangereux pour les logiciels de calcul numérique des structures et qu'il devra être pris en considération en première priorité par les développeurs de programmes informatiques.

Supposant que le code de notre fonction personnalisée dénommée TOTO fait parti d'un module intégré à un logiciel de commande d'un avion où une centrale nucléaire comme suit :

If Aplha = x then

    Série d'instructions de fonctionnement normal des réacteurs de notre avion ou centrale nucléaire

    Else

      Alerte !

       Série d'instructions type : Arrêter le fonctionnement des réacteurs de notre avion ou centrale nucléaire

 End If

Une catastrophe due à ABS(Alpha-x)=Epsilon de l'ordre de 10^-17 . Une mauvaise interprétation de la machine par ignorance du développeur du logiciel de commande !  alors que se sont les instructions de fonctionnement des réacteurs pour Alpha=x qui devront normalement s'exécutées !!! mais malheureusement c'est trop tard. Ce genre de truc est arrivé dans l'histoire de la programmation informatique ! Donc pour protéger la fiabilité des résultats de nos logiciels de calcul numérique et pour ne pas avoir des surprises à la réalisation, il faut prendre en considération cet aspect dû à ce que nous appelons en informatique les nombres flottants de simple et double précision liés à la capacité de nos machines. Et c'est la raison pour laquelle j'ai dit : une machine restera tjrs et pour tjrs une machine !!!  

A SUIVRE ...  

comment_125412

Bonjour

 

C'est pourquoi la programmation est quand même une affaire de professionnels expérimentés qui doivent avoir les compétences nécessaires pour prendre en compte de tels problèmes notamment en développant des algorithmes qui peuvent ne pas être la reproduction de la démonstration mathématique. C'est toute la difficulté de la chose.

En plus, il faut gérer la cohérence globale du  système. Par exemple, 2 droites partant d'un point et passant par 2 points qui sont considérés comme confondus par l'application ne doivent pas être considérées comme sécantes. Et ça c'est extrêmement difficile à réaliser.

 

 

 

comment_125414
il y a 7 minutes, piste4 a dit :

Bonjour

 

C'est pourquoi la programmation est quand même une affaire de professionnels expérimentés qui doivent avoir les compétences nécessaires pour prendre en compte de tels problèmes notamment en développant des algorithmes qui peuvent ne pas être la reproduction de la démonstration mathématique. C'est toute la difficulté de la chose.

En plus, il faut gérer la cohérence globale du  système. Par exemple, 2 droites partant d'un point et passant par 2 points qui sont considérés comme confondus par l'application ne doivent pas être considérées comme sécantes. Et ça c'est extrêmement difficile à réaliser.

 

 

 

Je penses que l’expérience ça s’acquière à la tache.C'est en se confrontant au probleme qu'on y trouve des solutions.J'ai recemment été confronté au problème de votre exemple. Pour m'en sortir j'ai juste fais un produit scalaire des vecteurs directeurs des droits( ou de vecteurs quelconques appartenant aux droites) .si le produit scalaire est nul c'est que ces droite sont parallèles.Si en plus deux points appartiennent aux deux droites c'est que les deux droites sont confondus.

je pense hein;)

  • Auteur
comment_125416
il y a 2 minutes, lilhaq93 a dit :

Je penses que l’expérience ça s’acquière à la tache.C'est en se confrontant au probleme qu'on y trouve des solutions.J'ai recemment été confronté au problème de votre exemple. Pour m'en sortir j'ai juste fais un produit scalaire des vecteurs directeurs des droits( ou de vecteurs quelconques appartenant aux droites) .si le produit scalaire est nul c'est que ces droite sont parallèles.Si en plus deux points appartiennent aux deux droites c'est que les deux droites sont confondus.

je pense hein;)

Bonjour

En informatique c'est quoi au juste : Si une variable est nulle ? 

Vous avez l'impression de résoudre le problème en tombant encore une fois dans le même piège !!!!

Cdt

  • Auteur
comment_125418
il y a 32 minutes, piste4 a dit :

Bonjour

 

C'est pourquoi la programmation est quand même une affaire de professionnels expérimentés qui doivent avoir les compétences nécessaires pour prendre en compte de tels problèmes notamment en développant des algorithmes qui peuvent ne pas être la reproduction de la démonstration mathématique. C'est toute la difficulté de la chose.

En plus, il faut gérer la cohérence globale du  système. Par exemple, 2 droites partant d'un point et passant par 2 points qui sont considérés comme confondus par l'application ne doivent pas être considérées comme sécantes. Et ça c'est extrêmement difficile à réaliser.

 

 

 

Bonjour

Il y a un proverbe qui dit : c'est en forgeant qu'on devient forgeron !!!

Donc ce n'est pas une affaire exclusive des professionnels expérimentés,  mais éventuellement des amateurs passionnés par la programmation informatique pour devenir des professionnels

Cdt

comment_125425
Il y a 1 heure, lilhaq93 a dit :

:D j'ai bien sur considéré une erreur très petite.

Le problème est là. C'est quoi très petit? Puis quelle est la conséquence de ce très petit pour l’intersection des droites sur le très petit pour déterminer les points confondus? Puis sur le très petit pour déterminer l'appartenance d'un point à une droite? Et ainsi de suite...

 

Modifié par piste4

  • Auteur
comment_125430

Rebonjour

En mathématique Pi vaut  3,141592653589793238462... sur nos PC machine Pi est représentée par 3,1415926535897900000000

14 chiffres après la virgule  seulement c'est la capacité maximale de stockage de nos PC

A SUIVRE ...  

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque: votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invités
Répondre à ce sujet…