base sur matlab
Répondre à la discussion
Affichage des résultats 1 à 10 sur 10

base sur matlab



  1. #1
    victorien2015

    base sur matlab


    ------

    Bonjour,
    Je suis un nouvel utilisateur de Matlab j'ai écrit un programme qui ne s'exécute pas normalement le problème est au niveau de la fonction lambda(D,Re,k,tol) que j'ai créée.

    ci dessous le code de la fonction lambda
    Code:
    function y=lambda(D,Re,k,tol)
    z=1;
    n=1;
    y=0.5*ones(3,1);
    for i=1:1:3
        w(z)=y(i);
        w(z+1)=1/(-2*log(k(i)/(3.7*D(i))+2.51/(Re(i)*w(z))))^2;
        while abs(w(z+1)-w(z))>=tol || n>100
            z=z+1;
            w(z+1)=1/(-2*log(k(i)/(3.7*D(i))+2.51/(Re(i)*w(z))))^2; 
            n=n+1;
        end
         t(i)=z;
        y(i)=w(z);
    end
    y;
    t;
    end
    et voici le code du programme qui utilise la fonction lambda
    Code:
    disp('This software is use to make the Hardy cross method''s')
    disp('');
    disp('');
    op=input('press ''enter'' to continue');
    L=input('enter the length matrix L: ');
    Q=input('enter the matrix Q representing the flow at each node: ');
    D=input('enter the matrix D representing the diameter of each pipe: ');
    Re=10^6*ones(3,1);
    tol=exp(-10);
    k=0.001*ones(3,1);
    H=zeros(3,5);
    v=(4*10^-3*Q)./(pi*D.^2);
    j=(lambda(D,Re,k,tol).*((v.^2).*L))./(2*9.81*D);
    s1=sum(j./Q);
    q=-sum(j)/(2*s1);
    n=1;
    while abs(q)>=tol || n>100
          Q=Q+q*ones(3,1);
          v=(4*10^-3*Q)./(pi*D.^2);
          j=(lambda(D,Re,k,tol).*((v.^2).*L))./(2*9.81*D);
          s1=sum(j./Q);
          q=-sum(j)/(2*s1);
          n=n+1;
    end     
    H(:,1)=L;
    H(:,2)=D;
    H(:,3)=Q;
    H(:,4)=v;
    H(:,5)=j;
    H

    -----
    Dernière modification par Jack ; 02/07/2015 à 10h06. Motif: Merci d'ajouter les balises code comme c'est expressément demandé dans les règles du forum info

  2. #2
    lou_ibmix_xi

    Re : base sur matlab

    Pour que nous t'aidions, la moindre des choses serait que tu nous expliques ce que devrait faire la fonction, et pourquoi elle ne fonctionne pas (erreur ? mauvais résultat ?)
    Cerise sur le Mac-Do, les balises "code" pour entourer le code c'est plus lisible....

  3. #3
    victorien2015

    Re : base sur matlab

    Bjr jack je ne comprends pas ce que sont des balises code

  4. #4
    victorien2015

    Re : base sur matlab

    Bonjour lou_ibmix_xi en fait je ne sais pas ce qu'est une balise code. Le programme est une ittération dont la condition d'arrêt est abs(q)>=tol || n>100 et a pour output Q,V et j et input (L, Q,D, Re). j'attends ta réponse

  5. A voir en vidéo sur Futura
  6. #5
    lou_ibmix_xi

    Re : base sur matlab

    en fait je ne sais pas ce qu'est une balise code.
    C'est un des petit bouton de l'editeur qui te permet de garder la mise en forme du code lorsque tu le mets sur le forum.

    Le programme est une ittération dont la condition d'arrêt est abs(q)>=tol || n>100 et a pour output Q,V et j et input (L, Q,D, Re).
    Jusque là ça va, mais comme je sais lire je n'ai rien appris de nouveau...

    j'attends ta réponse
    J'attends plus de détails. Elle ne s'arrête jamais, elle sort des mauvais résultats, son execution est interrompue par une erreur...

  7. #6
    Bluedeep

    Re : base sur matlab

    Bonjour

    Je ne connais pas matlab, mais "w" dans la fonction lambda , c'est quoi ?

  8. #7
    Arzhur

    Re : base sur matlab

    condition d'arrêt est abs(q)>=tol || n>100
    Pour moi la condition d'arret c'est quand la boucle s'arrete....ici c'est plutot la condition qui fait qu'elle continue


    Je ne connais pas matlab, mais "w" dans la fonction lambda , c'est quoi ?
    on dirait un genre de vecteur ( une liste quoi) temporaire...

  9. #8
    Bluedeep

    Re : base sur matlab

    Citation Envoyé par Arzhur Voir le message
    on dirait un genre de vecteur ( une liste quoi) temporaire...
    Merci; j'ignorais que la déclaration était implicite.

  10. #9
    victorien2015

    Re : base sur matlab

    C'est justement là le problème et j'aurais espérer que tu puisses trouver une solution

  11. #10
    victorien2015

    Re : base sur matlab

    En fait c'est ça merci

Discussions similaires

  1. [matlab] programmation : peut-on générer un arbre des fonctions d'un code Matlab ?
    Par bratisla dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 09/07/2015, 10h12
  2. [Matlab]Problème d'optimisation Abaqus/Matlab
    Par Saroute dans le forum Programmation et langages, Algorithmique
    Réponses: 3
    Dernier message: 08/04/2015, 17h54
  3. MATLAB: acquisition de donnée via une interface graphique matlab
    Par inviteaeee671e dans le forum Programmation et langages, Algorithmique
    Réponses: 0
    Dernier message: 08/05/2011, 16h54
  4. simulation du hacheur buck à base d'IGBT sur matlab
    Par invite334fd9f7 dans le forum Électronique
    Réponses: 0
    Dernier message: 12/04/2011, 18h44
  5. [MatLab] Sb2Sl => Matlab classique = pb intégration.
    Par invite6e6d5361 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 03/08/2005, 21h02