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 :

integrale de x*cos(2x)


Sujet :

MATLAB

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2013
    Messages : 14
    Points : 7
    Points
    7
    Par défaut integrale de x*cos(2x)
    Bonjour,

    comment calculer intégrale F(x)=x*cos(2x) de 1 a 0 , mais en degré.

    merci

  2. #2
    Membre éclairé
    Homme Profil pro
    Doctorant automatique
    Inscrit en
    Janvier 2012
    Messages
    446
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Doctorant automatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2012
    Messages : 446
    Points : 719
    Points
    719
    Par défaut
    avec ode45 en gérant soit-même ses unités
    Je ne réponds pas aux MP techniques. Le forum est là pour ça.
    La raison est simple : il est ennuyeux de répondre à une seule personne, alors que la réponse peut servir à tout le monde.
    Conclusion : n'hésitez pas à utiliser le forum pour poser vos questions.
    Matlab 2005 - ver.7.1.0.183 (R14) Service Pack 3

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2013
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par tachmou Voir le message
    avec ode45 en gérant soit-même ses unités
    une explication sur ode45. svp. exemple .merci

  4. #4
    Membre éprouvé
    Inscrit en
    Août 2010
    Messages
    1 124
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 1 124
    Points : 1 277
    Points
    1 277
    Par défaut
    Bonjour,
    J'ai du raté quelque chose, mais je ne vois pas le rapport avec les ODE.
    cosd() est la fonction matlab qui t’intéresse. L'intégrale se calcule entre autres via
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    integrale = -quad(@(x) x.*cosd(2x),0,1)
    il y a peut être une petite correction à faire, car je n'ai pas trop compris qui était en degrés : l'argument du cos ? x également ?

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2013
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    merci VV33D mais ça ne donne pas la solution en degrés.
    Est-ce qu'il y a la possibilité que MATLAB fonctionne directement en degrés ?

  6. #6
    Membre éprouvé
    Inscrit en
    Août 2010
    Messages
    1 124
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 1 124
    Points : 1 277
    Points
    1 277
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mais ça ne donne pas la solution en degré
    Transforme toi même ta variable x(degrès) en y(radian) et fais le changement de variable ans l'intégrale, sans oublier de changer les bornes

    @FLB: oui mais qu'en est-il du x à l'extérieur de cosd() ?

  7. #7
    FLB
    FLB est déconnecté
    Modérateur
    Avatar de FLB
    Homme Profil pro
    Ing. Aérospatiale
    Inscrit en
    Juin 2003
    Messages
    770
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Ing. Aérospatiale
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2003
    Messages : 770
    Points : 1 185
    Points
    1 185
    Par défaut
    Salut,
    jettes un oeil à la documentation de cosd : l'argument d'entrée est bien en degrés.
    Attention à la coquille :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    integrale = -quad(@(x) x.*cosd(2*x),0,1);

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2013
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par VV33D Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mais ça ne donne pas la solution en degré
    Transforme toi même ta variable x(degrès) en y(radian) et fais le changement de variable ans l'intégrale, sans oublier de changer les bornes

    @FLB: oui mais qu'en est-il du x à l'extérieur de cosd() ?
    oui j'ai transformer mais elle nous donne pas la solution
    parce que le x a extérieur fait le probleme
    est ce que je peux modifier les paramétré de matlab pour qu'il fonctionne avec degré directement???

  9. #9
    Membre éprouvé
    Inscrit en
    Août 2010
    Messages
    1 124
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 1 124
    Points : 1 277
    Points
    1 277
    Par défaut
    Lorsque tu fais le changement de variable, tous les x vont disparaitre pour laisser la place à des y, donc ça marche parfaitement, en faisant attention aux constantes !

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2013
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par VV33D Voir le message
    Lorsque tu fais le changement de variable, tous les x vont disparaitre pour laisser la place à des y, donc ça marche parfaitement, en faisant attention aux constantes !
    tu peux me donner la solution pour cet exemple svp .merci

    Citation Envoyé par tachmou Voir le message
    avec ode45 en gérant soit-même ses unités
    est-ce que je peux modifier les paramètres de MATLAB pour qu'il fonctionne en degrés directement ?

  11. #11
    Membre éprouvé
    Inscrit en
    Août 2010
    Messages
    1 124
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 1 124
    Points : 1 277
    Points
    1 277
    Par défaut
    Soit x en degrés et y:=x en radian.
    - Exprime x à partir de y
    - Remplace les x dans x.f(2x) par sa valeur en fonction de y
    - Trouve entre quelles bornes varie y
    Ensuite il n'y a plus qu'à modifier le code

  12. #12
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2013
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    J'ai essayé avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    eval(int(x*cosd(2x),0,1))
    mais ça ne marche pas

  13. #13
    Membre éprouvé
    Inscrit en
    Août 2010
    Messages
    1 124
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 1 124
    Points : 1 277
    Points
    1 277
    Par défaut
    Commence par répondre à mes 3 questions (sur le papier, pas en matlab), ensuite il suffit de modifier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    integrale = -quad(@(x) x.*cosd(2x),0,1)
    avec la bonne fonction et les bonnes bornes

  14. #14
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2013
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Mais il faut intégrer cette intégrale dans une boucle pas à main.

  15. #15
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2013
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par VV33D Voir le message
    Commence par répondre à mes 3 questions (sur le papier, pas en matlab), ensuite il suffit de modifier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    integrale = -quad(@(x) x.*cosd(2x),0,1)
    avec la bonne fonction et les bonnes bornes
    est ce que je peux modifier les unité de matlab

  16. #16
    Membre éprouvé
    Inscrit en
    Août 2010
    Messages
    1 124
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 1 124
    Points : 1 277
    Points
    1 277
    Par défaut
    est ce que je peux modifier les unité de matlab
    Tu aura plus vite fait d'écrire le changement de variable à la main et de l'implémenter ensuite

  17. #17
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2013
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par VV33D Voir le message
    Tu aura plus vite fait d'écrire le changement de variable à la main et de l'implémenter ensuite
    mais l'algorithme fait 5000 itérations
    aider moi stp

  18. #18
    FLB
    FLB est déconnecté
    Modérateur
    Avatar de FLB
    Homme Profil pro
    Ing. Aérospatiale
    Inscrit en
    Juin 2003
    Messages
    770
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Ing. Aérospatiale
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2003
    Messages : 770
    Points : 1 185
    Points
    1 185
    Par défaut
    Je crois qu'il faut reprendre en douceur depuis le début :
    comment calculer intégrale F(x)=x*cos(2*x) de 1 a 0 , mais en degré.
    Ainsi :
    • le premier x va varier de 0 à 1
    • dans le cosinus le 2*x va varier de 0 à 2 radians

    Si tu veux que le paramètre du cosinus varie entre 0 et 2 degrés, écris
    Ensuite utilise la méthode quad pour effectuer l'intégration numérique, comme te l'a montré VV33D.

  19. #19
    Membre éclairé
    Homme Profil pro
    Doctorant automatique
    Inscrit en
    Janvier 2012
    Messages
    446
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Doctorant automatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2012
    Messages : 446
    Points : 719
    Points
    719
    Par défaut
    Bonjour,

    Citation Envoyé par VV33D Voir le message
    Bonjour,
    J'ai du raté quelque chose, mais je ne vois pas le rapport avec les ODE.
    ==> ode est un intégrateur numérique. "Résoudre" f'(x) = ... revient à calculer f(x) entre t1 et t2 et c'est le même problème que résoudre g(x) = ... et calculer l'intégrale de g entre t1 et t2. Seules les méthodes de résolution diffèrent. ODE est une généralisation de quad en quelques sortes. Personnellement j'ai développé ma propre généralisation de ODE pour prendre en compte des commandes asservies... donc il existe tout pleins de solveurs et on peut faire ses propres solveurs (et j'ai l'impression que c'est ce que veut peut-être faire hadjdjelloulnasreddi...)

    Citation Envoyé par VV33D Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    integrale = -quad(@(x) x.*cosd(2x),0,1)
    ==> je ne connaissais pas quad. Restes sur quad et oublie ode hadjdjelloulnasreddi, il est plus simple à comprendre.

    Citation Envoyé par hadjdjelloulnasreddi
    Mais il faut intégrer cette intégrale dans une boucle pas à main.
    ==> Tiens, elle sort d'où cette boucle ?

    Si je n'ai pas donné de détail : c'est volontaire. Tu ne donnes presque aucune information, tu ne prends pas la peine d'écrire à peu près correctement et tu donnes presque l'impression de faire un peu du style : "faites moi ça, si c'est bon je prends, sinon, refaites". Alors ne t'attends pas à ce qu'on te décortique le boulot à coup de baguette magique sans que tu fasses un minimum d'effort. Et de toutes façons on n'est pas là pour ça. En tout cas, c'est en train de tourner comme ça. Tu as de la chance que FLB soit patient.

    Maintenant, donnes un peu plus d'info : ça sort d'où ta boucle de 5000 itérations ? Et suis les conseils que toutes les personnes t'ont donnés ici, en faisant un retour en expliquant ce que tu as fait et là où tu bloques (j'ai l'impression d'apprendre aux gens à vivre en communauté plus qu'à les aider réellement dans matlab, c'est fou...)

    Un truc qui serait excellent déjà, c'est que tu nous montre ton code. Tu fais un copier coller de ton code tel qu'il est maintenant, en l'état, même s'il ne marche pas, ici-même en postant un message, puis tu sélectionnes le code que tu as collé et tu cliques sur "#" juste au dessus pour mettre en forme comme ceci :

    Encore mieux : tu ne postes que la partie du code "utile" (si ton code est très long). Cerise sur le gâteau : tu mets également les erreurs que tu obtiens dans matlab quand tu exécutes en faisant correspondre les numéros de ligne.

    ==> je "pense" que tu obtiendras des réponses plus efficace qu'en disant :

    merci VV33D mais ça ne donne pas la solution en degrés.
    ==> commentaire inutile et qui ne donne aucune information ==> comment veux-tu qu'on puisse t'aider avec ça ? Il faut en plus de cela qu'on devine ce que tu cherches à faire ?

    En résumé :
    - tu veux faire quoi (personnellement, je ne le sais toujours pas : peut-être que je suis stupide...) ? Détailles ce que tu veux faire exactement. Si tu cherches à coder toi-même l'intégration, c'est possible, mais dis-le. Si ce n'est pas le cas, alors quad est ton ami.
    - les radians et les degrés sont les unités d'un angle. Tu peux prendre les cosinus et sinus des angles à conditions que tes angles soient en radian. Si tes angles sont en degrés, tu as des fonctions magiques que sont cosd et sind qui font ça, mais c'est déconseillé. Il vaut mieux utiliser les unités du système international et s'y tenir, puis changer les unités à la fin, lors de tes observations. Tu peux me croire les yeux fermés sur ce point.
    - matlab n'est pas un simulateur physique. Nonon. C'est un simulateur mathématique. S'il faisait de la physique, il gèrerait des variables avec des unités, ce qui n'est pas le cas. ==> les unités, c'est TON problème, pas celui de matlab.

    Cordialement,
    Je ne réponds pas aux MP techniques. Le forum est là pour ça.
    La raison est simple : il est ennuyeux de répondre à une seule personne, alors que la réponse peut servir à tout le monde.
    Conclusion : n'hésitez pas à utiliser le forum pour poser vos questions.
    Matlab 2005 - ver.7.1.0.183 (R14) Service Pack 3

  20. #20
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2013
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Merci tachmou pour tes conseils
    mon problème c'est que j'ai une boucle qui fait des itérations et je cherche l'intégrale de x*cos(2x) de 0 a 1 qui se trouve dans cette boucle.
    j'ai fait mes calculs à la main et j'ai trouvé cette solution qui est exacte et en degrés :
    integrale = xsin(2x)/x +cos(2x)/4 de 0 a 1 = 0.0172
    donc je cherche comment trouver ce résultat avec MATLAB !

Discussions similaires

  1. inverse de cos, sin et tan
    Par mister3957 dans le forum C++
    Réponses: 3
    Dernier message: 13/12/2005, 16h07
  2. Vider intégralement un cache ARP
    Par EvilAngel dans le forum Réseau
    Réponses: 5
    Dernier message: 19/11/2005, 09h55
  3. Calculer cos(x) avec une série
    Par Évariste Galois dans le forum Algorithmes et structures de données
    Réponses: 15
    Dernier message: 23/08/2005, 15h47
  4. Réponses: 4
    Dernier message: 04/05/2005, 09h49
  5. [TP7] Calculer sin, cos, tan, sqrt via le FPU
    Par zdra dans le forum Assembleur
    Réponses: 8
    Dernier message: 25/11/2002, 04h09

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