QQ登录

只需要一步,快速开始

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

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

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

1186

主题

4

听众

2922

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-9-27 17:17 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
### 黄金分割法的基本概念
" k! j2 ?- ?' H' i3 Y  H8 O% v7 M# _* F$ s3 L& w3 H
黄金分割法是一种用于求解一维优化问题(特别是寻找函数极值)的方法。其基本思想是通过在给定区间内选择特定的点来逐步缩小搜索范围,最终定位到函数的极值(最大值或最小值)点。( R  b  P# `# ^8 x

4 V8 H) G, X, [5 _8 H1 i#### 黄金分割比
9 y' l- d! \4 t0 q( S" f  |; k1 s1 L; [& y. h: m7 P/ n: j, Z
黄金分割法使用的比例称为黄金分割比,约为 \( \phi = \frac{\sqrt{5}-1}{2} \approx 0.618 \)。这个比例具有优良的数学性质,可以有效地减小搜索区间。
& H1 a& U: [% L: f0 S9 S
' w( ?6 q- g# ^6 @  U### 实施步骤( j" j4 p" [$ ~# f
2 {! c( ^: A& N) \* [
1. **初始化区间**:7 z3 S0 e, ?+ L6 K. A
   选择一个包含极值的区间 \([a, b]\),并设置一个容忍度(或精度)值 \(tol\),用于判断何时停止搜索。
: G) R, r/ F, F, p/ x) p) k) X4 c. f& v. T& }% g1 }+ @/ H
2. **计算分割点**:0 ]" F/ I: _. \3 {( c
   计算两个点 \(x_1\) 和 \(x_2\):1 x( k- r: K# ?* L- R( q9 [% {
   - \( x_1 = b - \phi \cdot (b - a) \)
. ^# L: m. J0 p) I' @9 ?$ r3 n, d$ D   - \( x_2 = a + \phi \cdot (b - a) \)! X  t# R/ D5 S- X
& Y( [. s2 c1 w. m9 n
   这些点按照黄金分割比例将整个区间分为两部分。
, v6 H. m6 T2 }& l% i0 b
+ ^& ], }7 f: j0 K0 n& c% p3. **评估函数值**:+ x# t/ L! ]: j% X6 T
   计算这两个分割点的函数值:
/ X$ w- y9 M5 x: y6 w6 K   - \( f_1 = f(x_1) \)
5 }* E7 M% r/ R" C+ ?6 g- s   - \( f_2 = f(x_2) \)7 m# o- Z- ]. Q

4 W# d/ Q3 r+ t' b% d; x6 X+ ]4. **缩小区间**:( h7 V1 N* J6 y
   根据函数值的比较来决定缩小哪个部分的区间:# n! h2 ?' ]& g
   - 如果 \( f_1 < f_2 \),则在 \(x_2\) 右侧的区间不可能包含最小值,将右端点更新为 \(b = x_2\)。% \1 k2 a# g( ^7 @+ G# l
   - 如果 \( f_1 \geq f_2 \),则在 \(x_1\) 左侧的区间不可能包含最小值,将左端点更新为 \(a = x_1\)。
: i6 p0 [" U& k* ?( P
( a- Q$ |6 Z' h5. **迭代**:1 R# Q) l3 `- h( N) q/ q: n
   重复步骤 2 到 4,直到区间的长度 \((b - a)\) 小于容忍度 \(tol\)。& `) T( r) s% c, f& o& B. X# u

7 j" z* [4 a* @0 f7 C6. **输出结果**:
; v8 A4 S* M9 {8 N   最后,计算区间中点 \((a + b)/2\) 作为极值点,并返回这个点的函数值。
4 F0 p2 C1 w' L9 i+ b9 D6 Q
( H& }' @% v! R' ~3 L4 O, }6 {### 具体示例
% c9 l1 J+ B& h4 L9 R2 ^
! ]6 U. o# q+ A2 g" Y假设我们想要找到函数 \(f(x) = (x - 2)^2\) 在区间 \([0, 5]\) 内的最小值。实施步骤如下:
/ m) T8 O' v3 Q7 o7 z
2 i3 X7 W, H3 u9 F5 h; w% M1. **初始化**:
# d9 M# a$ n4 n& a. v   - 区间 \([0, 5]\)# R9 F" i) Y3 f
   - 容忍度 \(tol = 1 \times 10^{-5}\); O! ~4 u) t2 s( `* [+ L
% P. y' W! V% H! U. R; t
2. **计算分割点**:  R  H; `/ d4 q- q. k  e
   - 计算 \(x_1\) 和 \(x_2\)
  V) d; a4 a) ?( O2 {8 P: b) h6 P. W% \1 l
3. **评估函数值**:
0 o' u) G+ U: F2 B2 X4 y3 Y, g& Z   - 计算 \(f(x_1)\) 和 \(f(x_2)\)
. o$ Y& A" C/ I  N
1 ~1 G& p% R5 E5 p( H3 a" }, U4. **缩小区间**:
/ D; l/ A6 }! [. x+ p" ~6 }% r   - 根据比较结果更新 \(a\) 和 \(b\)5 v5 m5 ?4 R( Z! }
2 F" j* U) p( e/ p0 _) k
5. **迭代**:# Z1 ~, m6 V- p) ?! ^8 m
   - 循环直到 \(b - a < tol\)3 o3 k+ ^* e3 Y0 }

  l0 k! x, ~7 [7 X+ Z6. **输出**:# g& ?. |/ N( p
   - 找到极小值点和最小值。& g, t6 U+ g7 z; j3 H
, c. G2 W2 N& c- L# M: x: M
### 优势与局限
) z  G8 p" ]( W; m; t
* e  c" Z+ ?4 e! f8 x**优势**:
5 B( h7 H, X' u& T- 收敛速度较快,特别适合于平滑函数。% G5 a) N9 i1 f1 g' X& G
- 简单易实施,对于不需要求导的函数也有效。
. n* f6 K. j( i- Q% t, n# @. h+ r, p9 a
**局限**:3 y4 Q0 W0 l# m$ ]
- 只能用于一维问题,对于多维问题不适用。
# U3 g! R+ t# I6 ^7 S- g* o, m! ]- 在函数已有许多极值的情况下可能找不到全局极值。1 o. d4 F6 R& y" p
. ]( }4 _3 o3 y1 _. @& V- ]( X( D, p
### 结论
4 b& g) s6 l6 {1 K6 i+ F  ~- b8 C0 J/ q6 o+ P0 V% X
黄金分割法是一种高效且简单的优化方法,适用于求解一维函数的极值问题。通过迭代缩小搜索区间,能够逐步接近目标收益,并实现优化。
9 q& A, w6 @3 R2 D) @5 ^
1 K# w: W! N: A
4 U) ?% X+ k  V  a& {$ T. G" s1 C- J$ }* P7 T  l

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-4-15 02:50 , Processed in 0.432707 second(s), 55 queries .

回顶部