QQ登录

只需要一步,快速开始

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

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

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

1192

主题

4

听众

2946

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-9-27 17:17 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
### 黄金分割法的基本概念% }6 H; z5 e$ i1 M' I

$ S7 }: ~/ y5 L& r: u! a黄金分割法是一种用于求解一维优化问题(特别是寻找函数极值)的方法。其基本思想是通过在给定区间内选择特定的点来逐步缩小搜索范围,最终定位到函数的极值(最大值或最小值)点。
0 {1 |7 w/ b6 z: k6 j
9 }" q4 X0 B; S( N0 l: t, E; q8 t#### 黄金分割比
3 y- F7 v' O2 U/ P& T& C8 L% p7 D0 W' \; X3 z1 c1 v, ^
黄金分割法使用的比例称为黄金分割比,约为 \( \phi = \frac{\sqrt{5}-1}{2} \approx 0.618 \)。这个比例具有优良的数学性质,可以有效地减小搜索区间。5 f6 A3 T+ V% Q  c- }. U
% q% u2 {: Q8 U7 ?
### 实施步骤
1 Q# Z+ g0 E! O
9 p9 D) t& M- w1. **初始化区间**:
  T; @4 F- y$ l+ D   选择一个包含极值的区间 \([a, b]\),并设置一个容忍度(或精度)值 \(tol\),用于判断何时停止搜索。. E/ x' e8 ]: q* S; |7 A! v

0 q. y' R( l* f& d/ @0 y5 I2. **计算分割点**:/ f2 A- _. q+ m6 F
   计算两个点 \(x_1\) 和 \(x_2\):; d/ [2 q2 g: h1 ]% B
   - \( x_1 = b - \phi \cdot (b - a) \)
& ?( Y- w) x; d2 `- e7 G) Y# ?. h   - \( x_2 = a + \phi \cdot (b - a) \)
3 O7 @9 `% N6 J& G7 f
# [2 J6 |$ B4 h4 y' ?1 N- `, ~   这些点按照黄金分割比例将整个区间分为两部分。5 }/ c* q3 y+ F' I, L  R' S
$ u3 `+ J' a$ A) J$ L. X
3. **评估函数值**:
2 O( f6 L+ Y- S9 v: v   计算这两个分割点的函数值:
- u" D8 |5 b4 V8 N( u( _6 V   - \( f_1 = f(x_1) \)
* L, E0 ^/ O- T! {   - \( f_2 = f(x_2) \)
3 p1 A8 y* k+ S& l' \% c6 E& n& _. r, R+ U# f, G2 R: N: z( d
4. **缩小区间**:
  x' b2 q8 V! ?, K* w; }3 Z   根据函数值的比较来决定缩小哪个部分的区间:7 S6 X( H3 z7 ?# y5 z  S
   - 如果 \( f_1 < f_2 \),则在 \(x_2\) 右侧的区间不可能包含最小值,将右端点更新为 \(b = x_2\)。6 b$ i9 b5 W/ C6 ^' S9 ~' h
   - 如果 \( f_1 \geq f_2 \),则在 \(x_1\) 左侧的区间不可能包含最小值,将左端点更新为 \(a = x_1\)。  h7 S/ V% D, Y

. I9 h8 c* K6 K7 V( F5. **迭代**:& ~6 H+ k8 c1 K8 k" m* z
   重复步骤 2 到 4,直到区间的长度 \((b - a)\) 小于容忍度 \(tol\)。
& v# c. I! T( U4 ]) C$ p4 ^/ W) v) l7 C7 q$ }4 N
6. **输出结果**:$ g* M( {+ c% Y! H
   最后,计算区间中点 \((a + b)/2\) 作为极值点,并返回这个点的函数值。9 y) L) n8 |9 r7 ?: o8 d% l

" v: i5 \) h6 r, i5 o2 e% Q# M### 具体示例
. g+ a% a: D+ L( o
7 G  ^  o4 r5 a% x假设我们想要找到函数 \(f(x) = (x - 2)^2\) 在区间 \([0, 5]\) 内的最小值。实施步骤如下:: `6 U" J0 H% i  {

& [+ k, R& t8 L9 r! W1. **初始化**:
0 R' z1 L# ]0 l. a   - 区间 \([0, 5]\)" c* g4 t$ u3 o
   - 容忍度 \(tol = 1 \times 10^{-5}\)4 [2 B, L3 p$ N

# V8 I" K1 Z9 o& K: W2. **计算分割点**:
/ n: ^9 [5 O7 D1 {0 |+ A0 w   - 计算 \(x_1\) 和 \(x_2\)
% c! l1 ~5 x/ J4 V; D# D6 i& Z: K  C
3. **评估函数值**:7 `9 U7 d0 g. z0 X  {$ B
   - 计算 \(f(x_1)\) 和 \(f(x_2)\)
9 \1 W4 Q0 d. p5 s2 m" U! ]4 W5 C! x4 j5 o
4. **缩小区间**:
" g4 j. A/ v1 [5 `$ D, H* D   - 根据比较结果更新 \(a\) 和 \(b\)
4 b- S0 h, |% Y; O% F0 V& x# k5 L* a7 q4 E& \6 I2 G" M( y, B
5. **迭代**:5 C  z# N9 S/ F# O8 R
   - 循环直到 \(b - a < tol\)
& J7 z  {2 j1 F, f- n# K9 k* s; M3 x: U6 _/ [0 W( E8 J
6. **输出**:! Y+ ?+ [' }0 g1 x, P
   - 找到极小值点和最小值。6 \5 n& l' N" {7 q8 C8 o
5 ~+ i1 U7 n5 ?
### 优势与局限
7 X0 Z' r# ?' K/ M
6 R* N2 G# |. {( w**优势**:4 k1 r( n5 E$ J# M# L6 ^
- 收敛速度较快,特别适合于平滑函数。
% q- ?* \- S  A0 k& S  M3 d- 简单易实施,对于不需要求导的函数也有效。' b$ b% H$ J. |- a$ e% d

/ s& n( y/ L5 \8 U/ m4 t0 c**局限**:5 H: Q* |( R) i; M% b9 V+ f
- 只能用于一维问题,对于多维问题不适用。+ N' g4 i" ]7 f( @% e
- 在函数已有许多极值的情况下可能找不到全局极值。1 m1 n8 h2 X+ G4 A: H. ?- Y
- I: K4 O* W8 u
### 结论2 p5 s/ U; Q% }# d: S: l! o

) I# i+ E  u4 F0 w黄金分割法是一种高效且简单的优化方法,适用于求解一维函数的极值问题。通过迭代缩小搜索区间,能够逐步接近目标收益,并实现优化。) b1 o) x+ |7 V# V* U
  w: u4 H& P, V
" h; h# f* O3 |: s; |& P( K
9 s# @+ M$ j# g# H6 s4 ^* e

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

回顶部