QQ登录

只需要一步,快速开始

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

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

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

1198

主题

4

听众

2978

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-9-27 17:17 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
### 黄金分割法的基本概念
7 ~, Y) b' u' W8 c( s& [/ ?/ k$ n" r  {
黄金分割法是一种用于求解一维优化问题(特别是寻找函数极值)的方法。其基本思想是通过在给定区间内选择特定的点来逐步缩小搜索范围,最终定位到函数的极值(最大值或最小值)点。+ p7 Q. V8 T( C8 g" B
" l  T" r# I9 v, e$ L: |
#### 黄金分割比' \' |! X% k: w# ~1 k3 R
  }7 T& Z7 m/ ]0 H) |! [' G1 d
黄金分割法使用的比例称为黄金分割比,约为 \( \phi = \frac{\sqrt{5}-1}{2} \approx 0.618 \)。这个比例具有优良的数学性质,可以有效地减小搜索区间。( `1 y; n" U! D! r' E5 n

& H4 G2 t2 ?/ v8 a  E+ i### 实施步骤
1 z7 A" A& @3 S% C" J/ b8 p4 c2 r6 b0 V
1. **初始化区间**:9 y( n9 V1 ~3 Q( ?0 H9 J# P* g( |
   选择一个包含极值的区间 \([a, b]\),并设置一个容忍度(或精度)值 \(tol\),用于判断何时停止搜索。
9 j9 H0 I# A9 q7 ^. b5 L- k8 ]  r7 q  w0 Q
2. **计算分割点**:
- P# t) d) x! g' W4 _% p9 X1 v   计算两个点 \(x_1\) 和 \(x_2\):. F1 {- ^$ x. ]* a
   - \( x_1 = b - \phi \cdot (b - a) \)/ i1 j# L1 m+ U. K$ z; l
   - \( x_2 = a + \phi \cdot (b - a) \)5 x% B3 }: d5 o2 B7 `0 Q. ]. d: v
( A+ y& j' T0 R+ \1 m6 E
   这些点按照黄金分割比例将整个区间分为两部分。. r& G- |- z9 p" [1 W
+ R) O$ t7 d# `" x$ g8 n% Q% i
3. **评估函数值**:5 Z0 y- {  @) ?/ l; d8 `6 @
   计算这两个分割点的函数值:
# X& u- f5 V; Y9 j: D% \/ k3 N   - \( f_1 = f(x_1) \)
) J- I1 L. I' Q1 _   - \( f_2 = f(x_2) \)9 O4 n0 W* e: m0 K0 a4 E% n
4 M" ~6 G- m! c7 D
4. **缩小区间**:/ H- @. b8 @% X$ q! p8 e
   根据函数值的比较来决定缩小哪个部分的区间:0 n4 @1 _7 B1 j& d  w6 e. Z
   - 如果 \( f_1 < f_2 \),则在 \(x_2\) 右侧的区间不可能包含最小值,将右端点更新为 \(b = x_2\)。
7 x8 s, f! y2 o4 H6 b1 x7 I   - 如果 \( f_1 \geq f_2 \),则在 \(x_1\) 左侧的区间不可能包含最小值,将左端点更新为 \(a = x_1\)。
+ M- v" S7 |: Q% ?. u5 Z9 U. [: u# Z! S  O
5. **迭代**:& K* s0 a) Q, P; F
   重复步骤 2 到 4,直到区间的长度 \((b - a)\) 小于容忍度 \(tol\)。
; P6 S( R; `, ~5 S' [' Q4 v& ^3 ?' |  D& _( V1 t
6. **输出结果**:# I3 |! j% o: G- H4 E8 m; u( Q
   最后,计算区间中点 \((a + b)/2\) 作为极值点,并返回这个点的函数值。
. d" Q! T2 e# C$ \: U, Y# [& C* P2 |/ q& {: f
### 具体示例
! n% V( q3 _4 _5 |. i2 I- o- {$ G( v2 N. H* C
假设我们想要找到函数 \(f(x) = (x - 2)^2\) 在区间 \([0, 5]\) 内的最小值。实施步骤如下:) F+ P* A0 v. ^4 Y1 ~* g) M

& l* m! ^4 O6 k! E2 B1. **初始化**:! P9 y" V& k! A( F
   - 区间 \([0, 5]\)
' X# n: W& L- u   - 容忍度 \(tol = 1 \times 10^{-5}\)
) J% G7 p2 [' k; X( ^
" A# E8 _+ M0 z# m- t0 ^2. **计算分割点**:
* V8 s5 U) E3 G3 u   - 计算 \(x_1\) 和 \(x_2\)
- R" `8 N) K7 |$ n" M/ ]# f" S
" d% U) k# ~  a. _/ v3. **评估函数值**:
) B7 l. Y* \0 w   - 计算 \(f(x_1)\) 和 \(f(x_2)\)
% Z$ x/ d$ {7 H
# `2 w& b9 {& Y% Y3 D- q4 O9 X! {4. **缩小区间**:
% P% `/ \, W( z% m+ @) U3 @# l0 x   - 根据比较结果更新 \(a\) 和 \(b\)  X: l1 c8 Q; O+ v) U( w5 o8 l
( w/ A% a+ m$ j, U# F; G8 W
5. **迭代**:* R: I+ n4 n( f* C7 H
   - 循环直到 \(b - a < tol\)
2 z: ~: c6 B7 Y, Y1 T
3 u' R5 o" X2 x, C7 Q" g6. **输出**:
  Y( C5 ?5 v! w   - 找到极小值点和最小值。
/ ^8 l8 X2 K) }! h. G* Y6 m
  N7 J$ p- _( j( z3 I5 a### 优势与局限9 N8 Z+ s4 j. P. \
3 _5 `: k2 s' r- `
**优势**:
( n& l2 P1 L6 E* z- 收敛速度较快,特别适合于平滑函数。
; d+ K- G+ \( ~) j- 简单易实施,对于不需要求导的函数也有效。/ _+ [" k* E: O8 ^# s4 `& y

! F5 p+ j& C3 F**局限**:
5 ?) Q) t) x. V4 W; |0 L( k7 p$ {1 [- 只能用于一维问题,对于多维问题不适用。: J: E. {% ]5 s$ K: m1 F3 [3 l
- 在函数已有许多极值的情况下可能找不到全局极值。9 |: l) o' q9 O9 N

3 ~' i* @5 o3 s6 O" m### 结论
0 R! w, R5 z( K+ O4 Q( o0 C3 P6 t9 B3 u  E3 j
黄金分割法是一种高效且简单的优化方法,适用于求解一维函数的极值问题。通过迭代缩小搜索区间,能够逐步接近目标收益,并实现优化。; W' j. K6 p7 s  v& `2 T% H) r
, Q1 n2 x3 L8 O% r* F: A

; Q$ o, u+ Z0 [* l% \% K# l7 B" R! N2 j2 D6 V3 ?

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-10-10 05:58 , Processed in 0.412609 second(s), 54 queries .

回顶部