QQ登录

只需要一步,快速开始

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

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

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

1176

主题

4

听众

2887

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-9-27 17:17 |只看该作者 |正序浏览
|招呼Ta 关注Ta
### 黄金分割法的基本概念; {# @! B3 n, m: E: s
1 }% I2 a; n2 E" @
黄金分割法是一种用于求解一维优化问题(特别是寻找函数极值)的方法。其基本思想是通过在给定区间内选择特定的点来逐步缩小搜索范围,最终定位到函数的极值(最大值或最小值)点。% [3 N6 Q( b7 P. ?* s9 s5 D3 ]

4 h& ]- G0 i, d" y/ B#### 黄金分割比6 F! `; y- |3 k9 v  T; F
5 k/ F( G2 A# C# J; @
黄金分割法使用的比例称为黄金分割比,约为 \( \phi = \frac{\sqrt{5}-1}{2} \approx 0.618 \)。这个比例具有优良的数学性质,可以有效地减小搜索区间。, [" s7 U* k- j) H+ b* J
+ u5 O( B8 u' g$ I2 Q* f
### 实施步骤
* D' W& @4 z# T
" [, `" U* r. ^4 A. ]/ d1. **初始化区间**:% x# O. R7 Q( ^
   选择一个包含极值的区间 \([a, b]\),并设置一个容忍度(或精度)值 \(tol\),用于判断何时停止搜索。# Z9 X# A# ?+ _6 Y/ {" z. D, U6 J* T3 j

  Q3 z/ l) \7 e$ E6 W* j; `2. **计算分割点**:
! ?0 @  t6 a4 K7 C, H   计算两个点 \(x_1\) 和 \(x_2\):6 {8 Y- ^( n3 U: ]7 X' t
   - \( x_1 = b - \phi \cdot (b - a) \)* |5 e9 W4 G; w' P2 ~& y" e& [
   - \( x_2 = a + \phi \cdot (b - a) \)8 Y. r4 q( O$ F. K  Z- X, z+ f$ r

$ y  a9 e  p/ q2 B6 U8 `   这些点按照黄金分割比例将整个区间分为两部分。
% |- M( T. }" _; F/ Z6 W' Q9 X8 g! ]
3. **评估函数值**:
6 n7 J. O& m8 E5 O4 D) ^   计算这两个分割点的函数值:
/ J8 s5 K0 G5 D! u; o   - \( f_1 = f(x_1) \)
- R: L$ v. y$ s' m1 E6 J7 K: s# q8 {   - \( f_2 = f(x_2) \)
  _4 T2 h; L" r2 I% |
- K7 d# ]0 r9 P: v0 v6 D; c4. **缩小区间**:5 P! F$ P, E0 J: A7 B4 `; Q' Z1 B
   根据函数值的比较来决定缩小哪个部分的区间:; S3 C7 `9 G6 z2 S
   - 如果 \( f_1 < f_2 \),则在 \(x_2\) 右侧的区间不可能包含最小值,将右端点更新为 \(b = x_2\)。
6 o1 J2 |; Y; e! J4 w% J$ w5 w   - 如果 \( f_1 \geq f_2 \),则在 \(x_1\) 左侧的区间不可能包含最小值,将左端点更新为 \(a = x_1\)。
7 c! B) H4 f; i3 Q
) I) v$ L" L+ v' {& O5. **迭代**:
  N% P) |: ]( R1 I  g% C  v- n7 |   重复步骤 2 到 4,直到区间的长度 \((b - a)\) 小于容忍度 \(tol\)。
3 |3 p# i1 O$ R) L7 h+ J. z: \8 m
- G% x3 \0 W2 V3 j  D# k( E6. **输出结果**:
# u2 y, i/ f0 K2 P2 Q' {8 G   最后,计算区间中点 \((a + b)/2\) 作为极值点,并返回这个点的函数值。
0 a7 ^9 [% u! t; k+ }3 X. @
2 j- ?% X: l, }9 S+ n### 具体示例
- K9 _' a5 a0 c/ D- x+ g9 g( _/ I' |) c; {# s) g/ Y: Z6 ~
假设我们想要找到函数 \(f(x) = (x - 2)^2\) 在区间 \([0, 5]\) 内的最小值。实施步骤如下:( c2 _; O  a  y. T, P
) C2 Y* S0 I) `% U8 N7 c) B
1. **初始化**:
5 x7 \7 j0 T9 L8 D; w. n+ l( m   - 区间 \([0, 5]\)
  A) J) I9 t' @; G4 z   - 容忍度 \(tol = 1 \times 10^{-5}\)/ n% U3 i+ P! i$ ]' x- `9 z

! g$ ~2 o5 Z% E8 `1 q  X4 N2 r2. **计算分割点**:& O5 r" M. ?0 P. v5 h
   - 计算 \(x_1\) 和 \(x_2\)5 M$ ^6 s2 }4 v( _" M
7 R' a: u- k2 @9 H" M
3. **评估函数值**:' w, N+ e3 S7 @* [. m4 P1 u
   - 计算 \(f(x_1)\) 和 \(f(x_2)\)
% l% w3 N5 D8 N0 V! {+ |3 ~& l
8 @/ Z$ O4 b7 Y' j4. **缩小区间**:
+ n6 A9 \, S1 c" N, u6 B+ R' W) [# z   - 根据比较结果更新 \(a\) 和 \(b\)0 ~; e2 g) Z2 y% O
: S2 h+ r  T# n& o7 m1 e
5. **迭代**:5 Z/ B. Z; b. |+ n
   - 循环直到 \(b - a < tol\)+ w" G* x- @6 v3 J
1 y# w) t+ N& K# @5 P7 D
6. **输出**:5 {% D. N% n$ m' x/ Y: a4 l) R4 }7 N
   - 找到极小值点和最小值。
6 k0 z( B- v5 n
/ E1 c- s( }0 S$ z8 Z- S2 I/ E### 优势与局限
/ A/ c" B! \8 P% n: p& \+ F  x5 l7 Z- v, D
**优势**:* b0 M" \8 e5 C$ c" C$ \
- 收敛速度较快,特别适合于平滑函数。9 J2 T+ e, m8 h8 z  u: H  t
- 简单易实施,对于不需要求导的函数也有效。( d' J; Z" t2 \
0 L, F( F, k0 y; l  r1 R
**局限**:
6 C8 T  P9 K9 e. l4 o- 只能用于一维问题,对于多维问题不适用。
$ x) H5 T# L  A1 J* Q! ]( L3 P- 在函数已有许多极值的情况下可能找不到全局极值。
2 C4 ~' A# L2 r  ?( p
+ T! Q7 c! A* l" ]: l* d$ h### 结论
: _8 K! s7 H* a- B
! @6 Q, v3 Q' n& i* S黄金分割法是一种高效且简单的优化方法,适用于求解一维函数的极值问题。通过迭代缩小搜索区间,能够逐步接近目标收益,并实现优化。5 E- J9 n8 T0 x+ P) [

" M! `0 K* o8 C  L* Y$ c* Q7 `
8 R" ]5 A/ k4 V2 s

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-11-6 13:23 , Processed in 0.465579 second(s), 55 queries .

回顶部