算法来源:《数值最优化方法~高立》
算法目的:实现函数的局部最优化寻找,以二元函数为例,展示了最速下降法和牛顿寻优的算法过程
主要Python模块:numpy,sympy
(1)Python实现
(2)MATLAB实现
(3)比较
(1)Python实现
A 最速下降法
# -*- coding: utf-8 -*-"""Created on Sat Oct 01 15:01:54 @author: zhangweiguo"""import sympy,numpyimport mathimport matplotlib.pyplot as plfrom mpl_toolkits.mplot3d import Axes3D as ax3#最速下降法,二维实验def SD(x0,G,b,c,N,E):f = lambda x: 0.5 * (numpy.dot(numpy.dot(x.T, G), x)) + numpy.dot(b.T, x) + cf_d = lambda x: numpy.dot(G, x)+bX=x0;Y=[];Y_d=[];xx