Erreur utilisation FSOLVE MATLAB: système algébrique non linéaire
Répondre à la discussion
Affichage des résultats 1 à 1 sur 1

Erreur utilisation FSOLVE MATLAB: système algébrique non linéaire



  1. #1
    einstein123

    Erreur utilisation FSOLVE MATLAB: système algébrique non linéaire


    ------

    Bonjour,

    J'essaye de résoudre sur MATLAB le système suivant du type:

    F(a)=0, F vecteur de fonctions, a vecteur des inconnues.

    Voici la définition de ma fonction, dans un fichier function:

    Code:
    function f = myfun(a)
    %UNTITLED Summary of this function goes here
    %   Detailed explanation goes here
     
    M=load('M.mat');
    K=load('K.mat');
    B=load('B.mat');
     
     
    
     
    Term1(25,25)=0;
    for r=1:25
        for i=1:25
            Term1(i,r)=a(i)*K(i,r);
        end
    end
     
    TERME1=sum(Term1,1);
     
    Term2(25,25,25,25)=0;
    for r=1:25
        for i=1:25
            for j=1:25
                for k=1:25
                    Term2(i,j,k,r)=a(i)*a(j)*a(k)*B(i,j,k,r);
                end
            end
        end
    end
     
    TERME2=sum(Term2,4);
     
    AK(25,25)=0;
    for i=1:25
        for j=1:25
            AK(i,j)=a(i)*a(j)*K(i,j);
        end
    end
     
    SOMAK=sum(sum(AK));
     
    AB(25,25,25,25)=0;
    for i=1:25
        for j=1:25
            for k=1:25
                for l=1:25
            AB(i,j,k,l)=a(i)*a(j)*a(k)*a(l)*B(i,j,k,l);
                end
            end
        end
    end
        
    SOMAB=sum(sum(sum(sum(AB))));
     
    AM(25,25)=0;
    for i=1:25
        for j=1:25
            AM(i,j)=a(i)*a(j)*M(i,j);
        end
    end
     
    SOMAM=sum(sum(AM));
     
    Term3(25,25)=0;
    for r=1:25
        for i=1:25
            Term3(i,r)=a(i)*M(i,r);
        end
    end
     
    TERME3=sum(term3,1);
     
    for r=2:25
        f(r)=(2*TERME1(r))+(3*TERME2(r))-(2*((SOMAK+SOMAB)/SOMAM)*TERME3(r));
    end
        
    end
    J'évoque ma fonction sur le programme principal:

    Code:
    a0(1)=0.05;
    for i=2:25;
        a0(i)=0;
    end
     
    a=fsolve(@myfun,a0,optimset('Display','iter'));

    Je reçois l'erreur suivante:

    Code:
    
    ??? Undefined function or method 'mtimes' for input
    arguments of type 'struct'.
    
    Error in ==> myfun at 15
            Term1(i,r)=a(i)*K(i,r);
    
    Error in ==> fsolve at 248
                fuser = feval(funfcn{3},x,varargin{:});
    
    Error in ==> Plaque at 178
    a=fsolve(@myfun,a0,optimset('Display','iter'));
    
    Caused by:
        Failure in initial user-supplied objective function
        evaluation. FSOLVE cannot continue.
    Merci à l'avance pour votre aide précieuse...

    -----
    Dernière modification par einstein123 ; 08/04/2013 à 22h26.

Discussions similaires

  1. Résoudre un système non linéaire directement par Matlab ou autre, possible Oui ou Non ?
    Par invite01e0f157 dans le forum Mathématiques du supérieur
    Réponses: 2
    Dernier message: 18/08/2012, 21h47
  2. Résolution des système linéaire sur matlab
    Par dalida1111 dans le forum Mathématiques du supérieur
    Réponses: 19
    Dernier message: 04/08/2012, 09h57
  3. Problème fsolve MATLAB résolution système non linéaire
    Par gotenths dans le forum Logiciel - Software - Open Source
    Réponses: 5
    Dernier message: 10/05/2011, 17h50
  4. systéme differentiel non linéaire avec Matlab
    Par invite245b5481 dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 03/06/2009, 20h11
  5. Résolution algébrique d'un système d'équations sous Matlab
    Par invite6f2024cf dans le forum Mathématiques du supérieur
    Réponses: 6
    Dernier message: 22/10/2007, 10h45