黄金分割法的python实现
针对一维优化问题,如果一元函数是次数比较低的简单函数,可以直接使用一阶导数等于0来求解最小值。当一元函数为高次复杂函数,且一阶导数的次数仍然较高,难以求解,则需要采用数值迭代的方法求近似解。本文针对一维搜索方法中的黄金分割法进行介绍。
例题
请用黄金分割法求 f ( x ) = x ( x + 2 ) f(x)=x(x+2) f(x)=x(x+2)的极小值点,给定收敛精度1e-5
(1)步骤1:进退法确定搜索区间
主要目的在于确定单峰区间
注:图来源于《优化设计》-杨挺
import sympy as sp
from sympy import *
# 构造函数表达式并绘图
def get_function_expression(show=True):
x = sp.symbols('x'