当前位置: > 黄金>正文

二分法和黄金分割法的区别和联系,附Python代码 黄金分割法炒股有用吗

2023-09-07 14:30:57 互联网 未知 黄金

二分法和黄金分割法的区别和联系,附Python代码

二分法

二分法的本质是求函数y=f(x)在y*处的解x*,使得f(x*)=y*。也就是说二分法的目的是求函数在确定值y*处的解。

假设g(x) = f(x) - y*,则有g(x*) = f(x*)-y* = 0,所以求函数在确定值y*处的解等价于求函数在0处的解。设有函数f(x),且有a,如下图所示:

这意味着极大值点只可能出现在区间[a, ]之间,不可能出现在[, b]之间。这是因为否则的话就会形成两个极大值点,这与假设不成立。所以可以排除区间 [, b],只保留[a, ]。黄金分割法巧妙之处在于,根据前述性质2,是区间[a, ]的第二个黄金分割点,所以下一轮迭代只需计算 [a, ]区间上的第一个黄金分割点即可。

第二,如果= epslon: if f1 > f2: b = q2 q2 = q1 f2 = f1 q1 = a + (b - q1) f1 = func(q1) elif f1 < f2: a = q1 q1 = q2 f1 = f2 q2 = b - (q1 - a) f2 = func(q2) else: a = q1 b = q2 q1 = a + p1 * (b - a) q2 = a + p2 * (b - a) f1 = func(q1) f2 = func(q2) return (a+b)/2func = lambda x: -(x**3 - 7)**2 # 求7的三次方根x_star = gold_seg(func, 0, 3)print(x_star, x_star**3)

程序运行结果是:1.9129290118250308      6.999976167546854

这个答案与二分法得到的答案在小数点后4个有效位前提下相等。现在对黄金分割法和二分法的本质是不是有了更清晰的认识?

版权声明: 本站仅提供信息存储空间服务,旨在传递更多信息,不拥有所有权,不承担相关法律责任,不代表本网赞同其观点和对其真实性负责。如因作品内容、版权和其它问题需要同本网联系的,请发送邮件至 举报,一经查实,本站将立刻删除。