# Find the theta1 and theta2 values that maximize the function

4 views (last 30 days)
Andreas S on 10 Oct 2020
Commented: Andreas S on 10 Oct 2020
Hi everyone! Im trying to maximize this equation by finding those theta1 and theta2:
obj8Run = @(theta) -mean(sum((1+theta1.*csecxit+theta2.*csecyit)/N.*R4-c*t4,2))./sqrt(sum((1+theta1.*csecxit+theta2.*csecyit)/N.*R4-c*t4,2))
w0 = [0.2,0.3] % initial guess
lb = zeros(1, 2)
ub = 1.5*ones(1, 2)
sol = fmincon(obj8Run, w0, [], [], [], [], lb, ub)
Matlab gives me this error problem: Error using fmincon (line 635) .Supplied objective function must return a scalar value.
Can someone help me?

madhan ravi on 10 Oct 2020
obj8Run = @(theta) -mean(sum((1+theta(1).*csecxit+theta(2).*csecyit)/N.*R4-c*t4,2))./sqrt(sum((1+theta(1).*csecxit+theta(2).*csecyit)/N.*R4-c*t4,2))
Andreas S on 10 Oct 2020
obj8Run = @(theta) -mean(sum((1+theta1.*csecxit+theta2.*csecyit)/N).*R4-c*t4,2)./sqrt(sum((1+theta1.*csecxit+theta2.*csecyit)/N).*R4-c.*t4,2)
w0 = [0.2,0.3] % initial guess
lb = zeros(1, 2)
ub = 1.5*ones(1, 2)
sol = fmincon(obj8Run, w0, [], [], [], [], lb, ub)
it gives me : Error using sqrt
Too many input arguments.
Error in @(theta)-mean(sum((1+theta1.*csecxit+theta2.*csecyit)/N).*R4-c*t4,2)./sqrt(sum((1+theta1.*csecxit+theta2.*csecyit)/N).*R4-c.*t4,2)
Error in fmincon (line 562)
initVals.f = feval(funfcn{3},X,varargin{:});
Caused by:
Failure in initial objective function evaluation. FMINCON cannot continue.