QQ登录

只需要一步,快速开始

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

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

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

1188

主题

4

听众

2931

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-9-27 17:17 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
### 黄金分割法的基本概念
5 W2 L. h9 E  T8 Q5 D& z' R! p. U' L6 q0 b8 H3 D5 V
黄金分割法是一种用于求解一维优化问题(特别是寻找函数极值)的方法。其基本思想是通过在给定区间内选择特定的点来逐步缩小搜索范围,最终定位到函数的极值(最大值或最小值)点。
5 p" o; n1 L- R  E( D
$ f2 H: o+ w& u) E1 R( v( H; S9 u2 v#### 黄金分割比$ F& N8 A) ^! F2 y1 G0 x
, e8 f6 v; v3 K7 g' H, E
黄金分割法使用的比例称为黄金分割比,约为 \( \phi = \frac{\sqrt{5}-1}{2} \approx 0.618 \)。这个比例具有优良的数学性质,可以有效地减小搜索区间。
+ v! f) C. [' f" A* a) W; L* Y4 ]$ o+ {/ A
### 实施步骤
" C" t% o2 b. f  [6 d1 n8 C( k2 r
& v) W  }" g* J/ w: u. e! }1. **初始化区间**:
" j+ y7 c- y: ^5 z# k6 B9 m/ m' p6 l   选择一个包含极值的区间 \([a, b]\),并设置一个容忍度(或精度)值 \(tol\),用于判断何时停止搜索。
6 P( d+ \8 k* g. r! U/ o0 X& b
  w) ~5 T) V2 O$ R2 C0 Z" Q2. **计算分割点**:
8 [0 }1 M0 K6 L8 ^" o; r, j   计算两个点 \(x_1\) 和 \(x_2\):
" a+ e) M" B1 _& s8 k5 Q* T   - \( x_1 = b - \phi \cdot (b - a) \)
8 V2 E" C) g) u; C# J3 o   - \( x_2 = a + \phi \cdot (b - a) \), z$ k. h* F5 W: A
, B- H4 f+ u1 f- N& Q* E
   这些点按照黄金分割比例将整个区间分为两部分。
) p- u% T" F6 O1 x8 K; {0 h" Y) B" S- C) |3 d& `# ]
3. **评估函数值**:/ ]9 S) d6 {! L
   计算这两个分割点的函数值:
& H( m3 D$ g8 Z& X: h   - \( f_1 = f(x_1) \): e% v8 V/ Q, ], G, J
   - \( f_2 = f(x_2) \)1 t$ \- `6 ~$ W

9 p5 M. n- z* i4 n4. **缩小区间**:! s8 h% A. Y4 H( |0 J
   根据函数值的比较来决定缩小哪个部分的区间:) O( x! q/ w3 g0 [, g% g
   - 如果 \( f_1 < f_2 \),则在 \(x_2\) 右侧的区间不可能包含最小值,将右端点更新为 \(b = x_2\)。% G1 k8 b7 _- l6 b% ^; s2 F
   - 如果 \( f_1 \geq f_2 \),则在 \(x_1\) 左侧的区间不可能包含最小值,将左端点更新为 \(a = x_1\)。
% i2 T4 _6 e. N' z6 w. O- h
6 J5 ~: w4 g+ C- R$ O5. **迭代**:
' B: D# e6 `' ^6 z2 r: Y$ O! F( Z   重复步骤 2 到 4,直到区间的长度 \((b - a)\) 小于容忍度 \(tol\)。
; R  U9 j) x4 t; O8 w
0 K3 I& e2 |; u6. **输出结果**:( n! A4 n" f; o: a. K
   最后,计算区间中点 \((a + b)/2\) 作为极值点,并返回这个点的函数值。
, x1 x) A3 w- @/ F" @/ P$ |! J; x! P
### 具体示例
! {! Y/ Z. Q7 ]. c1 |; A# E. u% k/ q8 ?# G
假设我们想要找到函数 \(f(x) = (x - 2)^2\) 在区间 \([0, 5]\) 内的最小值。实施步骤如下:1 c8 M" l7 D) ]. f

# q; ^9 d' F! ^+ A& K& n4 L1. **初始化**:
$ B6 e1 |; r( r0 f8 O   - 区间 \([0, 5]\)+ Y6 G& g6 N; h, v. X
   - 容忍度 \(tol = 1 \times 10^{-5}\)
1 I; K" k1 B* h$ t2 |3 o# z2 ]7 O. \9 I4 V! _
2. **计算分割点**:
" o* G& m  O% }   - 计算 \(x_1\) 和 \(x_2\)
) Q  ^- U  A' K& K
) D* ~. Z8 t; U; S6 {3. **评估函数值**:, h  U& k% y4 U" T5 ?
   - 计算 \(f(x_1)\) 和 \(f(x_2)\)
  Z, ~- ]# q# W, d" c; {$ ?# y, S0 }, w4 p
4. **缩小区间**:
+ j! m# b7 Z9 p3 @   - 根据比较结果更新 \(a\) 和 \(b\)
  z. a, a& z$ ~1 p; U
" c5 z4 C; |0 n% s" a0 f5. **迭代**:/ B! [( r' o0 X0 w8 ?3 M% c8 e5 a
   - 循环直到 \(b - a < tol\)
, b& H) L  U( o: q! Q1 ~( V/ }8 Z
! s8 u5 C7 {0 v" K$ p, o! C6. **输出**:
$ p8 |+ j1 t$ W" Y   - 找到极小值点和最小值。5 h+ I% l3 g: Z3 B: |
% `' i1 f  m; z
### 优势与局限
) R8 F1 f  I! ~2 M  {% A
8 J" X0 F) f/ m3 _. S3 U1 T, v' H**优势**:
- T) h: }' D% j5 ^2 O- 收敛速度较快,特别适合于平滑函数。
5 n" L1 C; [8 b( S+ J4 G- 简单易实施,对于不需要求导的函数也有效。
7 j( u% F8 B4 q7 X) I) }9 \0 F
**局限**:8 v; ?0 t; Q# q2 @
- 只能用于一维问题,对于多维问题不适用。0 u9 ^( c# M; ?. R) E
- 在函数已有许多极值的情况下可能找不到全局极值。
) K' ^# k6 l( d" j% f, F2 h' C- P) L0 }( S4 j+ I
### 结论' i+ F7 _  C" A/ F6 g

# y* }9 c3 z: E! F/ J黄金分割法是一种高效且简单的优化方法,适用于求解一维函数的极值问题。通过迭代缩小搜索区间,能够逐步接近目标收益,并实现优化。
' f$ R' F1 V; T5 _( m; B9 A+ o. m; U" m% Y8 h2 p) g6 c
: g$ X5 h9 d8 F! J* J' p% `

( D8 k1 n- X% ^* b: x. e/ f

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-5-26 00:18 , Processed in 0.280114 second(s), 55 queries .

回顶部