QQ登录

只需要一步,快速开始

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

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

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

1189

主题

4

听众

2934

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-9-27 17:17 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
### 黄金分割法的基本概念3 X/ C/ t) T/ _( z7 {. y: M9 Q6 A

& s: K, d( T$ t& H% g1 \* z黄金分割法是一种用于求解一维优化问题(特别是寻找函数极值)的方法。其基本思想是通过在给定区间内选择特定的点来逐步缩小搜索范围,最终定位到函数的极值(最大值或最小值)点。
) y1 m- R2 Y( w% v" ?% H. J4 F
6 t' R1 m& N+ `& H! e/ ^#### 黄金分割比7 N# q8 g5 C) u, |( j8 Q. {0 Y# ]
4 }* y' B6 N( ~- j( R# C
黄金分割法使用的比例称为黄金分割比,约为 \( \phi = \frac{\sqrt{5}-1}{2} \approx 0.618 \)。这个比例具有优良的数学性质,可以有效地减小搜索区间。
) l! i, N! h3 `0 T! p0 ^" P' E3 v  z8 M+ v& s
### 实施步骤
( x: I4 Z1 }1 b" P: D1 A5 R: X, x5 p5 }& Y0 ^* Q7 W  e
1. **初始化区间**:2 ~% V  P( Z$ W3 O
   选择一个包含极值的区间 \([a, b]\),并设置一个容忍度(或精度)值 \(tol\),用于判断何时停止搜索。+ K1 Z" J* z1 V) ]6 Y

  u% I+ z" [& v2. **计算分割点**:3 F# T2 z1 K. a2 d3 M# F
   计算两个点 \(x_1\) 和 \(x_2\):3 U+ B, [$ l7 f- w4 l2 i, L/ X
   - \( x_1 = b - \phi \cdot (b - a) \)
  i' y9 s# g# b; w# S7 h# T: F* r7 J$ x   - \( x_2 = a + \phi \cdot (b - a) \)
' X1 ?7 t' i8 J5 G
/ M. X$ ?+ B4 N5 k% v4 g/ e" }   这些点按照黄金分割比例将整个区间分为两部分。! `% W# |- A# r3 M. L$ ?5 y0 U* \

8 v6 M, [4 E# z$ G5 U9 a" z3. **评估函数值**:- p2 |9 i! k4 O* o9 `; W
   计算这两个分割点的函数值:
/ K5 Y0 j. l( \" p% w   - \( f_1 = f(x_1) \)
1 h% R7 W2 ^; U* Z1 F   - \( f_2 = f(x_2) \): C/ ?, M4 w/ W: I
  s" q" ~- r4 B6 Y* A! ?
4. **缩小区间**:2 r/ x: X8 n" t( f( B
   根据函数值的比较来决定缩小哪个部分的区间:2 d. W4 ?# J% b$ p- i
   - 如果 \( f_1 < f_2 \),则在 \(x_2\) 右侧的区间不可能包含最小值,将右端点更新为 \(b = x_2\)。
3 t% U- O. w9 A$ l. r4 d7 m6 s   - 如果 \( f_1 \geq f_2 \),则在 \(x_1\) 左侧的区间不可能包含最小值,将左端点更新为 \(a = x_1\)。$ l5 \* W1 D, b: y

( W4 u; t6 W0 [$ v, c5. **迭代**:( M& z% B! M7 l, {' R7 X
   重复步骤 2 到 4,直到区间的长度 \((b - a)\) 小于容忍度 \(tol\)。
& S8 i/ H0 ?, i& y+ g9 B: W4 H( C4 M
6. **输出结果**:
  x* c# j3 A! ?# n0 f% g( S" R' T   最后,计算区间中点 \((a + b)/2\) 作为极值点,并返回这个点的函数值。
. o6 f% w" h$ w& ^2 Y8 C" E" u4 X, s* I% V) Q" Q2 ^0 Q
### 具体示例
1 S2 ~( N0 P: z! O( F3 Y6 ]& a: B: A$ {9 T) V5 d- r3 D
假设我们想要找到函数 \(f(x) = (x - 2)^2\) 在区间 \([0, 5]\) 内的最小值。实施步骤如下:* d5 `1 s7 f9 E, u# r* L; H+ i0 f# d
: f# c+ Z% [" J* w  ]
1. **初始化**:/ U2 F6 [0 S; }/ ?
   - 区间 \([0, 5]\)
: I7 h% m( ]5 V: H6 F   - 容忍度 \(tol = 1 \times 10^{-5}\)5 a2 Z$ A" M3 U& I( n. a

$ x, h7 f+ D( h6 f2. **计算分割点**:
: Y6 W6 V6 j+ V+ b# k8 {7 B   - 计算 \(x_1\) 和 \(x_2\)
* N+ I, x( U! s9 k7 y6 |- p( O0 h$ m9 |. I- ?  W
3. **评估函数值**:
. n- `* g9 _4 k* L: v   - 计算 \(f(x_1)\) 和 \(f(x_2)\)
1 E/ w  k6 T, ~; i. o( ~  S7 x6 f' w+ t1 m7 K& w9 V
4. **缩小区间**:! ?7 b& z5 ~! K" ?
   - 根据比较结果更新 \(a\) 和 \(b\)7 i& W2 ]! B2 e0 C$ M

/ F6 ]' F+ j" F# f$ |5. **迭代**:* R) C) P: c+ K" s4 [. K
   - 循环直到 \(b - a < tol\)
# {  t# D' S6 J' z. [$ s9 G) a: a0 p1 s0 u( v/ m
6. **输出**:* t; J- W6 f1 J
   - 找到极小值点和最小值。: d( `, J/ D1 _8 W  u

% B2 v8 T6 S& @" U### 优势与局限
+ K: @0 S* ^; h2 o3 t# V$ [' B6 \+ T: F0 f* ~) V, c1 y! a
**优势**:
. w+ y' Z! J5 c; K+ ~- 收敛速度较快,特别适合于平滑函数。& q; E4 O3 q8 S2 e# d9 |
- 简单易实施,对于不需要求导的函数也有效。
* Q" E. v. t( B: s9 ?4 k, U+ p& Q1 Q: S4 n2 F
**局限**:+ n5 t3 o, O, Q
- 只能用于一维问题,对于多维问题不适用。
! b$ Z9 x: [9 y- 在函数已有许多极值的情况下可能找不到全局极值。
' [3 r- U5 K) u9 Z; R0 V. _" J( [$ `' C8 N& V9 o
### 结论" S% g2 y" d1 B) f  L1 ]2 r' @

2 T* T3 p/ q  B& V* v2 \黄金分割法是一种高效且简单的优化方法,适用于求解一维函数的极值问题。通过迭代缩小搜索区间,能够逐步接近目标收益,并实现优化。; S1 [6 m4 e" B0 L: D
' C& b" V) b# |4 s. t

! c" H0 }( z8 S; \4 y4 ]$ C
0 }1 J' L. g1 S- ^: |1 s7 L# a2 `

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-8-3 01:41 , Processed in 0.449024 second(s), 54 queries .

回顶部