Info

此问题已关闭。 请重新打开它进行编辑或回答。

function minimum evaluation problem

3 次查看(过去 30 天)
Sri
Sri 2014-9-30
关闭: MATLAB Answer Bot 2021-8-20
I have a function which is f(r) = (2^(r/w)-1)*a+b+(c/r), where a, b, c are constants and r is lower bounded by 20000.
I have evaluated using fmincon and also by using fzero and fsolve for f'(r) (differentiation of f(r)). The code is given below.
w = 20000;
No = .000001;%
% No = 10^(-20);
myu = 1000;
% rho = .1;
rho = .50;
btr = 5;
mean_bt = 1/btr;
tou = 0;
a = No*myu/rho;
%direct minimum
opt = optimoptions('fmincon', 'Algorithm', 'interior-point');
[x,fval,exitflag] = fmincon(@(r) (2^(r/w)-1)*a+mean_bt+(myu/r), 20000,[],[],[],[],20000,Inf, [], opt)
fsOpts = optimoptions('fsolve', 'MaxFunEvals', 1000, 'TolFun', 10^-9)
[r, fval, exitflag] = fsolve(@(r) (2^(r/w)*(a/w)*log(2))-(myu/r^2), 20000, fsOpts)
[optp,fval, exitflag] = fzero(@(r) (2^(r/w)*(a/w)*log(2))-(myu/r^2), 20000)
I am getting different values with different solvers. 1. With fmincon, I got 3.1969e+04, but it is observed that with 3.2100e+04, I am getting even lower value. I thought probably local minimum could be a reason, but it is not clear. 2. with fsolve, whatever inital value, I am getting the same value? 3. With fzero, I am getting 5.0267e+04 and it seems to be correct.
Could someone kindly explain me the possible reasons for the above behavior and correct ways to use solvers properly?

回答(0 个)

标签

Community Treasure Hunt

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

Start Hunting!

Translated by