QQ登录

只需要一步,快速开始

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

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

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

1176

主题

4

听众

2887

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-9-27 17:17 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
### 黄金分割法的基本概念
  v. c  a" l# c4 U& x
7 u* L/ ^- \! }黄金分割法是一种用于求解一维优化问题(特别是寻找函数极值)的方法。其基本思想是通过在给定区间内选择特定的点来逐步缩小搜索范围,最终定位到函数的极值(最大值或最小值)点。
! j/ m( V: L7 j6 C( d, ^" _# q& N+ q3 v" L: `; w
#### 黄金分割比1 \1 R2 `, ]. d* Y3 w
% ~/ H4 a8 R! O$ C3 [  }5 r
黄金分割法使用的比例称为黄金分割比,约为 \( \phi = \frac{\sqrt{5}-1}{2} \approx 0.618 \)。这个比例具有优良的数学性质,可以有效地减小搜索区间。
5 h' \, }) Y8 Z* I; m6 E' R/ s2 C
. D7 `; z/ h3 P: |6 S( E! q### 实施步骤
5 F# @. _' s" E
- F, b$ E) z* Z% m% e1. **初始化区间**:
! Q$ v8 u" K( K   选择一个包含极值的区间 \([a, b]\),并设置一个容忍度(或精度)值 \(tol\),用于判断何时停止搜索。& _. e: f$ x' T$ p$ {  h& m. u1 _
0 X4 Z, y; s+ p% p
2. **计算分割点**:& |; [& v  K& z
   计算两个点 \(x_1\) 和 \(x_2\):# P; e( L( [) n  y7 n
   - \( x_1 = b - \phi \cdot (b - a) \)
+ ^6 J$ Z' l% B' t. N! ]   - \( x_2 = a + \phi \cdot (b - a) \)
  ?9 N0 u; I& L' X. V) l! A3 W+ c4 @5 W) W1 P
   这些点按照黄金分割比例将整个区间分为两部分。" ^; Z5 @4 n" j! N
9 Z# D9 L# s( u: H. M
3. **评估函数值**:
* O9 n2 X8 h) Y; N) h' e   计算这两个分割点的函数值:
: l! K, a. T& X1 @) a6 M   - \( f_1 = f(x_1) \)
0 \7 ~5 d  Z6 O" j) c# R1 {0 |   - \( f_2 = f(x_2) \)9 c1 t5 N( Z# \% j( e2 v

2 i" l4 R. J( Z- G( u; A4. **缩小区间**:! D; O3 W; I5 ^' o  c" p/ O
   根据函数值的比较来决定缩小哪个部分的区间:: o" u1 L# X) l7 a" T% _
   - 如果 \( f_1 < f_2 \),则在 \(x_2\) 右侧的区间不可能包含最小值,将右端点更新为 \(b = x_2\)。3 h% [  y! n. V5 Y; j
   - 如果 \( f_1 \geq f_2 \),则在 \(x_1\) 左侧的区间不可能包含最小值,将左端点更新为 \(a = x_1\)。. I  r8 n, h; L1 u' Q- M- b% Z
4 e9 }9 D- D" u5 k
5. **迭代**:1 T; ^" l$ ~% B" o* v6 [4 K& f
   重复步骤 2 到 4,直到区间的长度 \((b - a)\) 小于容忍度 \(tol\)。; |* `6 g6 Z: J  V5 L

, b5 U/ d: u7 W! x6 l5 q$ B6. **输出结果**:
$ ?. r3 v* P2 Q' m8 b   最后,计算区间中点 \((a + b)/2\) 作为极值点,并返回这个点的函数值。
9 h$ c7 X$ u, j. O( x6 ~6 h5 ~" I8 D" Y9 T1 i5 h( E5 |/ d
### 具体示例' D$ Q# x" G- s& c  c" ^9 \
+ p- ?* v6 c# ]: m1 q2 f
假设我们想要找到函数 \(f(x) = (x - 2)^2\) 在区间 \([0, 5]\) 内的最小值。实施步骤如下:/ [/ g  q  g  M. l7 O8 p! A
1 i  \' r  {; a& c8 A9 X2 n
1. **初始化**:5 {) W: K9 o, {" {1 E
   - 区间 \([0, 5]\)( E1 r! c$ Z5 V) y) }7 W6 r) m
   - 容忍度 \(tol = 1 \times 10^{-5}\)
9 y, E; I1 `7 {8 p( C! E' [* w8 A' W
2. **计算分割点**:: D" Z9 @* {& n8 {/ k+ T; W
   - 计算 \(x_1\) 和 \(x_2\)' L! J1 j# Q, a

' A& c, B* S9 X: G  I8 E3. **评估函数值**:
3 o0 v4 Q: e$ i; b1 B" s0 H   - 计算 \(f(x_1)\) 和 \(f(x_2)\)2 M9 W" U) Y& q# w9 R( F
7 L+ F) m& x1 L+ f, D+ i5 l
4. **缩小区间**:1 Q4 ^+ a  G' `2 F3 k
   - 根据比较结果更新 \(a\) 和 \(b\)4 [9 m0 B* o' H/ Z  Z. [4 o

6 v3 }- o& x1 U" S; |  B+ O5. **迭代**:: L+ |5 z, ~$ t+ @' {7 h( U9 a
   - 循环直到 \(b - a < tol\)
5 B0 P* L- E- t/ T5 A- a* n0 X% e1 U% g* M
6. **输出**:' \1 {, K9 J9 C/ T
   - 找到极小值点和最小值。: H( S7 V- S% [- R# K0 t' R0 W

, @; h2 t+ S$ g: R9 r3 {  I### 优势与局限8 X4 Z$ m% x6 R) z  S

( y; e0 T( ~3 }: E# K. O; [**优势**:# w, _/ P( k/ Z) j7 z* G
- 收敛速度较快,特别适合于平滑函数。
9 U0 q7 F1 r7 E5 P- [5 L; c0 ~) O- 简单易实施,对于不需要求导的函数也有效。3 d2 [' _7 n0 J' \& p$ m  z
5 d7 v3 |3 l( e
**局限**:3 Y3 S1 _$ \/ @7 a! r- P
- 只能用于一维问题,对于多维问题不适用。
5 Q/ X& V1 i7 }1 [9 |! g- 在函数已有许多极值的情况下可能找不到全局极值。
& O5 I3 ?; r$ R1 ?- J7 l2 j7 W2 a! J+ W
### 结论
( A" X* R. n, d. r7 J2 k) O* P% M( S7 a, M( L" n  Y0 e
黄金分割法是一种高效且简单的优化方法,适用于求解一维函数的极值问题。通过迭代缩小搜索区间,能够逐步接近目标收益,并实现优化。! m7 T. [0 D$ N/ f) C2 q

& y: k7 i) T4 W* r+ E6 X+ \  y2 D! q' X5 p+ M
( i; |8 H' R  t1 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, 2025-11-5 20:14 , Processed in 0.342895 second(s), 54 queries .

回顶部