matlab_无约束的非线性优化

【模型】

min f(x)
s.t.    x1≤x≤x2.


【fminbnd】
求定区间上单变量函数的最小值。
[x,fval,exitflag,output] = fminbnd(fun,x1,x2,options);


【fminunc】
求解单变量及多变量的最小值,fminunc函数是基于梯度的最小优化算法。
[x,fval,exitflag,output,grad,hessian]= fminunc(fun,x0,options);
[x,fval,exitflag,output,grad,hessian]= fminunc(problem);


【fminsearch】
用于求解多变量的极小值,fminsearch是基于Nelder算法而编写的。
[x,fval,exitflag,output] = fminsearch(fun,x0,options);


【说明】

  • 三个函数可能只输出局部最优解
  • 三个函数均只对变量为实数的问题进行优化
  • fminunc要求目标函数必须连续

【实例】

function Example
x = linspace(-pi, pi);
y = abs(1./x);
plot(x, y, 'r')
grid on

x0 = 1;
x1 = -3; x2 = 1;
options = optimset('HessUpdate', 'bfgs');
[x,fval,exitflag] = fminbnd(@fun,x1,x2)
[x,fval,exitflag] = fminunc(@fun,x0, options)
[x,fval,exitflag] = fminsearch(@fun,x0)
end

function y = fun(x)
y = abs(1./x);
end
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值