QQ登录

只需要一步,快速开始

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

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

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

1186

主题

4

听众

2922

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-9-27 17:17 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
### 黄金分割法的基本概念
6 o) ?$ D% P7 g; [; D" _: ?
$ m. v" `) o) e& l6 A' X黄金分割法是一种用于求解一维优化问题(特别是寻找函数极值)的方法。其基本思想是通过在给定区间内选择特定的点来逐步缩小搜索范围,最终定位到函数的极值(最大值或最小值)点。6 q3 C) O1 _; h2 I
! i! c# t# t  {1 H/ U, ]
#### 黄金分割比
, \" R6 o+ |/ @# k! N! N+ S$ l( K6 X5 e+ b3 w4 |2 V$ n
黄金分割法使用的比例称为黄金分割比,约为 \( \phi = \frac{\sqrt{5}-1}{2} \approx 0.618 \)。这个比例具有优良的数学性质,可以有效地减小搜索区间。' U# f, U* w! E6 d7 J
' ^7 @, e# V9 O7 p
### 实施步骤
. d$ Q" M0 p- X, z. `: x1 Z7 [
. k' `0 G3 z9 y( H% @; \1. **初始化区间**:9 z  b/ j& T8 j+ a% ?! Y* a
   选择一个包含极值的区间 \([a, b]\),并设置一个容忍度(或精度)值 \(tol\),用于判断何时停止搜索。% q% \( R* q3 t, r: R* |( V
( c2 f9 g. e2 I) X: c0 J
2. **计算分割点**:9 c+ Z3 Z' ~. B0 }8 K: \. W0 L
   计算两个点 \(x_1\) 和 \(x_2\):  x! o+ o& c8 n3 x$ l0 S' V9 }
   - \( x_1 = b - \phi \cdot (b - a) \)# ^- ~' u6 y$ A
   - \( x_2 = a + \phi \cdot (b - a) \)
. l/ \, W3 M0 B$ k- D) u& t" Y  X. L* M
   这些点按照黄金分割比例将整个区间分为两部分。
3 P$ c3 r9 t& O% ?* n: C
! a9 C! `% W; t# K3. **评估函数值**:
# o0 h7 a, |" ]' H) q" Q5 Z   计算这两个分割点的函数值:
, w6 Q; Y0 h- m$ C% i5 G- X   - \( f_1 = f(x_1) \)  p9 y6 o/ h  q
   - \( f_2 = f(x_2) \)
- X1 u; u$ B; H  v
7 R+ o  X1 M- F) {1 |0 }; R1 s* @$ G4. **缩小区间**:
/ r2 [5 Q1 {/ E& i$ M' m, R   根据函数值的比较来决定缩小哪个部分的区间:2 ?2 z+ Q% g# v7 \6 Z: H
   - 如果 \( f_1 < f_2 \),则在 \(x_2\) 右侧的区间不可能包含最小值,将右端点更新为 \(b = x_2\)。
/ @% u4 T; O5 N1 n, y, x   - 如果 \( f_1 \geq f_2 \),则在 \(x_1\) 左侧的区间不可能包含最小值,将左端点更新为 \(a = x_1\)。" H9 Z% n# K- }2 Y' E
. g1 G4 [& ~# ]0 U0 b, B' p
5. **迭代**:
* _/ Q5 q3 t. p6 R) A  S* F   重复步骤 2 到 4,直到区间的长度 \((b - a)\) 小于容忍度 \(tol\)。- D" e$ V3 N* P- L$ s2 s  K
6 j4 t! B( W; A
6. **输出结果**:
& C7 [; k5 ?" [# U& i; H% g& W3 x. Q! G   最后,计算区间中点 \((a + b)/2\) 作为极值点,并返回这个点的函数值。- `7 K3 f! `5 M- K0 N
+ j! `2 |) ?* A; {/ K& z
### 具体示例: D. s7 v; S/ ]  F0 Y3 o
4 T2 a+ A+ Q9 {( t
假设我们想要找到函数 \(f(x) = (x - 2)^2\) 在区间 \([0, 5]\) 内的最小值。实施步骤如下:( k% j6 r  }  @: K2 C; p9 h; o
' u7 h; c( ~7 l( n) G2 @
1. **初始化**:# g, e4 W% U: Q
   - 区间 \([0, 5]\); C# H- z) L, u$ V) r9 n8 X
   - 容忍度 \(tol = 1 \times 10^{-5}\)
0 f' Q) N& w: P  z- t
+ g/ C7 v/ b% m: p: x' r& R) m2. **计算分割点**:
) A' o6 c0 s6 W0 f- ~$ F   - 计算 \(x_1\) 和 \(x_2\)
) v6 Z; p5 \( Z( I% \
$ ~) m. N& Z& y* s$ Z% h3. **评估函数值**:! @. i5 f$ w6 p" `2 b9 u* ?
   - 计算 \(f(x_1)\) 和 \(f(x_2)\)
5 D. R$ L' |4 X, S3 \* O1 \
/ p0 F7 m# Z" T, o9 x4. **缩小区间**:* l) {) R5 g$ A. z0 n% g5 g
   - 根据比较结果更新 \(a\) 和 \(b\)
  r2 [$ H4 t, P$ p4 ?: I7 F$ u. w
5. **迭代**:1 O4 t  p8 s: ~# m
   - 循环直到 \(b - a < tol\)
* C; W0 x) `; M2 r( M0 i
4 f5 ?" X8 U  B" _1 ~) [. Y6. **输出**:
7 e# Z1 P9 Y8 _/ j3 Q3 E   - 找到极小值点和最小值。
! B1 l# ~/ u1 N- {" E8 @2 I/ b! [" Y: y# b1 G0 m5 h
### 优势与局限
. ^3 Z$ t) k2 d2 w, O
$ J* l; I$ C7 }$ N**优势**:6 W9 ], c4 g2 S( f0 u- |
- 收敛速度较快,特别适合于平滑函数。( n5 t( |' `8 ^: f
- 简单易实施,对于不需要求导的函数也有效。, a$ h. z2 I  J0 Q+ T1 w
9 d2 y& M* T9 Z% P. X
**局限**:4 ]3 h+ m' y3 x- V) k5 _# i* e2 n# o! g
- 只能用于一维问题,对于多维问题不适用。* x+ w0 g8 J- u: m6 `3 x
- 在函数已有许多极值的情况下可能找不到全局极值。
. P4 Q4 H! [4 j  |# G2 L) v: ]  f) h
### 结论+ n, F' b' ]! d7 K
% \$ ~8 j  O. Q6 D
黄金分割法是一种高效且简单的优化方法,适用于求解一维函数的极值问题。通过迭代缩小搜索区间,能够逐步接近目标收益,并实现优化。
4 c. s: ^/ l0 ~# l/ l; D) b  w  N5 k/ _% ^$ _
# L( z! x. _. X1 w( \% {2 {
" o  A' r6 V( g( H3 R

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-10 18:45 , Processed in 0.416885 second(s), 55 queries .

回顶部