QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3511|回复: 0
打印 上一主题 下一主题

黄金分割法求一维函数的极值

[复制链接]
字体大小: 正常 放大

1189

主题

4

听众

2934

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-9-27 17:17 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
### 黄金分割法的基本概念5 |& B# z: w( v8 N5 {, m

( [) X# i  W+ d0 s* C3 o8 Y黄金分割法是一种用于求解一维优化问题(特别是寻找函数极值)的方法。其基本思想是通过在给定区间内选择特定的点来逐步缩小搜索范围,最终定位到函数的极值(最大值或最小值)点。3 a  O) T& y( Q* P& G
, |  A: S( w! u/ B5 p* X3 r
#### 黄金分割比# M, y/ D9 y* p: h

3 Q6 {5 i# q7 a% z8 a) b黄金分割法使用的比例称为黄金分割比,约为 \( \phi = \frac{\sqrt{5}-1}{2} \approx 0.618 \)。这个比例具有优良的数学性质,可以有效地减小搜索区间。
$ h9 B9 L3 J9 r3 O& R( q
2 }( F8 O% @. z( G### 实施步骤! A- P7 A3 Q( \' O: E
+ x: s; o- ?# U* c( y5 s% v
1. **初始化区间**:3 o# s" w+ n* H8 J( T9 ^
   选择一个包含极值的区间 \([a, b]\),并设置一个容忍度(或精度)值 \(tol\),用于判断何时停止搜索。- S9 R2 c; N1 O2 K! m

9 ], i" R+ O( A2. **计算分割点**:& l3 V- N3 |1 f1 Q" ?. C9 Y
   计算两个点 \(x_1\) 和 \(x_2\):' A3 J5 d7 ]5 C3 c, o# D, x
   - \( x_1 = b - \phi \cdot (b - a) \)
3 Z- m! o$ x5 y' F1 u' l   - \( x_2 = a + \phi \cdot (b - a) \)/ ?& M6 A0 m: Y% q
2 t; e) ^. ^& u8 s4 \
   这些点按照黄金分割比例将整个区间分为两部分。
- X: @* Z, m8 f/ I; X& I+ i# ~5 O. s4 o& z) t! D
3. **评估函数值**:
  G$ g1 e2 Y  B, Q6 Y1 u   计算这两个分割点的函数值:
) m' @0 x- [0 H% _1 f   - \( f_1 = f(x_1) \)% m+ f9 o' U6 n9 D: d
   - \( f_2 = f(x_2) \)  y- H4 Z% K8 }6 c- D( a9 D9 I5 I/ _

- Y: z4 a. R# e, Y  A4 k, a. _% k4. **缩小区间**:  Q2 d; }- s  A# F
   根据函数值的比较来决定缩小哪个部分的区间:
! O8 `, E8 ?* W. ?   - 如果 \( f_1 < f_2 \),则在 \(x_2\) 右侧的区间不可能包含最小值,将右端点更新为 \(b = x_2\)。
% T; k' }1 B1 A: I4 Z  M' }   - 如果 \( f_1 \geq f_2 \),则在 \(x_1\) 左侧的区间不可能包含最小值,将左端点更新为 \(a = x_1\)。( ?6 G) X% Z, O+ a9 L3 j; m  ?

! r) U" `$ }. J$ L. e$ G* y5. **迭代**:. y3 r7 A1 W. l' {8 ?
   重复步骤 2 到 4,直到区间的长度 \((b - a)\) 小于容忍度 \(tol\)。
+ k' u/ f3 \9 ~
! c! n2 n0 x: |! Q8 G6. **输出结果**:
1 q# D9 E& ^: D   最后,计算区间中点 \((a + b)/2\) 作为极值点,并返回这个点的函数值。
/ S( i4 t4 P* a! G
5 d) G0 m' o7 {6 r! s/ S### 具体示例
4 @- q0 @6 G+ r+ K4 i* i: y( _
% C! v/ b, v  N0 b. I假设我们想要找到函数 \(f(x) = (x - 2)^2\) 在区间 \([0, 5]\) 内的最小值。实施步骤如下:
- B- t1 d; D4 n. b; f2 t8 v9 [8 z! s" ^
1. **初始化**:
7 P# q$ N/ m$ ]: u- @) g: `   - 区间 \([0, 5]\)' p: D  Q- Q" P- x
   - 容忍度 \(tol = 1 \times 10^{-5}\)* y+ [$ u! U4 f
& ?# g" y5 e! S2 P  R
2. **计算分割点**:
: M: u9 X  X% i+ C; @% p7 w4 @0 {   - 计算 \(x_1\) 和 \(x_2\)
) @7 g9 }; U, T4 \) [) L" `, R
3. **评估函数值**:
( G1 v1 v/ o% n5 J4 G$ p: G   - 计算 \(f(x_1)\) 和 \(f(x_2)\)
6 P1 y$ b1 I* A* x' x8 w
3 n1 Y  `2 g" G8 C# u5 M+ z/ M8 c4. **缩小区间**:) y/ p- r" g% q5 k; t/ U8 z$ j
   - 根据比较结果更新 \(a\) 和 \(b\)
! c! H$ z6 c/ h- @7 x
# X* T" ]6 \# {' ?, ?5. **迭代**:0 [  q' f* _) m3 |( G
   - 循环直到 \(b - a < tol\)
" h" g, z2 |) u& `6 x# g4 b
1 M  L, w0 `/ g- v) z  ?  f6 j6. **输出**:5 A$ G: l" n& }  S. G
   - 找到极小值点和最小值。
2 y: e1 E8 X  }2 q, [) c4 N) q  B/ U$ v- V0 B) e5 b! _
### 优势与局限
* E0 f, Y" F) s7 m) J( _: w9 s+ l  h0 m
**优势**:  ?6 j" w: R5 g: \
- 收敛速度较快,特别适合于平滑函数。
, U9 U4 s) C# u3 E: s- 简单易实施,对于不需要求导的函数也有效。
  b$ s* h! w6 J6 ]+ [' z) h; j: W; U( o- {& k! [" Y
**局限**:
0 r( ]# l- M: e: p- 只能用于一维问题,对于多维问题不适用。8 u3 ]( G4 ]% I- [+ O8 b
- 在函数已有许多极值的情况下可能找不到全局极值。
7 H4 ^1 L& K. S, |/ I; I8 I/ M, p7 v1 i, G( b+ k1 Y
### 结论( h2 h1 g( z4 o2 x9 E4 C

$ L- p& }( j1 i8 J# e黄金分割法是一种高效且简单的优化方法,适用于求解一维函数的极值问题。通过迭代缩小搜索区间,能够逐步接近目标收益,并实现优化。
) j# d; t/ B8 |! v' a- M
4 S2 N  ^  S4 ?  ]8 q( i8 W/ f% X1 V! x' ~; y. u. u- U" q  h

2 X3 c4 p' S' q# s1 L6 B! [

minHJ.m

841 Bytes, 下载次数: 0, 下载积分: 体力 -2 点

售价: 2 点体力  [记录]  [购买]

zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
您需要登录后才可以回帖 登录 | 注册地址

qq
收缩
  • 电话咨询

  • 04714969085
fastpost

关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

手机版|Archiver| |繁體中文 手机客户端  

蒙公网安备 15010502000194号

Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

GMT+8, 2026-7-10 00:28 , Processed in 0.748683 second(s), 55 queries .

回顶部