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 :

[Débutante] Problème de fonctionnement d'un script


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 62
    Par défaut [Débutante] Problème de fonctionnement d'un script
    Bonjour,
    J'ai besoin d'un petit coup de main sous matlab

    J'ai recupéré un programme qu'une personne a faite il y a bien lontemps, cette derniere n'etant plus joignable, je n'ai que le script sur papier or il contient surement des erreurs puisqu'il ne tourne pas ce qui est problematique. Est ce que quelq'un pourrait m'aider à trouver les erreurs ?? merci d'avance

    le script :

    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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    clear
    M=dlmread('W:/matlab/data.txt','\t');			
    j=size(M);
    m=dlmread('W:/matlab/data.txt');					
    X0=[100000 10000 1000 0 0 10 0 0 0 100000 10000 1000 m']';	
    e=dlmread('W:/matlab/error.txt');		
    E=[1E9;1E8;1E5;0;0;1000;0;0;0;1E9;1E8;1E5;e];				
    D=size(X0);								
    C0=eye(D(1));								
        for i=1:D(1)								
          C0(i,i)= E(i);							
            X=X0;											
            a=[j(1,2)];
     
            for h=1:50									
                p=[X(1)+X(12+1)*X(2)-X(12+a+1)*X(3)+8.314*X(12+a+1)*log((1-X(12+2*a+1))/(1-X(12+3*a+1)))+((X(12+2*a+1))^2)*(X(4)+X(12+1)*X(5)-X(6)*X(12+a+1))-((X(12+3*a+1))^2)*(X(7)+X(8)*X(12+1)-X(9)*X(12+a+1))];
        		    for b=14:a+12
       		            p=[p;X(1)+X(b)*X(2)-X(a+b)*X(3)+8.314*X(a+b)*log((1-X(2*a+b))/(1-X(3*a+b)))+((X(2*a+b))^2)*(X(4)+X(b)*X(5)-X(6)*X(a+b))-((X(3*a+b))^2)*(X(7)+X(8)*X(b)-X(9)*X(b+a))];
                	end
                P1=[1 X(13) -X(12+a+1) (X(12+2*a+1))^2 (X(12+2*a+1))^2*X(13) -(X(12+2*a+1))^2*X(12+a+1) -(X(12+3*a+1))^2 -(X(12+3*a+1))^2*X(13) (X(12+3*a+1))^2*X(12+a+1)];
     
                    for z=14:a+12
                         P1=[P1;1 X(z) -X(z+a) (X(z+2*a))^2 (X(z+2*a))^2*X(z) -(X(z+2*a))^2*X(z+a) -(X(z+3*a))^2 -(X(z+3*a))^2*X(z) (X(z+3*a))^2*X(z+a)];
                    end
       P2=zeros(a,3);   
       P3=eye(a);
       P4=eye(a);
       P5=eye(a);
       P6=eye(a);
         	       for y=1:a
                         P3(y,y)=X(2)+(X(12+y+2*a))^2*X(5)-(X(12+y+3*a))^2*X(8);
       		            P4(y,y)=-X(3)+8.314*log((1-X(2*a+12+y))/(1-X(3*a+12+y)))-X(6)*(X(2*a+12+y))^2+X(9)*(X(3*a+12+y))^2;
                       P5(y,y)=-8.314*X(12+a+y)/(1-X(2*a+12+y))+2*X(12+2*a+y)*(X(4)+X(12+y)*X(5)-X(12+a+y)*X(6));
                      P6(y,y)=8.314*X(12+a+y)/(1-X(3*a+12+y))-2*X(12+3*a+y)*(X(7)+X(8)*X(12+y)-X(12+a+y)*X(9));
                   end 
        P=[P1 P2 P3 P4 P5 P6];   
       f=[X(10)+X(12+1)*X(11)-X(a+12+1)*X(12)+8.314*X(12+a+1)*log(X(12+3*a+1)/X(12+2*a+1))-(1-X(12+2*a+1))^2*(X(4)+X(12+1)*X(5)-X(6)*X(12+1+a))+(1-X(12+3*a+1))^2*(X(7)+X(8)*X(12+1)-X(9)*X(12+a+1))];
            	for b=14:a+12
             	    f=[f;X(10)+X(b)*X(11)-X(a+b)*X(12)+8.314*X(a+b)*log(X(3*a+b)/X(2*a+b))-(1-X(2*a+b))^2*(X(4)+X(b)*X(5)-X(6)*X(a+b))+(1-X(3*a+b))^2*(X(7)+X(8)*X(b)-X(9)*X(b+a))];
                 end
       F2=[-(1-X(12+2*a+1))^2 -(1-X(12+2*a+1))^2*X(12+1) (1-X(12+1+2*a))^2*X(12+a+1) (1-X(12+3*a+1))^2 (1-X(12+3*a+1))^2*X(12+1) -(1-X(12+3*a+1))^2*X(12+a+1) 1 X(12+1) -X(12+a+1)];
     
              for z=14:a+12
                F2=[F2;-(1-X(z+2*a))^2 -(1-X(z+2*a))^2*X(z) (1-X(z+2*a))^2*X(z+a) (1-X(z+3*a)^2) (1-X(z+3*a))^2*X(z) -(1-X(z+3*a)^2)*X(z+a) 1 X(z) -X(z+a)];
              end
       F1=zeros(a,3);   
       F3=eye(a);
       F4=eye(a);
       F5=eye(a);
       F6=eye(a);
             	for y=1:a
                  F3(y,y)=X(11)-(1-X(12+y+2*a))^2*X(5)+(1-X(12+y+3*a))^2*X(8);
       		    F4(y,y)=-X(12)+8.314*log(X(3*a+12+y)/X(2*a+12+y))+X(6)*(1-X(2*a+12+y))^2-X(9)*(1-X(3*a+12+y))^2;
                 F5(y,y)=-8.314*X(12+a+y)/X(2*a+12+y)+2*(1-X(12+2*a+y))*(X(4)+X(12+y)*X(5)-X(12+a+y)*X(6));
                  F6(y,y)=8.314*X(12+a+y)/X(3*a+12+y)+2*(X(12+3*a+y)-1)*(X(7)+X(8)*X(12+y)-X(12+y+a)*X(9));
        	    end
      	F=[F1 F2 F3 F4 F5 F6];
       g=[p;f];  
       G=[P;F];    
       X=X0+C0*G'*inv(G*C0*G')*(G*(X-X0)-g);
       R=[X(1) X(2) X(3) X(4) X(5) X(6) X(7) X(8) X(9) X(10) X(11) X(12)]
     
        end
    C=C0-C0*G'*inv(G*C0*G')*G*C0;
    W=[C(1,1) C(1,2) C(1,3) C(1,4) C(1,5) C(1,6) C(1,7) C(1,8) C(1,9) C(1,10) C(1,11) C(1,12)];
            for v=2:12
                W=[W; C(v,1) C(v,2) C(v,3) C(v,4) C(v,5) C(v,6) C(v,7) C(v,8) C(v,9) C(v,10) C(v,11) C(v,12)];
            end
    D=[E(1) E(2) E(3) E(4) E(5) E(6) E(7) E(8) E(9) E(10) E(11) E(12)];
    Q=[D;R;W];
            for i=1:a
           ka(i)=[X(i+12)];
          kb(i)=[X(i+12+a)];
          kc(i)=[X(i+12+2*a)];
          kd(i)=[X(i+12+3*a)];
            end
    K=[ka;kb;kc;kd];
     
    dlmwrite('W:/matlab/reslt.txt',Q,'\t')
    dlmwrite('W:/matlab/rcomp.txt',K,'\t')
    je joins egalement le fichier data et error.txt
    Fichiers attachés Fichiers attachés

  2. #2
    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 laroche1 Voir le message
    il ne tourne pas ce qui est problematique.
    Mais encore, quel(s) message(s) d'erreur MATLAB retourne-t-il à l'exécution de ce code ?

    Ce code est censé faire quoi ?

  3. #3
    Membre Expert
    Avatar de tug83
    Homme Profil pro
    MATLAB Geek !
    Inscrit en
    Juin 2006
    Messages
    1 781
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : MATLAB Geek !
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 781
    Par défaut
    Rien que cette ligne ne peut pas fonctionner:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    X0=[100000 10000 1000 0 0 10 0 0 0 100000 10000 1000 m']';
    vu que:

    whos m
    Name Size Bytes Class Attributes

    m 4x6 192 double

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 62
    Par défaut
    Oups excusez moi
    C'est bien cette ligne qui aurait un soucis
    Ce code est censé calculer des données sous forme de matrice.
    Bref c 'est super compliqué de reprendre un truc qu'on a pas fait !!!!!
    Je vous joins comme aide de compréhension, ce qui est donné avec comme sorte de notice si ça peut vous aider (dedans ya le script tel qu'il est donné)
    J'ai également les fichiers résultat (en fait j'aimerais tester sur d'autres données d'entrée). Voila voila c'est ce que j'ai


    le message erreur :
    ??? Error using ==> horzcat
    All matrices on a row in the bracketed expression must have the
    same number of rows.

    Encore desolée
    Merci
    Fichiers attachés Fichiers attachés

  5. #5
    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
    Mis à part te dire où se trouve l'erreur, je me demande comment on pourrait t'aider plus.

    Tu ne nous dis pas à quoi sert le code, ce que représente les données dans data.txt, ce qu'est censé représenter X0,...

    Donc pour l'instant, à part te dire de regarder la document ou de chercher dans ce forum à propos de la concaténation de matrice.... on ne peut malheureusement rien faire

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 62
    Par défaut
    Bonjour,
    En fait j'avais mis le petit document (inv_prog.doc) pour vous aider car en fait tout doit être expliqué (en principe!!! meme moi je comprends pas tout ) ,la signification des fichiers dont le fichier data.txt ( P pour pression, T pour température, Ca pour calcium de opx (orthopyroxene) et cpx (clinopyroxene)

    Après dans XO ce sont des paramètres thermodynamiques
    deltaU : différence dans l'energie interne
    deltaV : volume
    delta S : entropie

    C'est un programmation d'inversion permettant de calculer des parametres thermodynamiques
    Voila j'espere vous avoir eclairci
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. débutante:problème dans un script de jeu,inventé
    Par labelgikaine dans le forum Général Python
    Réponses: 5
    Dernier message: 03/12/2013, 00h27
  2. Débutant : Problème de compréhension d'un script
    Par developman dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 12/04/2011, 23h20
  3. [Débutant] Problème script ressource tuto
    Par MaN@eDeN dans le forum Windows
    Réponses: 8
    Dernier message: 09/03/2006, 00h20
  4. [Débutant] Problème de Script
    Par FREMY dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 26/08/2005, 15h00
  5. Réponses: 11
    Dernier message: 02/09/2003, 15h20

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