QQ登录

只需要一步,快速开始

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

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

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

1175

主题

4

听众

2843

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-9-27 17:17 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
### 黄金分割法的基本概念
9 x1 |: f$ ~% I0 S' Q& T' y( V/ c4 ]- E  i6 [! H( o, A
黄金分割法是一种用于求解一维优化问题(特别是寻找函数极值)的方法。其基本思想是通过在给定区间内选择特定的点来逐步缩小搜索范围,最终定位到函数的极值(最大值或最小值)点。3 c7 G# H: l4 ]

7 x5 x5 S9 g) j9 z3 W" f#### 黄金分割比! ?' g! ~& o6 d& ?1 r

; Q3 }5 m' n  g6 m1 j  D黄金分割法使用的比例称为黄金分割比,约为 \( \phi = \frac{\sqrt{5}-1}{2} \approx 0.618 \)。这个比例具有优良的数学性质,可以有效地减小搜索区间。
7 c0 @1 M- U$ y% n1 Z  E! {* {
. }; R* y& H) S3 w### 实施步骤
: u$ i) @7 f9 t* }3 _2 x6 G) `# |" j, G8 j# m) h& T, E( u5 D
1. **初始化区间**:# b) l$ _! z  h
   选择一个包含极值的区间 \([a, b]\),并设置一个容忍度(或精度)值 \(tol\),用于判断何时停止搜索。
3 U# u/ v! L2 l+ o. r# o. J& o; b' \3 C% w% o
2. **计算分割点**:
2 d3 j* l& H  h/ d$ V0 G( i   计算两个点 \(x_1\) 和 \(x_2\):
6 j2 B9 _  Y- |, o' I% D   - \( x_1 = b - \phi \cdot (b - a) \)
7 V% l0 T2 n: {+ L   - \( x_2 = a + \phi \cdot (b - a) \)
! B- L# @  U' }: ]% x  E8 x1 X5 f6 t; W( f4 H2 z; V9 r; h0 b
   这些点按照黄金分割比例将整个区间分为两部分。
/ J, }# U* \" k/ I7 E$ A
; Y4 V' g/ }* K& L5 H3. **评估函数值**:
' [9 t5 @6 {# ~, T9 D  L9 I   计算这两个分割点的函数值:
( v( v) c! K. Q1 e   - \( f_1 = f(x_1) \)
! c4 }2 ^% I' E+ s6 b2 Q   - \( f_2 = f(x_2) \)
% q9 `1 u3 v( ]: X& N$ X2 C0 T3 A- V& V- O9 M" Y% `  Q& x
4. **缩小区间**:( J/ P* ^1 j2 I4 B# {2 @+ C
   根据函数值的比较来决定缩小哪个部分的区间:
% c* r9 ~  r& G1 b0 e2 v/ o- n   - 如果 \( f_1 < f_2 \),则在 \(x_2\) 右侧的区间不可能包含最小值,将右端点更新为 \(b = x_2\)。5 [8 v& G# b2 w7 ]
   - 如果 \( f_1 \geq f_2 \),则在 \(x_1\) 左侧的区间不可能包含最小值,将左端点更新为 \(a = x_1\)。
* F0 {/ \8 x. o# U7 b/ O, f- i# X& T) p- K. @$ t3 S$ ]
5. **迭代**:/ {. h, }9 E9 Z3 m$ Z" p/ _7 i
   重复步骤 2 到 4,直到区间的长度 \((b - a)\) 小于容忍度 \(tol\)。' @8 y- A+ R9 [, p: P- z) Y7 a
) W- a7 M/ G$ q  `  |4 U) C
6. **输出结果**:8 D0 ]: w& O* A  l4 E/ x$ j" J
   最后,计算区间中点 \((a + b)/2\) 作为极值点,并返回这个点的函数值。3 K9 {* a" O4 P0 N/ A
4 |  J3 }! N' G, Y) Q2 \* X. u  h
### 具体示例" t) V$ p, K* n0 C5 P, n# m9 G% m

: Y5 o# S/ v. m  F; r& B假设我们想要找到函数 \(f(x) = (x - 2)^2\) 在区间 \([0, 5]\) 内的最小值。实施步骤如下:9 Z: c7 p/ U. C% p1 {

1 S0 A/ y: U. {. `- q1. **初始化**:1 o: F1 T0 ~! u- O0 `
   - 区间 \([0, 5]\)( U6 g7 G* ~9 n& B! c2 M6 u+ p  `
   - 容忍度 \(tol = 1 \times 10^{-5}\)
4 u# F/ Q9 P( ^* C
1 l9 \( W  @) _6 t2. **计算分割点**:5 }4 v0 S  i$ g: A- E4 o
   - 计算 \(x_1\) 和 \(x_2\)! U  ~7 `- E2 ?# Y

9 [4 O5 _) N% ]3. **评估函数值**:
4 u0 [' P; {7 x2 E: M& M; t: m   - 计算 \(f(x_1)\) 和 \(f(x_2)\)
& _0 Q, c: z8 G9 n4 v, g0 y7 R* ~* J
7 d7 U; D, q9 q4 L+ [4. **缩小区间**:
# N5 |) H6 L+ o% k6 o1 b; ^- G4 z   - 根据比较结果更新 \(a\) 和 \(b\). t- e7 ?& E; I* V" A& R8 N8 V6 c# v0 S

' H7 J9 E! z$ M& k# q5. **迭代**:9 E3 R# F& D3 Z( w, }, A" ^1 J
   - 循环直到 \(b - a < tol\)) U# U/ q6 ?6 d- R3 e) d

6 K: n# C+ t7 @6. **输出**:* W. c  {" a; Z6 T8 D# _' E: y. P- g
   - 找到极小值点和最小值。1 d6 C8 `4 o! [6 e* @! v
, L7 G. D: J* Y
### 优势与局限, G, r1 s+ G4 Y0 y# {& u
7 @& f  F; J( h/ C
**优势**:
0 C% ~, s8 M7 }" T0 z- 收敛速度较快,特别适合于平滑函数。) V$ {# x0 J" P7 y0 g' I
- 简单易实施,对于不需要求导的函数也有效。
$ h8 \! Q# S+ G7 S& a4 P& b
9 |4 T5 E+ H# ~**局限**:+ ?1 F  K' r3 _* t1 g1 A3 n- B
- 只能用于一维问题,对于多维问题不适用。2 n- k% Q7 m; N4 W9 ]% X. h8 N
- 在函数已有许多极值的情况下可能找不到全局极值。/ `: c! B+ s9 Z
5 P1 h3 L% u- ~% K4 z! X
### 结论' J; C# Z& F! b
; ]4 [  }: v* `5 f. ~' P: A' _/ F6 N% u
黄金分割法是一种高效且简单的优化方法,适用于求解一维函数的极值问题。通过迭代缩小搜索区间,能够逐步接近目标收益,并实现优化。
, U" J! ?0 k8 o/ Z. P8 k9 P. Y
" L* [* P/ L9 {' p* f+ a, z
$ _5 x, C, u6 B, P% x
1 \4 k( j$ ^. U. ^6 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, 2025-7-31 16:19 , Processed in 1.381353 second(s), 54 queries .

回顶部