请教编程达人 关于fminsearch和fminunc为什么初始值不同,计算的结果不同?见下面的例子:
第一个问题:
例1 f='x(1)^3+x(2)^3-3*x(1)*x(2)'; % 这时初始值取的是x0=[2,2]
[x,fval]=fminsearch(f,[2,2])
运行结果是:
x =
1.0000 1.0000
fval =
-1.0000
可是 当初始值取x0=[-1.2,1]时,
f='x(1)^3+x(2)^3-3*x(1)*x(2)';
[x,fval]=fminsearch(f,[-1.2,1])
运行结果是:
Exiting: Maximum number of function evaluations has been exceeded
- increase MaxFunEvals option.
Current function value: -3639352150178994600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.000000
x =
1.0e+044 *
-1.2279 -1.2137
fval =
-3.6394e+132
我想知道为什么会出现这样的情况,fminsearch对初始点有什么要求吗?
第二个问题:
与第一个问题类似,若用例1中的目标函数,而采用fminunc来求这个无约束的最小点,当初始点取x0=[2,2]或x0=[1,8]都无法求得问题的最优解,这时候怎么办呢?
期盼大家能给解答,谢谢各位关注我这个问题的人。