IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

equation avec ordres de grandeur différents


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Par défaut equation avec ordres de grandeur différents
    Bonjour tous,

    j'ai un petit soucis car je travail actuellement avec des ordres de grandeur très différent et j'aimerai savoir comment faire
    pour programmer ce que je souhaite faire.

    je souhaite programmer cette multiplication matricielle :
    ==> cf. PJ

    le soucis est que dans mon probleme j'ai des ordre de grandeur très différent !

    Par exemple :
    x_{10}=1e30
    x_{20}=0
    les valeur de b_1 et b_2 sont liées à ces valeurs de x
    si x_{10} est très grand c'est la meme chose pour b_1

    Ce que je cherche
    je cherche une petite technique mathématique pour ramener ceci à une equation qui manipule des ordres de grandeurs equivalent
    mais je ne sais pas trop comment faire sur ce cas simple.

    ps: voyez vous une astuce simple ? ou je dois faire du préconditionnement ? (je ne connais pas vraiment)

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    peut-être raisonner en pourcentage ??

    val min - max de x10
    val min - max de x20

    transformer tout en val-valmin/(val-max-valmin). Là tous tes coeffs seront entre 0 et 1.


    Une fois la solution trouvée, tu remets les bonnes valeurs :

    vraie valeur = val min + valeur*(valmax-valmin)

  3. #3
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Par défaut
    Salut!
    Si tes données sont des grandeurs physiques, tu choisis des unités mieux adaptées pour les exprimer, par exemple des nanosecondes ou des gigahertz.
    Jean-Marc Blanc

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Par défaut
    merci pour vos réponses.

    - je vais regarder si j'arrive à faire ceci avec les pourcentages car ça me semble une bonne solution

    - le changement d'unité je ne pense pas que ça revolve mon probleme :
    en fait j'ai une boite avec par exemple 10molecules et une autre 1e50 molecules et je ne peux peut pas faire vraiment autrement (ou je change l'unité d'une boite mais pas de l'autre.)

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Par défaut
    Citation Envoyé par souviron34 Voir le message
    peut-être raisonner en pourcentage ??
    val min - max de x10
    val min - max de x20
    transformer tout en val-valmin/(val-max-valmin). Là tous tes coeffs seront entre 0 et 1.
    Une fois la solution trouvée, tu remets les bonnes valeurs :
    vraie valeur = val min + valeur*(valmax-valmin)
    souviron j'ai beaucou ton idée mais j'ai un peu de mal à la mettre en place
    car je ne comprends pas vraiment tes notations, pourrais tu detailler un peu plus s'il te plait ?

    je te remercie

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par membreComplexe12 Voir le message
    souviron j'ai beaucou ton idée mais j'ai un peu de mal à la mettre en place
    car je ne comprends pas vraiment tes notations, pourrais tu detailler un peu plus s'il te plait ?

    je te remercie
    Si l'on prend (je ne sais pas si c'est le cas) comme input tes x10 et x20...

    Ou quel que soit ce que tu as en entrée en fonction de ton nombre de molécules..

    Pour chaque entrée (dépendante) de x10, tu calcules d'abord le min et max. Puis tu remplaces ces valeurs par le pourcentage, en stockant le min et le max (pourcentage = (valeur-min)/(max - min)).

    Même chose pour les entrées () de x20..

    Là tu fais tes calculs avec que des quantités entre 0 et 1.

    Une fois tes calculs faits, pour avoir les bonnes valeurs de sortie, tu appliques la règle de trois inverse avec les min-max pour revenir dans le bon système.. (valeur = min + pourcentage*(max-min))

    ça revient au changement d'unité de FR119492 mais en faisant des unités relatives..



    Sinon, si la différence porte seulement sur le nombre (et pas les valeurs comme tu semblais le suggérer), alors tu remplaces chaque entrée par entrée/nombre, et tu multiplies chaque sortie par nombre..

  7. #7
    Membre Expert
    Homme Profil pro
    Chercheur
    Inscrit en
    Mars 2010
    Messages
    1 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 218
    Par défaut
    Citation Envoyé par membreComplexe12 Voir le message
    le soucis est que dans mon probleme j'ai des ordre de grandeur très différent !
    Et alors? Concrètement, quel est le problème?
    Donne un exemple précis avec des valeurs pour qu'on comprenne.

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Par défaut
    j'ai mon système qui va etre très mal conditionné si j'ai des ordres de grandeurs tres différent et donc une precision sur la solution mediocre ?

    ps : ici je n'ai pas presenté mon systeme sous forme classique car la matrice etait tres facile à inverser

  9. #9
    Membre Expert
    Homme Profil pro
    Chercheur
    Inscrit en
    Mars 2010
    Messages
    1 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 218
    Par défaut
    Citation Envoyé par membreComplexe12 Voir le message
    j'ai mon système qui va etre très mal conditionné si j'ai des ordres de grandeurs tres différent et donc une precision sur la solution mediocre ?

    ps : ici je n'ai pas presenté mon systeme sous forme classique car la matrice etait tres facile à inverser
    Je ne comprends plus. Tu dois calculer un produit matrice-vecteur ou résoudre un système linéaire?

  10. #10
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Je crois que ce qu'il voulait dire au départ est que n'importe quel calcul (matriciel ou non) où les coeffs ont des écarts gigantesques peut être potentiellement biaisé, voire faux, à cause des problèmes numériques.. (arrondis, comparaisons..)

    Ce qui peut être amplifié par/pour des méthodes style pivot ou autre "convergence" ou autre..

    Si j'ai bien compris....

  11. #11
    Membre Expert
    Homme Profil pro
    Chercheur
    Inscrit en
    Mars 2010
    Messages
    1 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 218
    Par défaut
    Citation Envoyé par souviron34 Voir le message
    Je crois que ce qu'il voulait dire au départ est que n'importe quel calcul (matriciel ou non) où les coeffs ont des écarts gigantesques peut être potentiellement biaisé, voire faux, à cause des problèmes numériques.. (arrondis, comparaisons..)
    Par définition, toutes les opérations entre flottants sont potentiellement biaisées, et rares sont les cas où les calculs sont exacts. C'est totalement indépendant de la présence de contrastes entre les flottants impliqués. La manière dont ces erreurs d'arrondis sont amplifiées au cours des calcul dépend bien évidemment des données ET de l'algorithme. Résoudre un système linéaire et calculer un produit matrice-vecteur, ce n'est pas la même chose du point de vue de la stabilité des calculs.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. numérique: ordre de grandeur différents
    Par membreComplexe12 dans le forum Mathématiques
    Réponses: 4
    Dernier message: 13/09/2013, 00h38
  2. Réponses: 3
    Dernier message: 24/09/2010, 01h03
  3. autoscale d'un graphique avec courbes de différents ordre de grandeur
    Par oliv27400 dans le forum Interfaces Graphiques
    Réponses: 4
    Dernier message: 28/06/2010, 14h04
  4. Réponses: 8
    Dernier message: 09/03/2005, 10h47
  5. UNION de deux SELECT avec nombre d'arguments différents
    Par orus8 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 16/07/2004, 14h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo