matlab用多元非线性规划,求logistic函数因变量的最大值,自变量有3个,都是维数为809的向量,其中两个自变量的具体值已给出。
目标函数:
function p=fun1(x)
[A]=xlsread('********.xls');
w=A(:,1);
j=A(:,2);
p=0;
for i=1:809
p=-exp(2.154*w(i)+0.598*j(i)+0.118*x(i)-124.687)/(exp(2.154*w(i)+0.598*j(i)+0.118*x(i)-124.687)+1)+p;
end
end
约束条件:
function [q] = fun2(x)
h=0;
for i=1:809
h=x(i)+h;
end
q=h-558;
end
主函数:
[x,y]=fmincon('fun1',rand(809,1),[],[],[],[],60*zeros(809,1),85*zeros(809,1),'fun2');
报错为:
错误使用 fun2
输出参数太多。
出错 fmincon (line 633)
[ctmp,ceqtmp] = feval(confcn{3},X,varargin{:});
出错 fxxgh (line 1)
[x,y]=fmincon('fun1',rand(809,1),[],[],[],[],60*zeros(809,1),85*zeros(809,1),'fun2');
原因:
Failure in initial nonlinear constraint function evaluation. FMINCON cannot continue.
纠结了很久,希望老哥们帮忙看看。