求解约束非线性规划中使用MATLAB时为什么要设定初始值X0?

2024-11-29 13:11:10
推荐回答(2个)
回答1:

这是由MATLAB中使用算法的特点决定的。
不论是最速下降、牛顿法等,都是一种收敛型算法,而不是全局型算法,因此必须设定初始值。(有关算法前提条件的推导,一般任何《数值分析》教材都会详细写出)。
直观上说,可以这样理解:收敛型算法的稳态收敛值跟初始值相关,有时候是严重相关的。因此不同的初始值可能有不同的收敛值,导致局部极优解,而非全局最优解。

回答2:

这些算法的本质都是迭代,因此必须要有一个迭代初始值,初始值不同会影响算法的结果