QQ登录

只需要一步,快速开始

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

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

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

1198

主题

4

听众

2978

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-9-27 17:17 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
### 黄金分割法的基本概念0 O) ^/ o1 i" t! J6 Q, E, N
: A1 p& T  c& u
黄金分割法是一种用于求解一维优化问题(特别是寻找函数极值)的方法。其基本思想是通过在给定区间内选择特定的点来逐步缩小搜索范围,最终定位到函数的极值(最大值或最小值)点。
0 k! ~- Z0 p  w! _- S! K
+ h# ^; h, W% k# k2 U. ^6 t& C#### 黄金分割比8 N' C( ^' x) M6 s9 r
( I8 y* ?/ \# `' u* H5 x  \
黄金分割法使用的比例称为黄金分割比,约为 \( \phi = \frac{\sqrt{5}-1}{2} \approx 0.618 \)。这个比例具有优良的数学性质,可以有效地减小搜索区间。
* J1 t, h' y0 e: L5 L9 h' q6 L6 t& l2 L* c3 p" e$ w$ [6 E
### 实施步骤
; [" f  \: e4 G
  z7 h4 a& ~+ j2 ^1. **初始化区间**:3 C0 {" S3 z& h) w+ L' Y  s
   选择一个包含极值的区间 \([a, b]\),并设置一个容忍度(或精度)值 \(tol\),用于判断何时停止搜索。. {( N% D; f- E& r" C" \
" D- `/ q2 E, d- G
2. **计算分割点**:) j5 T& k, S- Z4 i8 {
   计算两个点 \(x_1\) 和 \(x_2\):
! n, }2 F  G7 @+ M" c5 i3 }   - \( x_1 = b - \phi \cdot (b - a) \)2 k5 U1 q, B" }, P
   - \( x_2 = a + \phi \cdot (b - a) \)
" u3 }5 x% q1 M. m8 a8 F- {# ~) o. N" a8 o
   这些点按照黄金分割比例将整个区间分为两部分。+ a& I: O( y- {! U6 y

4 c+ X$ b! v9 J( u4 X8 h3. **评估函数值**:) m- l  g( \6 X4 @- Y* @  C8 n' k
   计算这两个分割点的函数值:% X# n6 j% b, G/ n8 d) m- j
   - \( f_1 = f(x_1) \): F7 k- i- ^3 E. v4 G$ f
   - \( f_2 = f(x_2) \)
8 W5 i' |" C& G; `0 b
: ?, w5 c+ y" s' j1 N4 T% d1 ?4. **缩小区间**:5 Y4 B3 [$ S/ f: j+ t
   根据函数值的比较来决定缩小哪个部分的区间:. B$ L& N: h% b, L! P; x- v& y
   - 如果 \( f_1 < f_2 \),则在 \(x_2\) 右侧的区间不可能包含最小值,将右端点更新为 \(b = x_2\)。( i. _. I( j% M# G) G# M; T
   - 如果 \( f_1 \geq f_2 \),则在 \(x_1\) 左侧的区间不可能包含最小值,将左端点更新为 \(a = x_1\)。; ]1 s6 z9 j  w8 Z' U5 A4 m7 b
) `% q9 ], J' H9 V- d- h
5. **迭代**:! E0 j' n9 o- N4 l1 Q
   重复步骤 2 到 4,直到区间的长度 \((b - a)\) 小于容忍度 \(tol\)。- l% b2 h4 x- P6 o9 ?$ e9 w
' t* t$ L) E! j1 d* ^6 a
6. **输出结果**:  H9 {9 R; a: r& e! l" Q
   最后,计算区间中点 \((a + b)/2\) 作为极值点,并返回这个点的函数值。
: i' j0 ^8 i; I+ J# M6 B6 T3 D! P/ j1 R) v  D3 U( ]  K0 g( r0 C7 w  [
### 具体示例
7 I; F5 G- g9 ]; E
% {9 `, b9 A5 e7 T" o假设我们想要找到函数 \(f(x) = (x - 2)^2\) 在区间 \([0, 5]\) 内的最小值。实施步骤如下:
1 v$ t, i- _5 S  s
4 P1 e1 J9 G  t) U1. **初始化**:/ h, f0 m# g8 }$ y
   - 区间 \([0, 5]\)
$ U6 n, u) Z1 T7 R   - 容忍度 \(tol = 1 \times 10^{-5}\)' I) f  I( `$ Z! J6 c5 C& V; G+ N

5 f8 K; p' e7 ^; g! I$ N. {* p) N2. **计算分割点**:6 L/ w9 n4 P* [8 S+ l. {
   - 计算 \(x_1\) 和 \(x_2\)7 _2 Y5 a9 {+ L6 u% Z
- H# q" Z0 x0 L$ r/ o
3. **评估函数值**:! i9 h# b5 y. k- C/ _
   - 计算 \(f(x_1)\) 和 \(f(x_2)\)5 E$ `, i0 @/ V3 P( m

- z3 J( B# L, g6 w/ t2 d4. **缩小区间**:7 E) v6 q' f, Z( S* k4 e2 m
   - 根据比较结果更新 \(a\) 和 \(b\)( Y  ], X4 i) `  a8 n# F  d
- D' r: I6 w. e
5. **迭代**:
3 E  K) t  N7 y/ b. S  L# C   - 循环直到 \(b - a < tol\)
9 S  ?% q5 W, }" X6 z, J9 |3 o
& X0 t7 j* t0 T1 ~/ s0 l. A6. **输出**:
) u6 J8 u) L/ t   - 找到极小值点和最小值。
+ a& j4 i1 u9 Y6 Z( n2 \/ e, z0 V$ F7 y& |& n+ w9 T
### 优势与局限- F3 d7 x/ w! K& [2 V0 U5 ]* f
- ~3 {  Z1 {6 C  @" L6 b8 v
**优势**:! B+ m' H- ]  Q2 }4 F% u$ G# I! ?
- 收敛速度较快,特别适合于平滑函数。4 c2 `+ X0 L) V2 f5 Z
- 简单易实施,对于不需要求导的函数也有效。
& {2 I# U) U( E" P
9 i" r6 k) l; v- u* q8 I**局限**:; L2 p* m: b3 E. k. |
- 只能用于一维问题,对于多维问题不适用。2 J2 d9 ]* a! Q# N+ V( T
- 在函数已有许多极值的情况下可能找不到全局极值。
, M4 z* m% P- f- A$ S) X- P# m# C. m4 o, h% t" v
### 结论
, D- z8 X9 e- r8 _
# I+ k5 c2 S  I, y4 @$ Y2 X黄金分割法是一种高效且简单的优化方法,适用于求解一维函数的极值问题。通过迭代缩小搜索区间,能够逐步接近目标收益,并实现优化。' _2 C5 i9 j8 T
1 l$ \' r' `9 b+ t4 E$ |

  @/ `0 v/ ?8 t: Y$ B9 d( l, w& D7 C; o6 g

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-10-17 04:37 , Processed in 0.571742 second(s), 54 queries .

回顶部