[問題] 函數有錯該如何修改(函數的建立和求min)已回收
前面有問過..但還是有錯..請問應再如何修改
x0=[0.2 0.3 1 1];
[x,fval,exitflag,output] = fminunc(@myobj,x0,[],[],[],[],[],[],@myconstr);
%---------------------------------------------------------
function f = myobj(x)
for 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));
end
f=sum(f);
%---------------------------------------------------------
function [c, ceq] = myconstr(x)
c=[];
ceq=[eq11,eq22];
for 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));
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));
end
eq11=sum(eq1);
eq22=sum(eq2);
y是由matlab先跑出的一筆資料...請問我應該先把y存成矩陣放在m-file嗎?
還有會出現錯誤 Error using ==> objfun
Too many input arguments.
Error in ==> fminunc at 184
f = feval(funfcn{3},x,varargin{:}); <=這個到底該怎麼修改...這不是matlab
原有的嗎..怎會出錯
請問我的程式到底哪出錯...請知道的人說明一下..謝謝^^
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 125.224.44.26
→
02/16 21:43, , 1F
02/16 21:43, 1F
→
02/16 21:44, , 2F
02/16 21:44, 2F
→
02/16 22:10, , 3F
02/16 22:10, 3F
→
02/16 22:14, , 4F
02/16 22:14, 4F
→
02/17 15:17, , 5F
02/17 15:17, 5F
→
02/17 16:43, , 6F
02/17 16:43, 6F
→
02/17 17:22, , 7F
02/17 17:22, 7F
→
02/17 17:22, , 8F
02/17 17:22, 8F
討論串 (同標題文章)
完整討論串 (本文為第 4 之 4 篇):