MATLAB Answers

Find the theta1 and theta2 values that maximize the function

3 ビュー (過去 30 日間)
Andreas S
Andreas S 2020 年 10 月 10 日
コメント済み: Andreas S 2020 年 10 月 10 日
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?
Thanks in advance!!!

  0 件のコメント

サインインしてコメントする。

回答 (1 件)

madhan ravi
madhan ravi 2020 年 10 月 10 日
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))

  1 件のコメント

Andreas S
Andreas S 2020 年 10 月 10 日
Hello! Thanks for your reply, first of all. When i run:
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.

サインインしてコメントする。

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by