Ysu2008 发表于 2021-6-14 00:15

0.618法计算单峰函数最值有何优势?

本帖最后由 Ysu2008 于 2021-6-14 12:25 编辑

比如求 \(f(x)=\frac{ln(x)}{x+1}\) 最大值的数值解。

(1)以 0.618 法,从初始区间 =开始,迭代 70 次可找到该区间内的函数最大值:

a = 3.5911215197695068        f(a) = 0.2784645427610738
b = 3.5911215197695094        f(b) = 0.2784645427610738

可知:max(f) = 0.2784645427610738......

(2)参照 0.618 法的搜索原理,我们可以选择任何一个大于 0.5 小于1 的值进行类似迭代。

比如以 0.51 迭代,也从初始区间 =开始,迭代 50 次即可找到最大值:

a = 3.5911217453093540        f(a) = 0.2784645427610732
b = 3.5911217453093576        f(b) = 0.2784645427610732

max(f) = 0.2784645427610732......

(3)还可以选择比 0.618 大的值迭代,比如 0.8,也从初始区间 =开始,则需迭代 150 次找到最大值:

a = 3.5911214905895488        f(a) = 0.2784645427610738
b = 3.5911214905895505        f(b) = 0.2784645427610738

越靠近 0.5 ,迭代所需次数越少。那么用 0.618 迭代原因何在呢?

Ysu2008 发表于 2021-6-14 23:50

0.618 迭代次数比 0.51 多,为啥还用0.618 ?难道黄金数就要拽一点?:P

Ysu2008 发表于 2021-6-14 23:51

wlc1 发表于 2021-6-14 04:32


兄弟有何高见不妨说道说道。:handshake
页: [1]
查看完整版本: 0.618法计算单峰函数最值有何优势?