matlab求多元非线性规划,logistic函数代码报错

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.

纠结了很久,希望老哥们帮忙看看。

https://www.cnblogs.com/goodtwo/p/11146540.html