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

Fortran Discussion :

Calcul de somme


Sujet :

Fortran

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Juin 2007
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1
    Par défaut Calcul de somme
    Bonjour, voila je suis en train de faire un programme sous fortran 90 et je dois calculer la somme suivante :

    Som=((-1)**n/n**2)*exp((-(4*n**2*(pi**2)*alphac*deltato))/t0**2)*cos(n*pi)

    avec :
    • alphac= 2.4185849e-05
    • deltato=4.2531456e-02
    • t0=1e-4
    Voici le code que j’ai inclus dans mon programme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
            som = 0.d0
    	   do 30 n =1,1000
     
     som = som + ((-1.d0)**n/n**2.d0)*exp((-4.d0*n**2.d0*(pi**2.d0)* alphac*deltato)/t0**2.d0)*cos(n*pi)
     
    30	continue   
    write(*,*)”la somme est”,som
    Le problème que je trouve c’est que la somme est égale toujours à 0, j’ai trouver la source de ce problème, j’ai changé la valeur de t0, en prenant par exemple t0=0.1
    et j’ai vu que ça marche la somme égale à 1.53.
    Alors je vous demande si il y a une solution à ce problème, je pense que c’est à cause de la très faible valeur pour la EXP.

    Merci d’avance

  2. #2
    Membre émérite Avatar de genteur slayer
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2002
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2002
    Messages : 710
    Par défaut
    quel est la déclaration de tes variable?
    si tu les as déclaré en real cela peut ne pas marcher à cause de la précision (en effet 1.e-4**2=1.e-8 et du coup erreur de précision dans le exp)

    utilise des double précision et dexp, dcos, ensuite utilise le "d" au lieu du "e":
    t0=1.d-4

    de plus mets plein de décima à Pi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    real(kind=kind(1.d0)),parameter::pi=4.d0*datan(1.d0)

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    489
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 489
    Par défaut
    Bonjour,

    Bien plus qu'une affaire d'utilisation de simple/double précision; ton "problème", comme tu l'as remarqué, est qu'avec les valeurs des constantes que tu utilises les éléments de ta somme sont tous quasi-nuls (dans l'absolu) donc nuls (parce que précision limitée intrinsèque au calcul numérique).
    Tu peux facilement le vérifier en affichant la valeur de chaque terme (c.-à-d. la contribution pour chaque valeur de n).

    Tout celà est un comportement normal; en quoi y vois-tu un "problème"?

    Ehouarn

    PS: Comme cos(n*pi)=(-1)**n , pour tout n entier, tu peux simplifier d'avantage l'expression de ta somme.

Discussions similaires

  1. [newbie]comment calculer la somme des nb pages sum()?
    Par megapacman dans le forum Débuter
    Réponses: 3
    Dernier message: 13/06/2006, 11h03
  2. [iReport] Calcul de somme de variables et fusion de données
    Par RR instinct dans le forum iReport
    Réponses: 7
    Dernier message: 03/04/2006, 16h04
  3. calculer la somme
    Par pierrot67 dans le forum Bases de données
    Réponses: 5
    Dernier message: 21/03/2006, 22h50
  4. [XSLT] calcul de somme
    Par Mr N. dans le forum XSL/XSLT/XPATH
    Réponses: 9
    Dernier message: 09/09/2005, 12h20
  5. [CR 8.5] Calculer la somme d'une somme
    Par Frederic Vincent dans le forum Formules
    Réponses: 4
    Dernier message: 12/02/2004, 17h53

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