fminunc stopped because it exceeded the function evaluation limit, options.MaxFunEvals = 100000 (the default value).
    조회 수: 6 (최근 30일)
  
       이전 댓글 표시
    
Hello, I have this discretized functional called F1 (objective multivariable function) and I need to minimize it. Then, I have used FMINUNC to find the minimizer function "x" (solution) and the value of the objective function evaluated in the solution.  However, that error occurs. How can I solve i? 
function y=F1(U, N)
N=1000;
y = 0;
d = 3/(N-1);
U(1)=2;
U(N)=3;
for j=1:N-2
    y = y + (d/2)*((U(j)*(1+((U(j+1)-U(j))/(d))^2)^0.5)+(U(j+1)*(1+((U(j+2)-U(j+1))/(d))^2)^0.5));
end
y  = y;
Then; 
options = optimoptions(@fminunc,'Display','iter','Algorithm','quasi-newton');
fun = @F1;
v0= ones(1,1000);
[x,fval] = fminunc(fun,v0,options);
fval
댓글 수: 6
  Walter Roberson
      
      
 2021년 3월 26일
				You (now) have
function y=F1(U, N)
N=1000;
Is there a reason why you overwrite N immediately inside the function?
It seems to me that it would make more sense for you to have
function y = F1(U)
N = length(U);
  Walter Roberson
      
      
 2021년 3월 26일
				There is a minima of -infinity at careful combinations of 0 and -infinity . 
답변 (1개)
  Chidvi Modala
    
 2021년 3월 31일
        You may refer to the following documentation on how to resolve this issue
댓글 수: 0
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!