Fmincon添加限制条件失败
在用MATLAB自带的curve fitting求解公式 但是想在方程中添加限制条件(y(11)时 方程的导数为0)
function y = dissolution(x,k,m,n);
y = zeros(size(x));
for i = 1:length(x)
y(i)=3*k*(x(i)-n)-3*(k.^2)*((x(i)-n).^2)+(k.^3)*((x(i)-n).^3)+m
end
end
function y=myfun1(x,k,m,n)
y = [length(x),zeros];
for i = 1:length(x)
y==3*k*(x-n)-3*(k.^2)*((x-n).^2)+(k.^3)*((x-n).^3)+m
end
end
x0=[0.01 0.01 0.01];
A=[];
b=[];
lb=[0.01 0.01 0.01];
ub=[35 35 35];
aeq=[];
beq=[];
[x,fval]=fmincon(@myfun1,x0,A,b,aeq,beq,lb,ub,@cons)
以下为错误提示
disfun
输入参数的数目不足。
出错 myfun1 (line 4)
y==3*k*(x-n)-3*(k.^2)*((x-n).^2)+(k.^3)*((x-n).^3)+m
出错 fmincon (line 552)
initVals.f = feval(funfcn{3},X,varargin{:});
出错 disfun (line 8)
[x,fval]=fmincon(@myfun1,x0,A,b,aeq,beq,lb,ub,@cons)
原因:
Failure in initial objective function evaluation. FMINCON cannot continue.
求助大神该如何解决这个问题