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 de longueur


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Étudiant
    Inscrit en
    Juillet 2009
    Messages
    77
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2009
    Messages : 77
    Par défaut Calcul de longueur
    Bonjour tout le monde
    J'ai réalisé des hélices sous matlab avec le code suivant :

    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
    % Modelisation helice
    clear all;
    X0=0:2:220%linspace(0,6.1544,6.1544/499);
    A=15;
    Y0=A*sin(X0/4)+20*sin(X0/8)+10*sin(X0)
    % Formule de la rotation de centre O et d'angle alpha
    alpha=42*pi/180;
    X=X0*cos(alpha)-Y0*sin(alpha);
    Y=Y0*cos(alpha)+X0*sin(alpha);
    P=[X',Y'];
    save fodil_p.txt P -ASCII
    R=50;
    teta=0;
    Xs(1)=R;
    Zs(1)=0;
    for i=1:(length(X)-1)
        teta=1/R*(X(i+1)-X(i))+teta;
        Xs(i+1)=R*cos(teta);
        Zs(i+1)=R*sin(teta);
    end;
    %plot(X,Y)
    plot3(Xs(1,:),Zs(1,:),Y)
    M=[Xs(1,:)',Zs(1,:)',Y']
    length (M)
    save fodil.txt M -ASCII
    grid on


    et en fait je souhaiterai déterminer la longueur, donc ce que je fais c'est le calcul d'une norme euclidienne mais je suis pas sur que ma modélisation sous matlab soit OK , pourrai-t-on me le confirmer s'il vous plait merci

    Norme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    L=0
    for j=1:length(X0)-1
    L=L+sqrt((X0(j+1)-X0(j))^2+(Y0(j+1)-Y0(j))^2)
    end;

  2. #2
    Membre expérimenté
    Inscrit en
    Novembre 2006
    Messages
    236
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 236
    Par défaut
    Ca m'a l'air d'être pas mal

  3. #3
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    Et sinon il y a la fonction NORM

  4. #4
    Membre confirmé
    Étudiant
    Inscrit en
    Juillet 2009
    Messages
    77
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2009
    Messages : 77
    Par défaut
    Voici les résultats
    1) avec ma formule
    2) norm appliqué sur la matrice P
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    >> L
     
    L =
     
      1.2913e+003
     
    >> norm(P)
     
    ans =
     
      1.3413e+003

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 002
    Par défaut
    A vérifier qu'en faisant ceci :
    tu ne prives pas ton calcul de la dernière longueur..ce qui pourrait être à l'origine de la légère différence des deux valeurs.

  6. #6
    Membre confirmé
    Étudiant
    Inscrit en
    Juillet 2009
    Messages
    77
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2009
    Messages : 77
    Par défaut
    Salut
    Ouais mais voila X0 est de taille 111 si j'enlève le -1 beh X0(112) ne sera pas définit

  7. #7
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 317
    Par défaut
    Citation Envoyé par sky-mars Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    L=0
    for j=1:length(X0)-1
    L=L+sqrt((X0(j+1)-X0(j))^2+(Y0(j+1)-Y0(j))^2)
    end;
    Pas besoin de la boucle FOR-END :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    L = sqrt(sum((X0(2:end)-X0(1:end-1)).^2+(Y0(2:end)-Y0(1:end-1)).^2))

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

Discussions similaires

  1. Calcul de longueur de brin
    Par lobotoFix dans le forum Hardware
    Réponses: 0
    Dernier message: 28/10/2013, 14h13
  2. Calcul de longueur
    Par sause dans le forum Mathématiques
    Réponses: 6
    Dernier message: 04/04/2012, 15h24
  3. Réponses: 3
    Dernier message: 04/10/2006, 15h15
  4. Réponses: 5
    Dernier message: 31/07/2006, 15h42
  5. Calculer la longueur d'une variable de type entier
    Par juliendeparis dans le forum C
    Réponses: 13
    Dernier message: 08/06/2006, 13h44

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