Répondre à la discussion
Affichage des résultats 1 à 19 sur 19

Remaniement d'une expression



  1. #1
    PA5CAL

    Remaniement d'une expression


    ------

    Bonjour à tous

    J'ai actuellement à faire face à un problème dans un logiciel auquel je soumets une formule qu'il est incapable de traiter à cause d'un dépassement de capacité. Pour des raisons de coût et de temps, il n'est pas envisageable de modifier ni de réécrire ce logiciel (ça prendrait des mois, voire des années). J'ai donc cherché, mais sans succès jusqu'à maintenant, à modifier ma formule afin de ne pas provoquer de dépassement de capacité.

    La formule est la suivante:
    avec

    Typiquement, on a A=25, B=1, C=0,32 et D=5,4, et la formule doit être évaluée pour des valeurs de x donnant f(x) de l'ordre de quelques milliers. Or, dans ces conditions, l'exponentielle et le sinus hyperbolique donnent des valeurs dépassant les 10127 autorisés par le logiciel.

    Je vous serais très reconnaissant si vous pouviez m'aider à reformuler f(x) de manière à ne pas dépasser 10127 dans les calculs intermédiaires.

    Merci d'avance.


    -----
    Dernière modification par PA5CAL ; 17/05/2006 à 15h34.

  2. #2
    rvz

    Re : Remaniement d'une expression

    Salut,

    Je ne sais pas quel est l'usage que tu veux faire de cette formule, mais à défaut, tu peux peut-être remplacer sh par exp(|x|)/2. Et aussi argsh par ln(2* )
    Sauf erreur, cela te donne en première approximation
    (C sh(D|x|)+B)/cos(x).

    __
    rvz, comment ça c'est grossier ?

  3. #3
    PA5CAL

    Re : Remaniement d'une expression

    Merci de ta réponse rapide.

    Malheureusement, cette approximation ne peut pas convenir, car la même expression doit également pouvoir être évaluée pour des valeurs de x proches de 0. C'est là toute la difficulté.

    Il ne m'est pas non plus possible d'avoir recours à un algorithme, ni à plusieurs expressions avec des plages de définition différentes.
    Dernière modification par PA5CAL ; 17/05/2006 à 15h57.

  4. #4
    PA5CAL

    Re : Remaniement d'une expression

    Pour tout dire, la formule permet de simuler un cycle de magnétisation d'un noyau de transformateur électrique.

    Je recherche avant tout à avoir une formule exactement équivalente, sans approximation. Mais s'il n'est pas possible d'obtenir une re-formulation exacte de f(x), je pourrais me contenter d'une approximation avec une erreur de 0,1% pour x variant entre -0,45.pi et +0,45.pi .

  5. A voir en vidéo sur Futura
  6. #5
    matthias

    Re : Remaniement d'une expression

    Et tu ne peux pas utiliser une table de valeurs que tu aurais précalculée ?

  7. #6
    PA5CAL

    Re : Remaniement d'une expression

    Je ne peux pas utiliser de tables pré-calculées non plus. Le logiciel ne les accepte pas. De plus, les coefficients A, B, C et D sont amenés à varier, et l'intérêt de cette simulation repose justement sur l'utilisation de cette formule. Je connais des simulateurs qui stockent des millions de valeurs pour obtenir le même résultat (pour un seul jeu de coefficients), et ce sont de véritables usines à gaz.

  8. #7
    matthias

    Re : Remaniement d'une expression

    Pour une précision de 0.1%, il ne doit pas y avoir besoin d'énormément de valeurs à coefficients fixés, mais bon ça ne répond pas à la question ...

  9. #8
    rvz

    Re : Remaniement d'une expression

    Citation Envoyé par PA5CAL
    Merci de ta réponse rapide.

    Malheureusement, cette approximation ne peut pas convenir, car la même expression doit également pouvoir être évaluée pour des valeurs de x proches de 0. C'est là toute la difficulté.

    Il ne m'est pas non plus possible d'avoir recours à un algorithme, ni à plusieurs expressions avec des plages de définition différentes.
    Attends un peu quand même. Pourqui ne pas utiliser la formule exacte quand tu peux, i.e. notamment au voisinage de zéro, et prendre la formule que je t'ai donnée quand l'ordi ne peut pas traiter l'opération ?

    __
    rvz

  10. #9
    PA5CAL

    Re : Remaniement d'une expression

    Citation Envoyé par rvz
    Attends un peu quand même. Pourqui ne pas utiliser la formule exacte quand tu peux, i.e. notamment au voisinage de zéro, et prendre la formule que je t'ai donnée quand l'ordi ne peut pas traiter l'opération ?

    __
    rvz
    Le logiciel ne permet pas de traiter plusieurs plages de définition à la fois ni de faire des tests sur la valeur de x. Je n'ai droit qu'à une formulation unique de type f(x)= expression utilisant seulement les fonctions mathématiques usuelles.

  11. #10
    PA5CAL

    Re : Remaniement d'une expression

    En revanche, c'est une idée à suivre. Il est peut-être possible de trouver une fonction qui limite la valeur du "contenu" de l'exponentielle et du sinus hyperbolique de manière à ne pas provoquer un dépassement de capacité lors de l'évaluation, et qui compense avec un autre terme pour obtenir la valeur approchée sus-citée quand f(x) devient grand.

    Il reste maintenant à savoir comment faire, et à évaluer la précision obtenue...
    Dernière modification par PA5CAL ; 17/05/2006 à 16h57.

  12. #11
    invite7863222222222
    Invité

    Re : Remaniement d'une expression

    Et un développement limité à partir d'un x0 que le logiciel peut calculer ?

  13. #12
    PA5CAL

    Re : Remaniement d'une expression

    Citation Envoyé par jreeman
    Et un développement limité à partir d'un x0 que le logiciel peut calculer ?
    Merci. Je regarde ce que ça peut donner.

  14. #13
    matthias

    Re : Remaniement d'une expression

    En posant :

    et

    on devrait obtenir :



    Enfin si je ne me suis pas trompé.
    Et tous les termes devraient être calculables dans la plage considérée.
    Dernière modification par matthias ; 17/05/2006 à 17h13.

  15. #14
    PA5CAL

    Re : Remaniement d'une expression

    Citation Envoyé par matthias
    En posant :

    et

    on devrait obtenir :



    Enfin si je ne me suis pas trompé.
    Et tous les termes devraient être calculables dans la plage considérée.
    Merci beaucoup ! C'est génial , ça a l'air de passer comme il faut (par exemple e-2h(x) donne 0 dès que x est trop grand, mais ça ne provoque pas d'erreur au niveau du logiciel).

    Il ne me reste qu'à vérifier quelle précision j'obtiens, au moins pour la documentation des résultats.

    Merci à tous de votre aide.

  16. #15
    matthias

    Re : Remaniement d'une expression

    Citation Envoyé par PA5CAL
    Il ne me reste qu'à vérifier quelle précision j'obtiens
    Il n'y a pas d'approximation dans la formule, donc à moins que je n'ai commis une erreur n'importe quel logiciel digne de ce nom devrait largement rentrer dans la précision de 0,1%.

    Au fait, j'ai sorti le ln(2) mais ce n'est pas très intelligent, autant le réintégrer dans l'autre logarithme.

  17. #16
    rvz

    Re : Remaniement d'une expression

    Citation Envoyé par matthias
    Formule peu sympathique
    Bravo Matthias !
    En fait, si je ne trompe pas, tu dis que sh(x) = exp(x)/2 (1-exp(-2x)), c'est ça ?
    Effectivement, maintenant que tu le dis, ça paraît si évident !

    __
    rvz, que encore

  18. #17
    matthias

    Re : Remaniement d'une expression

    Citation Envoyé par rvz
    Citation Envoyé par Matthias
    Formule peu sympathique
    Tiens, je ne me souviens pas avoir dit ça ...

    Sinon oui, j'ai juste factorisé par les exponentielles de termes positifs. Ca me fait penser qu'il risque d'y avoir un problème pour les x négatifs, donc il faut utiliser le fait que la fonction est impaire.

  19. #18
    rvz

    Re : Remaniement d'une expression

    Si si si, je t'assure, tu as dit ça...

    __
    rvz

  20. #19
    matthias

    Re : Remaniement d'une expression

    Citation Envoyé par rvz
    Matthias, tu es un Dieu !!!
    Non arrête là tu me gênes, c'était juste une petite factorisation.

    Non mais c'est quoi ces fausses citations, je te jure ...

Discussions similaires

  1. Dérivation d'une expression
    Par ti_ouf dans le forum Mathématiques du supérieur
    Réponses: 1
    Dernier message: 01/12/2007, 16h50
  2. déterminer le signe d'une expression
    Par squallhb dans le forum Mathématiques du collège et du lycée
    Réponses: 2
    Dernier message: 23/09/2007, 17h46
  3. Inverse d'une matrice sous la forme d'une expression polynomiale.
    Par Ergamen dans le forum Mathématiques du supérieur
    Réponses: 4
    Dernier message: 28/05/2006, 15h12
  4. Expression d'une fonction
    Par TITIMAN dans le forum Mathématiques du supérieur
    Réponses: 8
    Dernier message: 27/12/2005, 16h05
  5. Limite d'une expression
    Par Bleyblue dans le forum Mathématiques du supérieur
    Réponses: 23
    Dernier message: 08/04/2005, 22h54