Python 无约束优化 黄金分割法代码
时间: 2024-09-24 22:12:36 浏览: 45
python中黄金分割法实现方法
Python 中的无约束优化通常是指寻找一个函数的最大值或最小值,而不需要满足特定的边界条件。黄金分割法是一种古老的搜索算法,它基于黄金比例 (Golden Ratio) 来逼近最优解。这个方法并不是非常高效,但它简单直观。
下面是一个简单的黄金分割法的 Python 代码示例,用于寻找一个单峰函数的最大值:
```python
def golden_section_search(f, a, b, tol=1e-6):
phi = (1 + 5 ** 0.5) / 2 # Golden ratio (approximately 1.618033988749895)
while b - a > tol:
c = a + phi * (b - a)
if f(c) < f(a):
b = c
else:
a = c
return (a + b) / 2
# 示例:找到函数f(x)在区间[0, 1]内的最大值
def test_func(x):
return x**2 # 单峰函数
max_value = golden_section_search(test_func, 0, 1)
print("Max value occurs at:", max_value)
阅读全文