QQ登录

只需要一步,快速开始

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

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

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

1189

主题

4

听众

2934

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-9-27 17:17 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
### 黄金分割法的基本概念
, _/ i$ O( r* X# _
# Z+ {8 S- A& `' A* w" ?) C" @6 T( r黄金分割法是一种用于求解一维优化问题(特别是寻找函数极值)的方法。其基本思想是通过在给定区间内选择特定的点来逐步缩小搜索范围,最终定位到函数的极值(最大值或最小值)点。+ `5 V6 |6 A! G! k5 P

: ^; r8 y/ N! R. d8 r3 U% ~#### 黄金分割比# I  E" {% l4 r6 R" |) {) g
( g$ C1 E6 c/ R# K
黄金分割法使用的比例称为黄金分割比,约为 \( \phi = \frac{\sqrt{5}-1}{2} \approx 0.618 \)。这个比例具有优良的数学性质,可以有效地减小搜索区间。
# d6 j( Q! q  u! i9 O
# k" S- B: _" x' _) Y### 实施步骤
9 ^. `& a) \  z+ O5 W( ~
4 s, u4 x/ x! X5 r: u( h; B1. **初始化区间**:& |( Z$ @: T0 |; Z
   选择一个包含极值的区间 \([a, b]\),并设置一个容忍度(或精度)值 \(tol\),用于判断何时停止搜索。
7 {, r. }, e) f6 q- Y0 k' T0 W! W1 b
2. **计算分割点**:  H( w% u# X( Y, [, P
   计算两个点 \(x_1\) 和 \(x_2\):
: [, t1 r1 V5 h, Y  E- ?   - \( x_1 = b - \phi \cdot (b - a) \)/ n( X2 m7 d; Q, }6 j( G0 W
   - \( x_2 = a + \phi \cdot (b - a) \)4 \) p. a# V: l% `1 x) h. q
* d6 q* q1 F8 X% R2 b
   这些点按照黄金分割比例将整个区间分为两部分。
6 H" q3 V  }; [8 c( {
- |) E& [; k+ d1 e: Y1 ^1 l' F3. **评估函数值**:5 D: d( L; p5 N) s
   计算这两个分割点的函数值:
; g2 c# O% A5 _5 w5 r3 v- t   - \( f_1 = f(x_1) \)
5 r4 ^1 T' g6 t( z   - \( f_2 = f(x_2) \)+ i1 B. v1 _" X: N$ V

$ @! G) `4 l5 a5 R; {3 [% b4. **缩小区间**:* E, i: _6 Q6 C' r3 d
   根据函数值的比较来决定缩小哪个部分的区间:
1 Z6 F1 X6 U" X, _' O$ i   - 如果 \( f_1 < f_2 \),则在 \(x_2\) 右侧的区间不可能包含最小值,将右端点更新为 \(b = x_2\)。
+ m& f2 }. A6 A' w& U4 O   - 如果 \( f_1 \geq f_2 \),则在 \(x_1\) 左侧的区间不可能包含最小值,将左端点更新为 \(a = x_1\)。
4 o! r! v4 L: N& r/ W1 X1 [. j. {4 w4 m
5. **迭代**:
. ?- K/ I) I7 H0 B   重复步骤 2 到 4,直到区间的长度 \((b - a)\) 小于容忍度 \(tol\)。
2 w8 l' J- n- ?1 }7 Q! j7 B
, j& j7 [0 r- {6 ~# J1 _2 R6. **输出结果**:* Y9 J+ W4 ^9 j" ]
   最后,计算区间中点 \((a + b)/2\) 作为极值点,并返回这个点的函数值。
9 g( \9 g# H/ C
- d  F7 Q* n) d4 z' I8 z$ b" i### 具体示例
0 V: P3 w8 {7 m3 \4 a4 u$ ?8 W3 }% ~# r; H  N! f0 i
假设我们想要找到函数 \(f(x) = (x - 2)^2\) 在区间 \([0, 5]\) 内的最小值。实施步骤如下:
3 C- S/ Y3 h( n1 y( Y8 V5 ?$ d# ?3 f8 [3 ]+ W
1. **初始化**:- J+ ^9 ]5 @, T1 D
   - 区间 \([0, 5]\)
5 W7 ?8 a3 Z8 n2 d# F0 j   - 容忍度 \(tol = 1 \times 10^{-5}\)
8 e; K& ^9 ~4 Y/ g+ m2 |& j
. R: r, g+ j1 Y! c0 S" c5 v# Z2. **计算分割点**:
% d5 l2 I" w% h( r8 }0 @" q' p* |" ~   - 计算 \(x_1\) 和 \(x_2\)
8 I1 O* [; @; s0 V. }0 c* h
* o/ z9 k( `* a2 W9 f3 b, k" \3. **评估函数值**:
5 @% O' A& I, D, D+ g   - 计算 \(f(x_1)\) 和 \(f(x_2)\)7 m* g- M9 r& H: n& A* v
; N- M9 g1 D$ b, Q& Y+ C
4. **缩小区间**:7 f/ E" _5 o& f
   - 根据比较结果更新 \(a\) 和 \(b\)( |3 N. \3 g$ a9 N) V! B

! n( [7 r" V+ G4 w9 A* ]5. **迭代**:. N- x0 k/ o6 C. J+ }* G2 k
   - 循环直到 \(b - a < tol\)
1 t% Z& l. A# S4 E
, M* r; X7 h4 M1 I, n& c6. **输出**:% C1 t+ h" \( y, [5 t
   - 找到极小值点和最小值。. _0 b& J) w7 Y3 v0 b+ X
' l5 T4 ^1 C  D, @% H2 U
### 优势与局限/ ?( q' W5 z: ?

( q' I# b( B% F- L: l5 w# H**优势**:+ W& d7 t! @( Y5 d
- 收敛速度较快,特别适合于平滑函数。9 n  b  f6 L1 k0 V( q. e: K
- 简单易实施,对于不需要求导的函数也有效。: T4 |0 t9 A4 ?" s, j7 e
) a) d) `1 w1 M- ?9 a
**局限**:
, ~5 t9 M( o6 f. y. c2 n6 P- 只能用于一维问题,对于多维问题不适用。
2 Q& ^8 }% F. x- 在函数已有许多极值的情况下可能找不到全局极值。
5 I) R* X$ k" H) ?% o! ^% }% f3 X# Z$ z
### 结论
% K# O6 S+ a' D  r1 Z. R4 r( T
9 X6 N) y2 ~! `7 M9 ^. ?黄金分割法是一种高效且简单的优化方法,适用于求解一维函数的极值问题。通过迭代缩小搜索区间,能够逐步接近目标收益,并实现优化。
% K6 `' V3 i, |. L& z3 g# x3 T  o& M: I4 y7 F
) y. W& b1 g+ N/ S; [( Z+ g
" h1 c: v# h- P% y+ M- {# ^  E

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-15 00:37 , Processed in 0.416245 second(s), 54 queries .

回顶部