comment écrire la dérivé seconde sous fortran
Répondre à la discussion
Affichage des résultats 1 à 11 sur 11

comment écrire la dérivé seconde sous fortran



  1. #1
    inviteddea7c56

    comment écrire la dérivé seconde sous fortran


    ------

    bonjour a tous,
    SVP comment je peus ecrire la dérivé seconde de u:

    d2u/dy2

    sous fortran

    merci

    -----

  2. #2
    invitea3eb043e

    Re : comment écrire la dérivé seconde sous fortran

    Je suppose que tu as les valeurs de u à des intervalles réguliers de y, soit u(n).
    D est l'écart en y entre 2 mesures.
    La dérivée u' en n, c'est [u(n+1) - u(n)]/D
    La dérivée u' en (n-1), c'est [u(n) - u(n-1)]/D
    et la dérivée seconde sera [u'(n) - u'(n-1)]/D

    Finalement, on aura que la dérivée seconde en n sera [u(n+1) + u(n-1) - 2 u(n)]/D²
    Si u est une fonction parabolique, cette formule est même rigoureuse, autrement, elle n'est qu'approchée.

  3. #3
    inviteddea7c56

    Re : comment écrire la dérivé seconde sous fortran

    Merci jean paul pour votre réponse, aufaite moi je définie la dérivé premiere comme suit:

    Code:
    	
    dudx=(u(i+1,j)-u(i,j))/xcv(i)
    SVP comment je peux définir ma dérivé second

    je vous remercie

  4. #4
    invitea3eb043e

    Re : comment écrire la dérivé seconde sous fortran

    Ta formule semble suggérer que ton pas n'est pas constant, puisque tu écris xcv(i) qui doit être la différence des abscisses entre le point i et le point i+1.
    Ca change tout car il faut voir si ce pas varie considérablement ou pas.
    Si le pas xcv varie peu, tu peux calculer la dérivée en i puis en i-1, faire la différence et diviser par la moyenne entre xcv(i) et xcv(i-1).
    Mais on peut faire plus simple en essayant de trouver la parabole qui passe par les points (i-1), i et (i+1)
    Déjà décaler les axes et poser x1 = x(i) - x(i-1) et u1 = u(i) - u(i-1) et de même :
    x2 = x(i+1) - x(i) et u2 = u(i+1) - u(i)
    Ca revient à chercher une parabole u = ax² + bx +c qui passe par les 3 points :
    x(i-1) ; u(i-1)
    x(i);u(i)
    x(i+1);u(i+1)
    ou encore, avec le décalage du 1er point la parabole y = a x² + bx qui passe par l'origine et les 2 points
    x1 ; u1
    x2 ; u2
    En fait, on ne cherche que la dérivée seconde, soit 2 a qui se calcule aisément en écrivant le système :
    u1 = a x1² + bx1
    u2 = a x2² + b x2
    La variable j ne fait que compliquer l'écriture, je l'ai omise.

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

    Re : comment écrire la dérivé seconde sous fortran

    je vous remercie encore une fois jean paul pour votre réponse.
    mais tout mon programme est écrié en fonction de i et j, donc je ne peux pas écrire la derivé seconde de mon u autrement

  7. #6
    invitea3eb043e

    Re : comment écrire la dérivé seconde sous fortran

    Ca ne change rien, il suffit de mettre u(i,j) au lieu de u(i) dans mes équations. j est une variable muette, c'est un simple jeu d'écritures.

  8. #7
    inviteddea7c56

    Re : comment écrire la dérivé seconde sous fortran

    ok merci bien.
    donc SVP est ce que c'est correcte l'ecriture suivante:

    Code:
    d2udx2=u(i+1,j)+u(i-1,j)-2*u(i,j)/xcv(i)*xcv(i)

  9. #8
    invitea3eb043e

    Re : comment écrire la dérivé seconde sous fortran

    Manque des parenthèses et ça ne vaut que si le pas xcv(i) est constant. S'il varie beaucoup, il faut s'y prendre autrement, comme je le disais.

  10. #9
    inviteddea7c56

    Re : comment écrire la dérivé seconde sous fortran

    ok, mon pas est constant.
    donc
    si ma dérivé première s'écrit:

    Code:
    dudx=(u(i+1,j)-u(i,j))/xcv(i)
    l'ecriture de la dérive seconde est comme suit?:

    Code:
    d2udx2=u(i+1,j)+u(i-1,j)-2*u(i,j)/(xcv(i)*xcv(i))
    je vous remercie de me confirmer

  11. #10
    invitea3eb043e

    Re : comment écrire la dérivé seconde sous fortran

    Manque 2 parenthèses à gauche, sinon le quotient ne concernera que les 2*u(i,j)

  12. #11
    inviteddea7c56

    Re : comment écrire la dérivé seconde sous fortran

    vous voulez dire?:

    Code:
    d2udx2=(u(i+1,j)+u(i-1,j)-2*u(i,j))/(xcv(i)*xcv(i))
    vous aviez dit:
    "sinon le quotient ne concernera que les 2*u(i,j)"

    j'ai pas bien compris ce que vous voulez dire!

    merci

Discussions similaires

  1. [fortran] lire/ecrire un fichier binaire : quelques interrogations sur des syntaxes
    Par inviteafe1cd13 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 03/03/2010, 12h56
  2. pourquoi dois dérivé une seconde fois?
    Par invite2bbd7f81 dans le forum Mathématiques du collège et du lycée
    Réponses: 3
    Dernier message: 26/01/2010, 10h53
  3. programmer en c ou en fortran sous mac-intel
    Par invite7edac043 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 03/03/2009, 11h20
  4. erreur 'irrésolue' sous fortran
    Par invitea0f03ccc dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 05/01/2009, 16h36
  5. Compilateur Fortran sous Vista
    Par invite31b5cbad dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 15/02/2008, 13h24