QQ登录

只需要一步,快速开始

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

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

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

1189

主题

4

听众

2934

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-9-27 17:17 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
### 黄金分割法的基本概念8 B% |& q8 }6 S7 Y" d* z
; }) |  k1 k  R
黄金分割法是一种用于求解一维优化问题(特别是寻找函数极值)的方法。其基本思想是通过在给定区间内选择特定的点来逐步缩小搜索范围,最终定位到函数的极值(最大值或最小值)点。4 f( ~' m7 w' s$ y; Z1 v3 R" `
6 H2 X7 _, J) t; e/ W+ [" z3 R
#### 黄金分割比# X& P3 ^. x7 j; u, e  Y" |2 ]' I+ E! ]

3 L6 Z0 @' Y  \" W) c  S黄金分割法使用的比例称为黄金分割比,约为 \( \phi = \frac{\sqrt{5}-1}{2} \approx 0.618 \)。这个比例具有优良的数学性质,可以有效地减小搜索区间。* E; s* d/ E  I6 I! S+ D- s
0 v/ x5 D6 _' a, g/ N4 L; E% T/ J
### 实施步骤/ Z8 W3 t# Q. j9 A' c7 n8 V0 \( x

8 x1 X* ?3 {4 r: M. z7 |1. **初始化区间**:( A9 }) t  L7 d' |6 Z2 }' I6 t
   选择一个包含极值的区间 \([a, b]\),并设置一个容忍度(或精度)值 \(tol\),用于判断何时停止搜索。
2 u; ~$ ?1 t' J
2 @5 I. b. W: T) u% @) q* ]+ ^% o2. **计算分割点**:
, z8 z/ ^+ r- W# J. n' h( e   计算两个点 \(x_1\) 和 \(x_2\):
) H  h9 e) x0 `0 _   - \( x_1 = b - \phi \cdot (b - a) \)' Z7 K& b3 A5 p5 o2 |, L* K. W
   - \( x_2 = a + \phi \cdot (b - a) \)
; }9 C. R: f' @% q2 s( |$ f
' m! w6 S; O% U4 X   这些点按照黄金分割比例将整个区间分为两部分。
8 S8 m% |1 i5 M. n1 Z3 f
" I% N5 C& g" }& ]7 Q5 m3. **评估函数值**:( S' p4 z6 X" m; L  S
   计算这两个分割点的函数值:
9 \# _! w, x, U7 R0 S, u4 J   - \( f_1 = f(x_1) \)& ]5 e6 G8 [( h
   - \( f_2 = f(x_2) \)
, {4 c- i; R8 c3 M/ |
  h% a, C3 C! T$ b& H! b% v4. **缩小区间**:  j% @  w/ L$ t* P* A/ k
   根据函数值的比较来决定缩小哪个部分的区间:7 {8 z; ^; V. b* _- R
   - 如果 \( f_1 < f_2 \),则在 \(x_2\) 右侧的区间不可能包含最小值,将右端点更新为 \(b = x_2\)。
" f: N7 S0 M' I6 |) O# b   - 如果 \( f_1 \geq f_2 \),则在 \(x_1\) 左侧的区间不可能包含最小值,将左端点更新为 \(a = x_1\)。
' @: x6 k+ c7 l0 u8 L' L4 z5 M7 ?8 {/ }# W
5. **迭代**:5 ^. `8 c4 ?; J, j  K7 @6 K/ d
   重复步骤 2 到 4,直到区间的长度 \((b - a)\) 小于容忍度 \(tol\)。
- `" w. f) v4 p% _# }8 P  R; ?6 ?. w/ @. y( a
6. **输出结果**:
, M3 F' i7 \; c5 w   最后,计算区间中点 \((a + b)/2\) 作为极值点,并返回这个点的函数值。0 }, [$ h3 |, i) I$ B

( u: y9 \7 O% K% w- Q### 具体示例0 ~3 F0 a* Y4 o8 E
2 ?, r% f+ N, S
假设我们想要找到函数 \(f(x) = (x - 2)^2\) 在区间 \([0, 5]\) 内的最小值。实施步骤如下:
% o( o; j2 S  Q' i: h( m9 Q$ d" k7 x8 v0 |' P7 i
1. **初始化**:8 {- f) i7 p, `2 }' V
   - 区间 \([0, 5]\), x: l% s2 H4 ?6 W
   - 容忍度 \(tol = 1 \times 10^{-5}\)
9 ?' k4 ~  H! H) i9 j  L9 X
- p; r7 D4 q7 c: B/ [2. **计算分割点**:. e- j9 S& H1 D- `3 ]
   - 计算 \(x_1\) 和 \(x_2\)( B/ M( k& p, `5 ~2 d$ U# h

, L* S" K3 \3 a' I4 e  K3 |( f3. **评估函数值**:* y/ Y+ ~1 I3 B
   - 计算 \(f(x_1)\) 和 \(f(x_2)\)7 f: U" H0 I! v  }; _) i: J
+ K! n. [8 x  \9 m
4. **缩小区间**:
$ j$ O" \! A4 y  ?8 p   - 根据比较结果更新 \(a\) 和 \(b\)
( Y( ]- m8 {2 K; |+ `* @$ T3 U7 ^8 m
5. **迭代**:0 U4 o+ k% i  {1 z
   - 循环直到 \(b - a < tol\)
' }* m  f& [7 y- P7 [5 x
6 V) E% M( y, A, |8 x6. **输出**:( K5 {, k4 S* Q6 I- O) ]) P
   - 找到极小值点和最小值。
$ t3 ?( d% i' G2 I$ w* N
5 {: V: Y" y0 W6 a### 优势与局限1 _, V4 Z' X- d/ k
0 b7 }! R: }3 n# c- [% U
**优势**:
9 y. W! p7 z6 Z% I  j+ }3 T- 收敛速度较快,特别适合于平滑函数。
& d  l; D- W+ H5 ^" }6 n- j6 N- 简单易实施,对于不需要求导的函数也有效。1 c" i4 S  b9 D/ ]& X( {& Y$ p8 r

8 B, c6 h, y9 Y**局限**:% M6 K6 s* S4 S) a  q9 A/ }
- 只能用于一维问题,对于多维问题不适用。
% M- h3 q" B5 }- 在函数已有许多极值的情况下可能找不到全局极值。; }. [' h- l7 O0 v( O: x0 T; i

% o2 c. i0 q: u### 结论
6 U$ `+ ~4 U- h& S' S( V5 B) p" J
黄金分割法是一种高效且简单的优化方法,适用于求解一维函数的极值问题。通过迭代缩小搜索区间,能够逐步接近目标收益,并实现优化。' Q+ h1 F& F( M/ U7 N; @. u

, T, g; Q8 U9 y7 f0 @/ b# T
- m, Q" E" M" b0 d
# p4 r! Z" I/ |! K

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-6-14 10:28 , Processed in 0.411755 second(s), 55 queries .

回顶部