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...