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

MATLAB Discussion :

Probleme : Fonction integree


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2013
    Messages : 12
    Par défaut Probleme : Fonction integree
    Bon me voila au dernier problème qui me semble a la fois facile et difficile :



    Pour le moment je ne code rien, je réfléchis juste a comment le traiter. Je pensais faire passer le membre le plus a droite de l'équation avec les Ts et Ti du cote de l'intégration. Calculer mon intégration. Puis coder tout ca dans matlab pour avoir mon T(Z,t).

    La ou je bug c'est que je ne sais pas si la fonction intégrée est une fonction particulière de Matlab, un peu comme la fonction récursive ?
    Dans le wiki, je trouve ca :

    Y = erf(X) returns the value of the error function for each element of real array X.
    Est-ce que je dois calculer l'integrale avec erf(X) ? X correspondrait a (e^-u^2) dans ce cas la ?

    On a pas encore finit tout le cours sur Matlab donc il y a des éléments que je ne connais pas encore. Après y a aussi le problème de la fonction tridimensionnelle mais la je pense que je devrai m'en sortir en regardant mon livre de syntaxe.

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Par défaut
    Bonjour,

    tu te compliques la vie, l'intégrale, c'est juste pour te donner la définition de la fonction erf, tu n'as pas besoin de l'utiliser ici puisque l'énoncé te dit d'utiliser la fonction erf() de matlab. Et X correspond à z/(2*racine(alpha*t)), et l'on te demande de calculer T(z,t) pour certaines valeurs de z et de t.
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2013
    Messages : 12
    Par défaut
    Bon j'ai terminé le code. Merci de la piste :

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    %%Probleme 10
    %Calculer la temperature ambiante du sol
    %alpha est la diffusité thermique, alpha = 0.128 * 10^-6;
    %t est le temps
    %z est la profondeur
    %Ti est la temperature ambiante du sol souterrain
    %Ts est la temperature a la surface du sol
    %Tzt est est la temperature a une profondeur et a un temps donné 
    %fonctions anonymes
    %fonction anonyme Y=erf(x) avec x = z/(2*sqrt(alpha*t)) 
    Y=@(z,t) erf(z./(2*sqrt((0.128 * 10^-6).*t)));
    %fonction anonyme pour calculer Tzt avec Tzt = (Ti-Ts) + Ts
    Tzt = @(Y,Ti,Ts) (Ti - Ts).*Y + Ts;
    %%
    %Reponse a
    Y1 = Y(1.5,2.592*10^6);
    Tzt1 = Tzt(Y1,10,-20);
    disp('La réponse a la reponse a est :')
    disp(Tzt1)
    %%
    %Reponse b
    temps = 0:3600*24:31*3600*24;
    Y2 = Y(1,temps);
    Tzt2 = Tzt(Y2,10,-20);
    subplot(1,2,1)
    plot(temps/(3600*24),Tzt2)
    grid off
    xlabel('Temps')
    ylabel('Temperature')
    axis([0,31,0,15])
    title('Reponse b')
    %%
    %Reponse c
    format long
    z1 = 0:0.1:3;
    temps1 = 0:3600*24:30*3600*24;
    Y3 = Y(z1,temps1);
    Tzt3 = Tzt(Y3,10,-20);
    subplot(1,2,2)
    plot3(temps1/(3600*24),z1,Tzt3)
    grid on 
    xlabel('Temps')
    ylabel('Profondeur')
    zlabel('Temperature')
    axis([0,30,0,3,0,15])
    title('Reponse c')
    Par contre pour la réponse c, ma courbe me donne un résultat étrange, la température part de 0 puis va vers 10. Je me dis qu'a une profondeur de 0 et a t=0 on devrait normalement trouver 10 degré mais ca me donne juste une erreur quand je vérifie les résultats dans la matrice.
    Est-ce que les lignes de calcul que j'ai mise dans les fonctions anonymes semblent juste ? Il y a peut être quelque chose qui m'a échappé qund j'ai fait le graphe 3D ?

Discussions similaires

  1. [XSL]Probleme fonction recursive
    Par Le-Cortex dans le forum XSL/XSLT/XPATH
    Réponses: 9
    Dernier message: 12/12/2005, 15h10
  2. [Mail] Probleme fonction mail()
    Par tissot dans le forum Langage
    Réponses: 1
    Dernier message: 14/11/2005, 12h55
  3. problème fonctions callback
    Par youp_db dans le forum GTK+ avec C & C++
    Réponses: 1
    Dernier message: 02/10/2005, 14h47
  4. probleme fonction gethostbyname
    Par oclone dans le forum Développement
    Réponses: 6
    Dernier message: 14/04/2005, 10h31
  5. probleme fonction syntaxe
    Par gIch dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 28/02/2005, 09h52

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