def f(x):
return x ** 3 - 2 * x + 1
def solve(a, b, epsilon):
p = a + 0.382 * (b - a)
q = a + 0.618 * (b - a)
phip = f(p)
phiq = f(q)
while True:
if phip <= phiq:
if abs(b - p) <= epsilon:
return a, q
break
else:
b = q
phiq = phip
q = p
p = a + 0.382 * (b - a)
phip = f(p)
if phip > phiq:
if abs(b - p) <= epsilon:
return p, b
break
else:
a = p
phip = phiq
p = q
q = a + 0.618 * (b - a)
phiq = f(q)
if __name__ == '__main__':
a, b = solve(0, 3, 5e-10)
print('a: {}\nb: {}\nf((a+b)/2): {}'.format(a, b, f((a + b) / 2)))
相关文章
- 03-230.618法(最优化方法)Python实现
- 03-23【Python、练习题】自定义栈,并实现O(1)查找最值方法
- 03-23python中两种方法实现二分法查找,细致分析二分法查找算法
- 03-23.net开发之我见,or实现 最简 优化法。knock out type convert 与我之简化orm的实现原理及实现细则,最简化开发法
- 03-23.net开发之我见,or实现 最简 优化法。knock out type convert 与我之简化orm的实现原理及实现细则,最简化开发法
- 03-23最优化算法python实现篇(1)——进退法
- 03-23优化方法之正定二次函数的共轭梯度法及其实现(基于Python)
- 03-23【机器学习】神经网络的SGD、Momentum、AdaGrad、Adam最优化方法及其python实现
- 03-23服务器文档下载zip格式 SQL Server SQL分页查询 C#过滤html标签 EF 延时加载与死锁 在JS方法中返回多个值的三种方法(转载) IEnumerable,ICollection,IList接口问题 不吹不擂,你想要的Python面试都在这里了【315+道题】 基于mvc三层架构和ajax技术实现最简单的文件上传 事件管理
- 03-23MAT之SA:T1编写主函数法和T2Matlab自带的SA工具箱GUI法,两种方法实现对二元函数优化求解