QQ登录

只需要一步,快速开始

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

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

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

1186

主题

4

听众

2922

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-9-27 17:17 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
### 黄金分割法的基本概念, [4 C& d6 _, P
4 X: Q7 N9 X1 C1 D6 @' H  Y) f' S8 q, V
黄金分割法是一种用于求解一维优化问题(特别是寻找函数极值)的方法。其基本思想是通过在给定区间内选择特定的点来逐步缩小搜索范围,最终定位到函数的极值(最大值或最小值)点。- ]3 O  S+ f2 |4 ^: z% n& s) _
3 P* z* {3 z; D* I# B+ s
#### 黄金分割比
, U$ @% [: }. I' |/ r* ^3 @% g
- h/ D) c: T4 e$ J. J5 ~黄金分割法使用的比例称为黄金分割比,约为 \( \phi = \frac{\sqrt{5}-1}{2} \approx 0.618 \)。这个比例具有优良的数学性质,可以有效地减小搜索区间。" y4 h( b( n' a) d& d& ~2 [

4 w7 A$ P+ i: L/ N### 实施步骤
% _' M% O2 ~* A2 z; U) }) L( c, W# K  }5 K2 ~
1. **初始化区间**:: P3 @$ p5 C) s8 Z! ?- A
   选择一个包含极值的区间 \([a, b]\),并设置一个容忍度(或精度)值 \(tol\),用于判断何时停止搜索。/ D0 x$ ^5 q9 n/ j& O+ e4 i( S

9 [2 d1 C  [3 Q! F  B2. **计算分割点**:! M" g! J* W' T  ^' b
   计算两个点 \(x_1\) 和 \(x_2\):! n  j7 a9 _3 \% p0 z
   - \( x_1 = b - \phi \cdot (b - a) \)* h) y) P" `* ]; I6 P# ^
   - \( x_2 = a + \phi \cdot (b - a) \)
( Q) f' i' R0 i7 Q* B0 |& U* A- x3 P6 J! _0 c- l: {$ @
   这些点按照黄金分割比例将整个区间分为两部分。
! N  g$ J) C  B& A; d) n5 L4 S$ y, }0 x7 T5 L8 w9 ~3 s
3. **评估函数值**:% s* ]( [  \5 O! X8 L7 z. U: Y% M
   计算这两个分割点的函数值:
( b- I' e% O0 b& m   - \( f_1 = f(x_1) \)
9 _. h! }% R$ d$ H0 C   - \( f_2 = f(x_2) \)6 B$ {$ }2 |! w+ w  {( ~  z
4 Y9 s; E% U' F( X+ i; R% L
4. **缩小区间**:5 X& p, s. S- j  P( U* H8 g
   根据函数值的比较来决定缩小哪个部分的区间:' s9 Y/ b1 D; O" O5 U
   - 如果 \( f_1 < f_2 \),则在 \(x_2\) 右侧的区间不可能包含最小值,将右端点更新为 \(b = x_2\)。1 s" k, t) |$ P" n" H' O; Y
   - 如果 \( f_1 \geq f_2 \),则在 \(x_1\) 左侧的区间不可能包含最小值,将左端点更新为 \(a = x_1\)。( H' T) I/ u8 `6 N
7 X! Y. r4 A' |, `
5. **迭代**:7 h2 n2 B- s2 R! Y* o- s# I: h
   重复步骤 2 到 4,直到区间的长度 \((b - a)\) 小于容忍度 \(tol\)。! Q" l$ n; C- j% E# c

- e1 o( ^! h; l4 q9 s6. **输出结果**:
1 M+ K& f( Q! D7 b- {  W, f! W   最后,计算区间中点 \((a + b)/2\) 作为极值点,并返回这个点的函数值。
9 q, j* |" f# L. g7 T! m
9 V& {# K- E- h4 l6 Z7 y# ]2 ]### 具体示例
4 I  @3 ^0 B& G
% w. I; F, c. X' }. }/ j& T) F假设我们想要找到函数 \(f(x) = (x - 2)^2\) 在区间 \([0, 5]\) 内的最小值。实施步骤如下:
) N$ T- V7 L$ }& C; X
9 H2 V. P- t7 J( b: q9 n# H  C/ V1. **初始化**:
) f2 r1 A( X2 l$ x! l   - 区间 \([0, 5]\)+ r5 Y, w! I9 P4 a$ `
   - 容忍度 \(tol = 1 \times 10^{-5}\)3 F  A8 \5 k5 ?% _- f5 {
- u3 B9 P2 k( G; \+ E6 D
2. **计算分割点**:7 f3 ]" J1 |  K3 ]! V$ `
   - 计算 \(x_1\) 和 \(x_2\)2 g: q  w% }1 H( O+ J

3 j6 W5 c, v2 i2 \  `5 ?3. **评估函数值**:! e* t' M" M" x' M8 x1 w
   - 计算 \(f(x_1)\) 和 \(f(x_2)\)
5 q  d0 E8 o" ^, S1 K. j% r& e2 [8 \) \: K# Y/ \8 s& U
4. **缩小区间**:
8 A% D& a, k1 ?8 \: b1 P. X0 Z   - 根据比较结果更新 \(a\) 和 \(b\)
' {5 j# R1 h  Y9 `* |: P# I) ]
9 _% O0 O* \+ P: I5. **迭代**:
2 s* ?) {. K$ |3 `4 V   - 循环直到 \(b - a < tol\)
. S) {: ~9 p& B1 T: X0 U8 A5 D1 x# h& J# @
6. **输出**:
7 [& i% p/ @/ E( _   - 找到极小值点和最小值。9 i7 _" M2 C! a8 U* R# }
$ }$ R9 V/ `8 B
### 优势与局限$ U1 I# `" C- ?$ S

- o0 G# [. _6 ^; @1 T9 I**优势**:1 f) F, r, c4 d2 y' K3 J  p
- 收敛速度较快,特别适合于平滑函数。+ C& V7 i& L9 T8 y) `
- 简单易实施,对于不需要求导的函数也有效。
: o9 y) b6 ?3 t. g! g' B8 z$ x" A8 R% ~7 o
**局限**:8 k2 N1 ?6 ]/ P) v# Z
- 只能用于一维问题,对于多维问题不适用。
; d5 D3 c7 l4 D  ~% s7 M- 在函数已有许多极值的情况下可能找不到全局极值。
# ]3 ?% I" P* i& P) C- a4 n
" C: S3 @" y( X/ f- d  f4 o### 结论3 E# J3 W" D# d/ C- w, R

2 r# J' D+ X1 Q% o+ {5 a黄金分割法是一种高效且简单的优化方法,适用于求解一维函数的极值问题。通过迭代缩小搜索区间,能够逐步接近目标收益,并实现优化。
" J+ j" w' A% w* O+ r3 z; m
0 }& V+ a. g& y8 o7 n& ], f: j" U7 j/ B
* f8 [$ r4 G. x# I5 c' S7 B

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-4-13 01:02 , Processed in 0.290656 second(s), 55 queries .

回顶部