QQ登录

只需要一步,快速开始

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

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

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

1189

主题

4

听众

2934

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-9-27 17:17 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
### 黄金分割法的基本概念  A9 w7 v' ]/ a* @. x5 r
$ l1 k4 \! q6 Y& f5 B
黄金分割法是一种用于求解一维优化问题(特别是寻找函数极值)的方法。其基本思想是通过在给定区间内选择特定的点来逐步缩小搜索范围,最终定位到函数的极值(最大值或最小值)点。& C9 @' \4 Z2 W/ y2 J, b

# u, `0 z3 g& j4 [& T3 }#### 黄金分割比  F8 f+ ]3 t1 _$ {

" r9 S* p. Q& n6 w3 r- {( N+ n黄金分割法使用的比例称为黄金分割比,约为 \( \phi = \frac{\sqrt{5}-1}{2} \approx 0.618 \)。这个比例具有优良的数学性质,可以有效地减小搜索区间。3 j. V# P: I8 U$ C8 N; h
0 Q  e8 m) C4 K, h, v; n
### 实施步骤
: v! ?# M% U  O/ H( A8 S- [# d- J- E4 p+ g) g
1. **初始化区间**:0 P( ]9 A7 L! J
   选择一个包含极值的区间 \([a, b]\),并设置一个容忍度(或精度)值 \(tol\),用于判断何时停止搜索。
' i( l7 }3 n4 T* X& v. u! N9 Y" e# T8 B! x9 @) x
2. **计算分割点**:
% o2 U5 j4 V5 N+ f  c3 A- u+ ]3 d   计算两个点 \(x_1\) 和 \(x_2\):
5 g) N# ^! j9 K$ B! F2 L% [   - \( x_1 = b - \phi \cdot (b - a) \)
4 k% [1 Q! V! h9 ^# @   - \( x_2 = a + \phi \cdot (b - a) \)
. N* v5 u1 w; ?. y, j
, n# d3 E' s* m0 u: W  }2 K   这些点按照黄金分割比例将整个区间分为两部分。
1 N% Q( `( ~7 z8 [* Z7 o# Y9 h! p  Z' W1 u
3. **评估函数值**:$ h( R: ^6 G, C+ |. V9 {
   计算这两个分割点的函数值:! x4 E2 k7 O- v( Z
   - \( f_1 = f(x_1) \)" C+ E# m; M$ s( a. k2 J
   - \( f_2 = f(x_2) \)9 K, ~& l( g/ A: z& Z* N

8 i! U# @* ]% z- L4 {  |4. **缩小区间**:
6 J. l+ z. y+ @( G& W" h   根据函数值的比较来决定缩小哪个部分的区间:
+ c$ o6 X/ J, w2 _: E6 g% y# l   - 如果 \( f_1 < f_2 \),则在 \(x_2\) 右侧的区间不可能包含最小值,将右端点更新为 \(b = x_2\)。  O1 N: Z$ M9 i. G
   - 如果 \( f_1 \geq f_2 \),则在 \(x_1\) 左侧的区间不可能包含最小值,将左端点更新为 \(a = x_1\)。
5 Q* S' p% E9 p: ?0 O* ]1 X7 V5 X4 w4 ]1 b# a0 d0 Q  ~% F
5. **迭代**:2 v; R  V% Y; I2 q' V0 f) n
   重复步骤 2 到 4,直到区间的长度 \((b - a)\) 小于容忍度 \(tol\)。
( M8 {7 R0 d1 ^1 \: f- ~
/ R! U0 y7 h( J6. **输出结果**:$ G* O6 i& V- J5 V. S; R2 t
   最后,计算区间中点 \((a + b)/2\) 作为极值点,并返回这个点的函数值。' w- \4 v3 T) Q  X0 Z' W
; M( d$ N) c/ L" j) x! f( _
### 具体示例
3 h. l- A( }' z
# P8 P# @( y3 l( A7 ^假设我们想要找到函数 \(f(x) = (x - 2)^2\) 在区间 \([0, 5]\) 内的最小值。实施步骤如下:4 W: a+ t0 e+ B

  i1 m4 e8 b6 i9 B. M7 E& z1. **初始化**:% k1 W$ d4 C3 V3 g2 X. v
   - 区间 \([0, 5]\)
4 m0 Z6 ]4 l6 x1 |% }1 b3 A   - 容忍度 \(tol = 1 \times 10^{-5}\)
3 J3 [: ?" o$ Q3 t. q  L1 l3 Z+ M
2. **计算分割点**:+ d% L, g5 t- |% j# f- K! D
   - 计算 \(x_1\) 和 \(x_2\)4 M8 s3 F1 A, F/ c+ k1 D: H

$ [' n2 o$ L/ M3. **评估函数值**:5 ^% P% q/ C+ G, H$ m% @/ ~5 Y- Z
   - 计算 \(f(x_1)\) 和 \(f(x_2)\)
1 p2 U% w. P$ y5 ^5 W' U2 F
7 U  |8 h4 p' c/ ~! w- W4. **缩小区间**:6 n- g- b8 \/ q3 N
   - 根据比较结果更新 \(a\) 和 \(b\)
; c0 q9 N7 Q+ X* Z9 F2 Q0 k+ E+ f% ]  d" X$ O1 \
5. **迭代**:
3 ~& Z2 k! G8 t) m+ j) [- I   - 循环直到 \(b - a < tol\)
- W- L7 z+ m) m4 Q" K- s* L+ u/ |8 S9 a: z8 L
6. **输出**:+ U* s# K: j& t8 t: F5 `
   - 找到极小值点和最小值。  w/ V0 Z  E8 |
$ @  [! d; T" C3 x" ^
### 优势与局限
, C) B* W' `0 Q; A  ?4 S$ p: p2 k* V4 O" V
**优势**:; j5 z7 u9 W1 l8 ~# o7 N/ U
- 收敛速度较快,特别适合于平滑函数。
+ M1 u% j* ^8 l  e+ s  l- 简单易实施,对于不需要求导的函数也有效。
  {1 q3 W6 n$ E) T1 T/ R
: L4 n% q' Q! ~+ D) Y**局限**:
! g4 K* u1 A+ Z* K0 |. s- 只能用于一维问题,对于多维问题不适用。
! C9 I0 D! f* _1 s* Y- 在函数已有许多极值的情况下可能找不到全局极值。# @1 o: ~: e& w  f

+ \' U2 S$ A0 y& @8 ?' u5 ~2 A& e### 结论0 W1 b7 d2 N/ N4 Q

# o( x: m0 t2 u! [7 c- h黄金分割法是一种高效且简单的优化方法,适用于求解一维函数的极值问题。通过迭代缩小搜索区间,能够逐步接近目标收益,并实现优化。
& D8 }0 ]7 f' d9 \/ s
4 N: V% j1 H& s' L# g
% n8 S. N! V  O6 M% i7 @5 @, s: P! ^; i6 D, r1 n. ?" L7 u8 y

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 03:41 , Processed in 0.524399 second(s), 54 queries .

回顶部