数值非线性全局最优化示例
寻找多个最优点,方法 1
这里我们介绍一个取得多个极小点的方法,即: 使用不同的随机种子来多次调用 NMinimize,从而导致采用不同的优化路径.
| Out[2]= |  |
下面是一个由使用不同的随机种子产生的所有解构成的表格.
| Out[3]= |  |
这里我们把解转换为点,并且在函数的等值线图上把这些点画出来.
| Out[7]= |  |
寻找多个最优点,方法 2
这里我们介绍另一种取得多个极小点的方法. 即: 用以下方式写下目标函数,以使得访问过的所有点成为一个列表,然后选择具有接近最终解的目标函数值的点.
| Out[20]= |  |
| Out[22]= |  |
找到所有访问过的点中具有接近最终解的目标函数值的点. 然后画成白色,而把最终解画成黑色,并且在函数的等值线图上画出来.
| Out[27]= |  |
寻找数据的非线性拟合
| Out[30]= |  |
从模型和参数创建一个函数,并且在区间

上产生样本点.
这里画出从
FindFit 得到的解和相应的点. 根据三角函数的性质,我们的解由一个局部最小值捕捉.
| Out[37]= |  |
| Out[39]= |  |
| Out[41]= |  |
Solve 示例
Solve 不能解决这个方程组,因为它们是高度非代数化的.
给
NMinimize 提供一个常数目标函数,并以我们所要求解的方程作为约束条件. 这样就能找到问题的解.
| Out[43]= |  |
棋盘上的皇后问题
countAttacks[vec] 把实数向量转换为由所有皇后组成的一个排列并且计算攻击的次数.
| Out[52]= |  |
| Out[53]= |  |