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:
J'évoque ma fonction sur le programme principal: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
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:
Merci à l'avance pour votre aide précieuse...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.
-----