条件
- 函数在所选区间为单峰函数
- 大概知道极值所在的一个区间
在这种条件下其算法有效性很高
代码如下
import numpy as np
import math
import matplotlib.pyplot as plt
def phi(x):
return x * x - 2 * x + 1
def golds_search(phi, a, b, delta, epsilon):
'''
黄金分割法,p15
:param phi: 目标函数
:param a: 做端点
:param b: 右端点
:param delta: 参数
:param epsilon: 参数
:return:
'''
# 初始参数
G = np.zeros((1000, 4