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 :

Calcul d' intégrale [Débutant]


Sujet :

MATLAB

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2012
    Messages : 45
    Points : 28
    Points
    28
    Par défaut Calcul d' intégrale
    Bonjour,

    je voudrais calculer une intégrale en utilisant la fonction quad, mais je ne vois pas comment exprimer ma fonction T, en fonction de ma variable lambda...
    Voici mon programme:

    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
    function T = integral(????)
     
    fichier='XXX.asc';
    S=load(fichier);
     
     
    i=2:152;
     
    for k=1:1024
     
        Q= S(k,1);
        R = sum(S(k,i));
        T(k,:) = [Q R];
    end
     
    plot(T);

    En fait j'ai un tableau de 1024x152, dont la première colonne contient l'ensemble des lambda (ils correspondent aux S(k,1)) servant pour l'axe des abscisses. Et pour chaque ligne je calcule la somme, et je trace le résultat de cette somme en fonction des lambda.
    La courbe que j'obtiens est bonne (car j'ai la même sous excel), mais sur l'axe des abscisses j'ai les valeurs de k au lieu de lambda ( je ne pense pas que se soit normal).
    Et du coup je ne vois pas comment exprimer ma fonction T en fonction de ma variable lambda, car celle-ci n'apparait pas dans le code vu qu'il s'agit de valeurs de mon tableau...

    Si quelqu'un a une idée.

    Merci

  2. #2
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2012
    Messages : 95
    Points : 150
    Points
    150
    Par défaut
    En premier, il me semble que ta boucle for est inutile.

    Tu peux écrire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        Q= S(:,1);
        R = sum(S(1:1024,2:152),2);
    Pour le reste, je pense que le problème est dans ta manière de définir le plot.
    Ecris:

    et cela doit marcher

    Pour le calcul de l'intégral, je n'ai jamais utilisé quad mais trapz(X,Y) qui doit fonctionner ici il me semble
    Ma version Matlab:Matlab R2011b

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2012
    Messages : 45
    Points : 28
    Points
    28
    Par défaut
    j'ai changé mon programme comme tu l'as dit, ce qui fonctionne très bien (merci). Par contre pour la fonction trapz matlab ne m'affiche aucune valeur...
    Mon programme est le suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    fichier='XXX.asc';
    S=load(fichier);
     
       Q= S(:,1);
       R = sum(S(1:1024,2:152),2);
       plot(Q,R);
     
    Z = trapz(R,Q);

  4. #4
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2012
    Messages : 95
    Points : 150
    Points
    150
    Par défaut
    Corrige moi si je me trompe mais c'est bien en fonction de lambda que tu veux intégrer non?
    (En gros calculer l'aire sous la courbe dessinée juste avant?)

    Donc ce serait plutôt trapz(Q,R) non?
    Ma version Matlab:Matlab R2011b

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2012
    Messages : 45
    Points : 28
    Points
    28
    Par défaut
    Comme j'étais pas sûr j'ai essayé les deux ^^
    mais dans les deux cas ça ne m'affiche rien...

  6. #6
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2012
    Messages : 95
    Points : 150
    Points
    150
    Par défaut
    ton Z n'a aucune valeur?

    Moi j'ai fait cela pour tester:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    S=[1 4 7 10;2 5 8 11;3 6 9 12]
    Q= S(:,1)
     R=sum(S(1:3,2:4),2)
    plot(Q,R)
    trapz(Q,R)
    Et il me dit bien que l'intégrale vaut 48, ce qui correspond à la valeur calculée à la main
    Ma version Matlab:Matlab R2011b

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2012
    Messages : 45
    Points : 28
    Points
    28
    Par défaut
    ...
    Non je n'ai rien moi, dans ma commane window j'ai:
    et c'est tout...
    Peut être que le problème vient de la taille de S.
    S fait 1024 par 152, peut être que c'est trop grand pour utiliser trapz, non?

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2012
    Messages : 45
    Points : 28
    Points
    28
    Par défaut
    je suis stupide...
    J'avais mis après trapz...
    Merci pour votre aide!!

  9. #9
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2012
    Messages : 95
    Points : 150
    Points
    150
    Par défaut
    Bon bah parfait, problème résolu, content d'avoir pu t'aider
    Ma version Matlab:Matlab R2011b

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

Discussions similaires

  1. [quad] Erreur lors d'un calcul d'intégrale
    Par LAUM.FR dans le forum MATLAB
    Réponses: 18
    Dernier message: 26/11/2008, 12h16
  2. Calcul d'intégrale Octave/MATLAB
    Par Padri dans le forum MATLAB
    Réponses: 7
    Dernier message: 09/10/2008, 19h09
  3. Réponses: 7
    Dernier message: 25/09/2008, 12h31
  4. Calcul d'intégrales en PL/SQL
    Par boxsters dans le forum PL/SQL
    Réponses: 2
    Dernier message: 02/05/2007, 09h09
  5. Calcul d'intégrale double
    Par noomane dans le forum Fortran
    Réponses: 4
    Dernier message: 30/04/2007, 01h21

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