QQ登录

只需要一步,快速开始

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

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

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

1176

主题

4

听众

2884

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-9-27 17:17 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
### 黄金分割法的基本概念1 S7 m* g) W6 _" ^5 m
" \4 K7 ^7 B5 ^3 |) t* o; w
黄金分割法是一种用于求解一维优化问题(特别是寻找函数极值)的方法。其基本思想是通过在给定区间内选择特定的点来逐步缩小搜索范围,最终定位到函数的极值(最大值或最小值)点。
- q( C/ z" H/ |3 b' E9 h8 q; ]( _9 q* m  R7 n* u- G
#### 黄金分割比
# V, I4 N; E# a2 V5 i; {
. n) F; j. d# X黄金分割法使用的比例称为黄金分割比,约为 \( \phi = \frac{\sqrt{5}-1}{2} \approx 0.618 \)。这个比例具有优良的数学性质,可以有效地减小搜索区间。  S6 }: R* Q5 Z8 Q, ?8 J( m) K

- V% g+ o1 m  E7 ^: l! C  s( t, A2 y### 实施步骤0 s$ j+ D$ }) i5 R
- M5 z7 X4 r- g: n3 k' I( M
1. **初始化区间**:0 [) q: _1 {; x9 z/ Z4 {
   选择一个包含极值的区间 \([a, b]\),并设置一个容忍度(或精度)值 \(tol\),用于判断何时停止搜索。
% X$ G* W) j* [3 K; E" h% g" z
& ]' D8 x% Y9 P7 ^4 J  ?2. **计算分割点**:
; ~+ ?  x7 u; W! l  M   计算两个点 \(x_1\) 和 \(x_2\):
( r8 E* h! F' k   - \( x_1 = b - \phi \cdot (b - a) \)
" D+ ~3 L2 Y2 [7 K5 y5 _9 Z! g: |   - \( x_2 = a + \phi \cdot (b - a) \)% W% C' e% h: ^
0 V3 Z4 L+ u% x  o. M
   这些点按照黄金分割比例将整个区间分为两部分。& O4 t* y& t2 F6 \/ `4 v6 V
0 t& K7 {1 ?* w  R$ T! P3 s
3. **评估函数值**:0 K1 q3 F# Y: S8 {2 J2 B- A7 D* O4 ?
   计算这两个分割点的函数值:
7 [- d; t1 }+ y3 E   - \( f_1 = f(x_1) \)
: M3 ?4 g/ u  E! _* D4 S: ?( C   - \( f_2 = f(x_2) \)
, e, e/ q% z& c' W7 F" o- t( y# M# J
4. **缩小区间**:2 h  c. H0 b. ~* v' o* q( K
   根据函数值的比较来决定缩小哪个部分的区间:: P* h/ O7 W# C! Y
   - 如果 \( f_1 < f_2 \),则在 \(x_2\) 右侧的区间不可能包含最小值,将右端点更新为 \(b = x_2\)。
$ y$ g8 \9 @6 N, B   - 如果 \( f_1 \geq f_2 \),则在 \(x_1\) 左侧的区间不可能包含最小值,将左端点更新为 \(a = x_1\)。  N6 J- m2 f$ j% n
# \# Y- z9 A9 q& L# ]5 p
5. **迭代**:* z! R- [' [+ l7 b' E
   重复步骤 2 到 4,直到区间的长度 \((b - a)\) 小于容忍度 \(tol\)。9 v4 v9 V# O7 J7 y9 x/ X1 U8 K
4 I. V! U. \' ^% A/ Y# p
6. **输出结果**:7 I# S7 h2 [+ w' m3 B1 ^* u) ~
   最后,计算区间中点 \((a + b)/2\) 作为极值点,并返回这个点的函数值。- l- V7 U1 @3 S

, ^. \% e) |2 J### 具体示例
. r$ ?1 g4 x( a1 b, v  z9 K7 L' F2 ?4 m5 M4 O0 X
假设我们想要找到函数 \(f(x) = (x - 2)^2\) 在区间 \([0, 5]\) 内的最小值。实施步骤如下:- C- A; Q: V/ {9 F) U. E: }6 y

9 y' ^- n' c2 n8 s: k: @7 `) J: F1. **初始化**:
9 z7 a( O- V1 B1 S   - 区间 \([0, 5]\)1 y. i4 x$ A* p$ A& H
   - 容忍度 \(tol = 1 \times 10^{-5}\)
( Y% g1 g0 x% F+ c3 F% q% ^
+ n' v3 n  v, `% f$ }+ N2. **计算分割点**:: d: ?! h6 `# }' [6 H+ X4 k' y
   - 计算 \(x_1\) 和 \(x_2\)
5 b- @$ d; B& {# H, ^( |5 L5 M+ i
1 _$ M$ c; P! Z+ D3. **评估函数值**:+ j6 U/ p, f' S0 ?3 u* @! m
   - 计算 \(f(x_1)\) 和 \(f(x_2)\)- y' u$ y6 c2 p% N$ G

4 t& l$ I/ [1 x$ S3 O# R( e0 \4. **缩小区间**:
" Z8 F9 ^2 d  g; W9 j3 ^3 K   - 根据比较结果更新 \(a\) 和 \(b\)7 g$ d7 ~/ y1 E4 V9 }  E, W# f: ^& g

1 }( {1 T6 x0 B' U2 z! S5. **迭代**:
, g! _9 F* s# ~# H! t   - 循环直到 \(b - a < tol\). a5 J3 R4 E; c5 q3 a3 s( h
1 V7 v1 d) T3 n2 G/ \7 F
6. **输出**:0 |( t7 \' M  L. h9 y) u
   - 找到极小值点和最小值。
! r/ C& ]9 i9 A, C* K' _
- _$ z$ C4 Q; ]% H" i- p. k### 优势与局限* f4 l# C; {' d$ _7 r/ ^

* A! T; }8 ]2 q$ D0 V5 o* U7 H**优势**:
/ W; b3 ~, l$ G. \- 收敛速度较快,特别适合于平滑函数。
  O5 L7 P( z! w- 简单易实施,对于不需要求导的函数也有效。  F. v; ?1 U8 N) B+ k

! T( d5 P/ N. S+ x**局限**:* R9 D+ T6 F9 w: F5 H9 o3 ?9 W
- 只能用于一维问题,对于多维问题不适用。
0 T8 ^8 a- m7 k$ C7 t% L- 在函数已有许多极值的情况下可能找不到全局极值。8 a" a1 }& C) Z- ?  n+ T9 @
+ H$ f- J; L. m0 W
### 结论6 x0 T" t- j* w# l" M2 @9 R  r

6 I) g" t4 i. Q6 m: {* x% K黄金分割法是一种高效且简单的优化方法,适用于求解一维函数的极值问题。通过迭代缩小搜索区间,能够逐步接近目标收益,并实现优化。
. t6 u( V  ]4 e# V; G: P9 t
4 m' ^0 W3 q5 O- A2 b
3 i. ?* U5 ?6 Y! {; k/ u7 x
3 X7 Q) \0 x+ e0 N8 ]

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-9-14 14:12 , Processed in 0.814770 second(s), 54 queries .

回顶部