matlab fminsearch例子,使用无导数法计算无约束的多变量函数的最小值

将选项设置为提供迭代显示,从而在求解器运行时提供有关优化的信息。此外,将绘图函数设置为在求解器运行时显示目标函数值。

options = optimset('Display','iter','PlotFcns',@optimplotfval);

设置目标函数和起始点。

function f = objectivefcn1(x)

f = 0;

for k = -10:10

f = f + exp(-(x(1)-x(2))^2 - 2*x(1)^2)*cos(x(2))*sin(2*x(2));

end

将 objectivefcn1 的代码作为文件包含在您的 MATLAB® 路径中。

x0 = [0.25,-0.25];

fun = @objectivefcn1;

获取所有求解器输出。在求解器运行完毕后,使用这些输出检查结果。

[x,fval,exitflag,output] = fminsearch(fun,x0,options)

Iteration Func-count min f(x) Procedure

0 1 -6.70447

1 3 -6.89837 initial simplex

2 5 -7.34101 expand

3 7 -7.91894 expand

4 9 -9.07939 expand

5 11 -10.5047 expand

6 13 -12.4957 expand

7 15 -12.6957 reflect

8 17 -12.8052 contract outside

9 19 -12.8052 contract inside

10 21 -13.0189 expand

11 23 -13.0189 contract inside

12 25 -13.0374 reflect

13 27 -13.122 reflect

14 28 -13.122 reflect

15 29 -13.122 reflect

16 31 -13.122 contract outside

17 33 -13.1279 contract inside

18 35 -13.1279 contract inside

19 37 -13.1296 contract inside

20 39 -13.1301 contract inside

21 41 -13.1305 reflect

22 43 -13.1306 contract inside

23 45 -13.1309 contract inside

24 47 -13.1309 contract inside

25 49 -13.131 reflect

26 51 -13.131 contract inside

27 53 -13.131 contract inside

28 55 -13.131 contract inside

29 57 -13.131 contract outside

30 59 -13.131 contract inside

31 61 -13.131 contract inside

32 63 -13.131 contract inside

33 65 -13.131 contract outside

34 67 -13.131 contract inside

35 69 -13.131 contract inside

Optimization terminated:

the current x satisfies the termination criteria using OPTIONS.TolX of 1.000000e-04

and F(X) satisfies the convergence criteria using OPTIONS.TolFun of 1.000000e-04

x =

-0.1696 -0.5086

fval =

-13.1310

exitflag =

1

output =

struct with fields:

iterations: 35

funcCount: 69

algorithm: 'Nelder-Mead simplex direct search'

message: 'Optimization terminated:...'

5dbfa39f5f56a6e4c6546b3d24f82dea.png

exitflag 的值为 1,这意味着 fminsearch 很可能收敛于局部最小值。

output 结构体显示迭代数。迭代显示中和绘图中也显示此信息。output 结构体还显示函数求值的次数,迭代显示方式会显示该次数,但所选的绘图函数不显示该次数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值