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

Mathématiques Discussion :

Programmation d'une fonction mathématique


Sujet :

Mathématiques

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2014
    Messages : 16
    Points : 5
    Points
    5
    Par défaut Programmation d'une fonction mathématique
    Bonjour,

    J'aimerais programmer cette fonction T= sum (de 1 à infini)[cos(n*pi)*exp(-n²pi²a*t/e²)

    j'ai commencé à le faire et à essayer de la tracer mais ça ne marche pas.

    Cdt
    vitroze

  2. #2
    Membre éprouvé
    Avatar de ol9245
    Homme Profil pro
    Chercheur
    Inscrit en
    Avril 2007
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Avril 2007
    Messages : 985
    Points : 1 158
    Points
    1 158
    Billets dans le blog
    1
    Par défaut
    tu as fait quoi jusqu'à présent ?
    la seule difficulté est de déterminer le pas d'intégration à chaque moment.
    Il y a des méthodes bourrin et d'autres plus sophistiquées tout dépend de ce que tu as besoin.

    C'est dans la vraie vie ton problème ? ou dans tes études ?
    "La vraie grandeur se mesure par la liberté que vous donnez aux autres, et non par votre capacité à les contraindre de faire ce que vous voulez." Larry Wall, concepteur de Perl.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2014
    Messages : 16
    Points : 5
    Points
    5
    Par défaut
    j'ai tapé ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function [y]=fct(e,a,x,N,tps)
    dt=0.01; %pas de temps
    tps=dt*tps; % vecteur temps
    n=1:1:N;
    y=zeros(0,tps);
    for t=0:dt:tps
        y=sum((cos((n.*pi.*x)./e)).*(exp((-(n.^2.*pi^2.*a.*t))./e^2)));
    end
    end
    plot(t,y);
    j'ai utilisé un vecteur mais le problème à la sortie je n'ai pas de vecteur (y) et donc mon tracer ne marche pas.

  4. #4
    Membre éprouvé
    Avatar de ol9245
    Homme Profil pro
    Chercheur
    Inscrit en
    Avril 2007
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Avril 2007
    Messages : 985
    Points : 1 158
    Points
    1 158
    Billets dans le blog
    1
    Par défaut
    y c'est l'intégrale selon t.
    plusieurs valeurs de t -> une valeur de y
    "La vraie grandeur se mesure par la liberté que vous donnez aux autres, et non par votre capacité à les contraindre de faire ce que vous voulez." Larry Wall, concepteur de Perl.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2014
    Messages : 16
    Points : 5
    Points
    5
    Par défaut
    Normalement, si je le calcul à la main pour un t donné, je calcule l'expression (cos*exp) pour tt les n, puis je fais la somme de tous les cos*exp . Et je recommence pour un autre t donné. Mais à la fin j'ai un y pour un t. Ainsi, j'aimerais tracer y en fonction de t.
    Mais, j'aimerais savoir si mon code matlab est bon, car ça me semble bizarre que je n'ai pas de tracer.

    Je me demande si à chaque itération mon y est écrasé par le nouveau t de la nouvelle itération.


    Citation Envoyé par ol9245 Voir le message
    y c'est l'intégrale selon t.
    plusieurs valeurs de t -> une valeur de y

  6. #6
    Membre éprouvé
    Avatar de ol9245
    Homme Profil pro
    Chercheur
    Inscrit en
    Avril 2007
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Avril 2007
    Messages : 985
    Points : 1 158
    Points
    1 158
    Billets dans le blog
    1
    Par défaut
    envoie un code "jouable", que je puisses faire "run" et voir une de tes courbes (ou pas)
    "La vraie grandeur se mesure par la liberté que vous donnez aux autres, et non par votre capacité à les contraindre de faire ce que vous voulez." Larry Wall, concepteur de Perl.

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2014
    Messages : 16
    Points : 5
    Points
    5
    Par défaut
    Pour modéliser cette équation: T(t)= sum (de n=1 à infini)[cos(n*pi)*exp(-n²pi²a*t/e²)
    J'ai fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    clear all
    close all
     
    e=0.005;
    dt=1;
    t=0;
    N=140;
    Y=0;
    for n=0:N
        t=t+dt;
        for j=1:N
            y(j)=cos((j*pi*x))*(exp((-(j^2*pi^2*t)/e^2));
        end
         Y=Y+sum(y);
        figure(1)
        plot(t,Y,'*');
    end
    J'ai modifié le code de tout à l'heure, pour essayer de le tracer en direct et y est incrémenter à chaque boucle. Mais on peut mettre t sous une boucle et n sous la forme d'un vecteur???

  8. #8
    Membre éprouvé
    Avatar de ol9245
    Homme Profil pro
    Chercheur
    Inscrit en
    Avril 2007
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Avril 2007
    Messages : 985
    Points : 1 158
    Points
    1 158
    Billets dans le blog
    1
    Par défaut
    ton code ne marche pas. erreurs en pagaille. merci d'envoyer des codes au moins débuggés et testés pour qu'on puisse t'aider dessus.
    "La vraie grandeur se mesure par la liberté que vous donnez aux autres, et non par votre capacité à les contraindre de faire ce que vous voulez." Larry Wall, concepteur de Perl.

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2014
    Messages : 16
    Points : 5
    Points
    5
    Par défaut
    Désoé, je viens de voir des coquilles. Voici un code correct
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    clear all
    a=1e-5;
    e=0.005;
    dt=1;
    t=0;
    N=140;
    Y=0;
    for n=1:N
        t=t+dt;
        for j=1:N
          y(j)=cos((j*pi/e)*(exp((-(j^2*pi^2*a*t)/e^2)));
        end
         Y(n)=sum(y);
        figure(1)
        plot(t,Y,'*');
    end
    J'aimerais savoir si ce code correspond à la formule

    Dans l'équation, je calcule pour T(t=1), la somme des cos(n)exp(n..) pour tous les n et je stocke la somme dans un case du tableau du vecteur y, et de même pour T(t=2).
    Puis, je trace y en fonction de t.

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2014
    Messages : 16
    Points : 5
    Points
    5
    Par défaut
    C'est bon, je viens juste de le reprendre et ça marche correctement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for t=1:1:1000
        j=1:10;
        y(t)=sum((cos((j.*pi)./e).*(exp((-(j.^2*pi^2*a*t)./e^2));
    end
    plot(y);

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

Discussions similaires

  1. Programme d'une fonction mathématique
    Par uuioga dans le forum C
    Réponses: 12
    Dernier message: 24/10/2007, 18h24
  2. Tracer ellipse à partir d'une fonction mathématique
    Par juli1_h dans le forum Mathématiques
    Réponses: 2
    Dernier message: 13/03/2007, 09h43
  3. codage du calcul de dérivée d'une fonction mathématique
    Par pispa2005 dans le forum Mathématiques
    Réponses: 5
    Dernier message: 08/01/2005, 20h54
  4. Programmation d'une fonction dans Rn
    Par simone.51 dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 12/11/2004, 11h30
  5. Créer une fonction mathématique pendant l'exécution
    Par zeprogrameur dans le forum Langage
    Réponses: 5
    Dernier message: 09/07/2004, 11h36

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