how to resolve the issue with fmincon
6 ビュー (過去 30 日間)
古いコメントを表示
Hi,
I need to use the following code in my program. however, it gives an error and the warning. It happens because I use SIZE() when assigning the initial values. but i must use it that way.
Can someone please help me overcome this?
code:
theta0 = ones(size(svhat),1);
Av = ones(size(svhat),1)';
Av(1,1) = 0;
lbb = zeros(size(svhat),1);
lbb(1,1) = 1;
lbb = eps*lbb;
bv = 0.99999;
opts = optimset('Display','off','Algorithm','sqp');
%function
[theta, opt] = fmincon(@(theta)alach(theta,epshat),theta0,Av,bv,[],[],lbb,[],[],opts);
error:
Warning: Input arguments must be scalar.
> In test at 146
Warning: Input arguments must be scalar.
> In test at 148
Warning: Input arguments must be scalar.
> In test at 151
Error using sqpLineSearch (line 22)
Objective function is undefined at initial point. Fmincon cannot continue.
Error in fmincon (line 851)
[X,FVAL,EXITFLAG,OUTPUT,LAMBDA,GRAD,HESSIAN] = sqpLineSearch(funfcn,X,full(A),full(B),full(Aeq),full(Beq), ...
Error in test (line 161)
[theta, opt] = fmincon(@(theta)alach(theta,epshat),theta0,Av,bv,[],[],lbb,[],[],opts);
0 件のコメント
採用された回答
Matt J
2014 年 5 月 11 日
編集済み: Matt J
2014 年 5 月 11 日
I think you might really want
theta0 = ones(numel(svhat),1);
or
theta0=ones(size(svhat));
As for the fmincon error, your function @(theta)alach(theta,epshat) is not returning a finite value at theta0. You should check what it is actually returning.
6 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Parallel Computing Fundamentals についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!