QQ登录

只需要一步,快速开始

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

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

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

1175

主题

4

听众

2866

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-9-27 17:17 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
### 黄金分割法的基本概念$ _  W; z' V; j. a3 Y' h
. ^% z2 a( ^/ c; m, T4 p# W
黄金分割法是一种用于求解一维优化问题(特别是寻找函数极值)的方法。其基本思想是通过在给定区间内选择特定的点来逐步缩小搜索范围,最终定位到函数的极值(最大值或最小值)点。3 U. q/ j9 |  m, v) {' i" U& V
+ ^2 q4 i4 ~$ Y* b9 Q4 x+ A
#### 黄金分割比2 v) G: T. }# d

/ g  f- ^: N5 w0 Y黄金分割法使用的比例称为黄金分割比,约为 \( \phi = \frac{\sqrt{5}-1}{2} \approx 0.618 \)。这个比例具有优良的数学性质,可以有效地减小搜索区间。
8 G/ Y0 A/ l/ i2 W
2 `4 B- ~* x! X; [* l### 实施步骤* J( i2 w1 I9 a8 f3 E

. ^& O* q/ l; O: A1. **初始化区间**:
2 ~- b3 G$ k8 l' Z9 o! d   选择一个包含极值的区间 \([a, b]\),并设置一个容忍度(或精度)值 \(tol\),用于判断何时停止搜索。$ v7 U, O7 m. M( M( D7 H2 \
2 t  C( F$ S8 _$ e+ b& t! Z; p+ O
2. **计算分割点**:4 ]- j( R( u& m7 c: ^, ]; y, @, b  D
   计算两个点 \(x_1\) 和 \(x_2\):7 h6 _* o/ @: e9 ?* \3 e6 w# R7 M
   - \( x_1 = b - \phi \cdot (b - a) \)
1 W+ F4 S6 E$ w   - \( x_2 = a + \phi \cdot (b - a) \)
4 D* Z5 N) ]% \* `$ n4 k4 F
6 K: E) H- T* d" j% I( q# B   这些点按照黄金分割比例将整个区间分为两部分。! \& \" `" C* h( V1 o3 V# T0 K: w6 y
+ s# t: [# ~$ k  G
3. **评估函数值**:
* X& m. J+ b8 I2 g- H) Q3 s6 @   计算这两个分割点的函数值:
) P1 F3 H3 u9 z" j" c; V' }   - \( f_1 = f(x_1) \). J- [) S3 Y1 o' T' k
   - \( f_2 = f(x_2) \); f7 A" m7 p% K9 }$ {

; h; h4 A( `/ W/ H0 M4. **缩小区间**:
. Q8 `4 M: p. k* O. n   根据函数值的比较来决定缩小哪个部分的区间:
; c. R7 `# q! U   - 如果 \( f_1 < f_2 \),则在 \(x_2\) 右侧的区间不可能包含最小值,将右端点更新为 \(b = x_2\)。# b1 c5 Y) K. V7 W0 K- R
   - 如果 \( f_1 \geq f_2 \),则在 \(x_1\) 左侧的区间不可能包含最小值,将左端点更新为 \(a = x_1\)。
" I3 k- a3 ~& x6 X9 v0 Q; Y3 Q; I# r$ Y" g2 n
5. **迭代**:% S+ ~: a* e( R4 _" a
   重复步骤 2 到 4,直到区间的长度 \((b - a)\) 小于容忍度 \(tol\)。
1 Z! ^9 G. r& m. ^9 ^9 @) ^( G! A0 P: b2 z
6. **输出结果**:* u/ B2 n5 y0 j# C* A+ y. B
   最后,计算区间中点 \((a + b)/2\) 作为极值点,并返回这个点的函数值。
% d6 Y& t' i7 [" K1 C  Q7 H" {1 ^4 O7 r) Z2 E- R1 \* _4 |
### 具体示例
( M( U6 D  H2 G7 C) I1 M+ a
1 Q0 ^3 X  Y4 D3 c* H8 j  ]0 q假设我们想要找到函数 \(f(x) = (x - 2)^2\) 在区间 \([0, 5]\) 内的最小值。实施步骤如下:- U8 f, U' f  S7 [' G0 b
# a  V* S  p3 N4 I. `$ Z7 Y7 l
1. **初始化**:' R0 |# y1 T3 X& H' K8 v
   - 区间 \([0, 5]\)
, W, B& q2 J! u2 L" ~$ S# _8 n   - 容忍度 \(tol = 1 \times 10^{-5}\)2 q- u- E/ C- q0 j
$ D$ U4 k! {  e6 ^
2. **计算分割点**:
0 b+ @. {7 r. k& _* S7 `. h   - 计算 \(x_1\) 和 \(x_2\)
7 b. |+ y- k" n
! g/ p' H: n" p% X. r# h& s1 C1 R" u5 w3. **评估函数值**:
) C+ D( t* q$ C   - 计算 \(f(x_1)\) 和 \(f(x_2)\)
: Z& R9 b- Y! }! u& h( W" P
; R  H5 L! o6 B. p. F0 q5 d4 x' y4. **缩小区间**:
4 N4 E+ _; c/ U   - 根据比较结果更新 \(a\) 和 \(b\)
4 @' D0 M3 q! G% o
& B! Q9 l- ^8 y! N: i) y8 p& F5. **迭代**:
4 q, X% X3 f# X$ ]5 O5 U" o   - 循环直到 \(b - a < tol\)
7 C. X' p8 s: S8 D- I- i0 b7 E
/ `4 B- g+ T& _2 j1 P6. **输出**:
+ J) U7 k5 G! ~% a: z8 g. S( z   - 找到极小值点和最小值。* @; R! |" s* I4 E3 G. V

. Z3 j1 Z6 i/ p+ f& N  W### 优势与局限- m2 m) L  t- L- N: l
0 Z* D( E) L3 o7 [0 C* l1 z
**优势**:- Y: Y- z: Q2 |7 l% h
- 收敛速度较快,特别适合于平滑函数。
* }: M6 e6 v; X% A- H& b- 简单易实施,对于不需要求导的函数也有效。
$ k. z; P! d9 K- G3 Z  |
, w6 p- I, m. F4 x+ P**局限**:' l  c. ^# j% L, L
- 只能用于一维问题,对于多维问题不适用。: @! R4 G0 V7 l$ N
- 在函数已有许多极值的情况下可能找不到全局极值。
! }% g$ _5 C  l8 V
) R! I) d1 o, X### 结论
8 q  |! E5 |' x9 ^
/ x& U- b  n- p' i1 n3 ~/ _  P黄金分割法是一种高效且简单的优化方法,适用于求解一维函数的极值问题。通过迭代缩小搜索区间,能够逐步接近目标收益,并实现优化。4 F' j& E$ ]2 r

3 q+ O0 M" ]" H- t2 I1 j  R# O: \
6 n* h# f5 w  R
  @. Q; R% Q( e5 I% t" H; G

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, 2025-8-19 20:58 , Processed in 0.412370 second(s), 55 queries .

回顶部