QQ登录

只需要一步,快速开始

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

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

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

1189

主题

4

听众

2934

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-9-27 17:17 |只看该作者 |正序浏览
|招呼Ta 关注Ta
### 黄金分割法的基本概念* B- B1 n) ]; m) h$ e5 e6 r) {5 w
6 H- C9 D/ X5 r, k4 l6 D3 R: ]
黄金分割法是一种用于求解一维优化问题(特别是寻找函数极值)的方法。其基本思想是通过在给定区间内选择特定的点来逐步缩小搜索范围,最终定位到函数的极值(最大值或最小值)点。9 W) u2 p* Z: w: w' U

# ~7 x: X" e; ~0 ]! T* f#### 黄金分割比8 F% B/ s: l3 K, s
3 V5 M8 a+ z" Y6 ], t) X, `, Q
黄金分割法使用的比例称为黄金分割比,约为 \( \phi = \frac{\sqrt{5}-1}{2} \approx 0.618 \)。这个比例具有优良的数学性质,可以有效地减小搜索区间。& G. m+ T5 R$ ^* m8 K
0 C5 O) p0 y. S' U8 H$ U
### 实施步骤
) D! c8 Z' I, E" S
/ W0 K1 C! [& o- h$ g; I1. **初始化区间**:
' W/ D; ?: I$ o* G7 y   选择一个包含极值的区间 \([a, b]\),并设置一个容忍度(或精度)值 \(tol\),用于判断何时停止搜索。
7 n6 Z5 f1 V3 H  o* _
! e" }& }/ y3 ~5 O* J- h2. **计算分割点**:
4 S4 W" H9 u5 r( L4 S   计算两个点 \(x_1\) 和 \(x_2\):
2 H/ \3 |# \' ^) e  C( s   - \( x_1 = b - \phi \cdot (b - a) \)
6 ?2 J( A; @7 K! O1 n   - \( x_2 = a + \phi \cdot (b - a) \)" B% e$ Z7 \/ `. h% a' o" b0 [

( I* P) O' f; s% y; c! T6 u' c   这些点按照黄金分割比例将整个区间分为两部分。
) g6 b1 {& `2 n" T
' N7 r/ f. m2 u3. **评估函数值**:+ n6 ]1 j  f! M$ ~3 [" M* z$ X
   计算这两个分割点的函数值:. g3 \& }. b  _% ~9 z
   - \( f_1 = f(x_1) \)
# }9 }9 l% w8 ]9 z! \4 b4 _   - \( f_2 = f(x_2) \)& `' l  y0 J- ^% x+ o0 J& ]) O

5 v' b( J8 P; B9 e- [+ P4. **缩小区间**:1 ]" A2 `: L/ M: M# N6 r+ c
   根据函数值的比较来决定缩小哪个部分的区间:
  u/ n0 v: g+ ?3 e. n   - 如果 \( f_1 < f_2 \),则在 \(x_2\) 右侧的区间不可能包含最小值,将右端点更新为 \(b = x_2\)。
  b: l0 B3 O5 p( J   - 如果 \( f_1 \geq f_2 \),则在 \(x_1\) 左侧的区间不可能包含最小值,将左端点更新为 \(a = x_1\)。6 {: G( A) Y% `' m

8 P3 m" h* P% j2 s7 l5. **迭代**:. Q) ~9 d8 O4 H0 s
   重复步骤 2 到 4,直到区间的长度 \((b - a)\) 小于容忍度 \(tol\)。
! d2 e9 g8 W% z$ _
2 A# `1 I9 J$ X; ]/ X: l) u& {6. **输出结果**:
& U, G; k/ j1 x! S% N6 X. W+ @   最后,计算区间中点 \((a + b)/2\) 作为极值点,并返回这个点的函数值。3 x( R, B/ A' Z; b  a9 ]0 c

9 W5 o. e, E- a6 F) d; D, }3 g### 具体示例
7 k3 }8 ?( A8 e. G1 @& J" G- O  z; W4 ]+ F- W7 T  }! s
假设我们想要找到函数 \(f(x) = (x - 2)^2\) 在区间 \([0, 5]\) 内的最小值。实施步骤如下:
- S" g- `' P5 u$ K6 x: H. F. s, k; a; l
1. **初始化**:
- Y2 j4 J7 _$ g  q3 M; \1 \% _6 O4 b   - 区间 \([0, 5]\)2 [$ X3 V4 G! W$ b2 V! G
   - 容忍度 \(tol = 1 \times 10^{-5}\)' H/ |0 H( Z2 E! P  z1 J- z
4 r, o6 F& T2 d2 k' p" Q
2. **计算分割点**:" |9 h" ?  k+ D3 l/ |! Z
   - 计算 \(x_1\) 和 \(x_2\)
; E) ~- ^; ?/ c- T; u: M2 T
- Q  }* a. |6 P3. **评估函数值**:
0 w! e& Q1 }# f2 \# P& \   - 计算 \(f(x_1)\) 和 \(f(x_2)\)
3 u; ]. t4 D; I- r2 o  M) _7 f) S! T5 ]6 E* a. P
4. **缩小区间**:, d, L; y$ y3 E/ b( |& X5 F2 x
   - 根据比较结果更新 \(a\) 和 \(b\)1 p) F8 I" v4 t  A

, s5 c. y% _- X9 i8 _( K5. **迭代**:; D+ ?1 r9 n9 f  c
   - 循环直到 \(b - a < tol\)) p4 |4 \$ m1 w2 }4 ~% h

0 k! s* q! M; r( n) h1 R6. **输出**:: j8 \: E, x, H3 S8 F
   - 找到极小值点和最小值。
1 i  D, ^, {" ]' g: U& q+ y) q2 b" g) m* A
### 优势与局限6 p6 _/ b: v  W' i

' A; w* R6 }; `9 c**优势**:8 Z' X/ ~, E9 i9 h
- 收敛速度较快,特别适合于平滑函数。+ X; x% e/ r7 k6 r
- 简单易实施,对于不需要求导的函数也有效。; X- D) p4 q7 s, ~

# u5 k& |  _; ^3 M. }**局限**:
. J5 e- h8 l6 L$ R+ m( U% j6 y8 g- 只能用于一维问题,对于多维问题不适用。# @' ^2 G( R8 N% H
- 在函数已有许多极值的情况下可能找不到全局极值。
9 ]; n9 [- F1 N* Z+ ?  ^
" d# t# r8 q+ a  P! }### 结论! Y1 V( j$ p7 {/ Z$ M1 R
. V! Z& K5 q% R
黄金分割法是一种高效且简单的优化方法,适用于求解一维函数的极值问题。通过迭代缩小搜索区间,能够逐步接近目标收益,并实现优化。8 v# a0 X/ ?! W1 Q+ |
5 W! }! X1 c6 ]$ w( @! V. G
2 T5 C/ U; i7 w3 V

2 F9 u7 h. C" T3 P/ }$ @5 A

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 15:04 , Processed in 0.428384 second(s), 56 queries .

回顶部