[問題] 函數有錯該如何修改(函數的建立和求min)已回收

看板MATLAB作者 (^^)時間16年前 (2009/02/11 20:37), 編輯推噓0(002)
留言2則, 1人參與, 最新討論串1/4 (看更多)
這是m-file裡: 變數有三個x(1),x(2),x(3) function[c,ceq] =objfun(x) y=rand(1,100); i=1:98; f(i)=2*log(1+x(3)*(y(i+2)*y(i+1)-x(1)*y(i+1)^2-x(1)*y(i+1)*y(i))+x(4)*(y(i+2)*y(i)-x(1)*y(i+1)*y(i)-x(2)*y(i)^2)); f=sum(f); c=[]; ceq=[eq11,eq22]; i=1:98; eq1(i)=(y(i+2)*y(i+1)-x(1)*y(i+1)^2-x(2)*y(i+1)*y(i)) / (1+x(3)*(y(i+2)*y(i+1)-x(1)*y(i+1)^2-x(2)*y(i+1)*y(i))+x(4)*(y(i+2)*y(i)-x(1)*y(i+1)*y(i)-x(2)*y(i)^2)); eq11=sum(eq1); eq2(i)=(y(i+2)*y(i)-x(1)*y(i+1)*y(i)-x(2)*y(i)^2) /(1+x(3)*(y(i+2)*y(i+1)-x(1)*y(i+1)^2-x(2)*y(i+1)*y(i))+x(4)*(y(i+2)*y(i)-x(1)*y(i+1)*y(i)-x(2)*y(i)^2)); eq22=sum(eq2); x0=[0.2 0.3 1 1]; [x,fval,exitflag,output] = fminunc(@objfun,x0); 執行會出現 Error in ==> objfun at 5 f(i)=2*log(1+x(3)*(y(i+2)*y(i+1)-x(1)*y(i+1)^2-x(1)*y(i+1)*y(i))+x(4)*(y(i+2)*y(i)-x(1)*y(i+1)*y(i)-x(2)*y(i)^2)); 這行是我的函數..我看不出來哪裡有錯? Error in ==> fminunc at 184 f = feval(funfcn{3},x,varargin{:}); 那這個是matlab裡跑的..為什麼會出現錯誤? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 125.224.40.240

02/11 20:39, , 1F
也會出現錯誤Inner matrix dimensions must agree..WHY
02/11 20:39, 1F

02/11 20:44, , 2F
上面寫錯了..變數是4個
02/11 20:44, 2F
文章代碼(AID): #19aiPntA (MATLAB)
文章代碼(AID): #19aiPntA (MATLAB)