Remaniement d'une expression
Répondre à la discussion
Affichage des résultats 1 à 19 sur 19

Remaniement d'une expression



  1. #1
    invite936c567e

    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.


    -----

  2. #2
    invite6b1e2c2e

    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
    invite936c567e

    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.

  4. #4
    invite936c567e

    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
    invitec314d025

    Re : Remaniement d'une expression

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

  7. #6
    invite936c567e

    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
    invitec314d025

    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
    invite6b1e2c2e

    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
    invite936c567e

    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
    invite936c567e

    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...

  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
    invite936c567e

    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
    invitec314d025

    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.

  15. #14
    invite936c567e

    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
    invitec314d025

    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
    invite6b1e2c2e

    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
    invitec314d025

    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
    invite6b1e2c2e

    Re : Remaniement d'une expression

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

    __
    rvz

  20. #19
    invitec314d025

    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 invitebd754bec 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 invite1b6126cd 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 invited89c0c70 dans le forum Mathématiques du supérieur
    Réponses: 4
    Dernier message: 28/05/2006, 15h12
  4. Expression d'une fonction
    Par inviteed2224fd 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