数学建模社区-数学中国

标题: 牛顿法求多元函数的极值 [打印本页]

作者: 2744557306    时间: 2024-9-25 16:39
标题: 牛顿法求多元函数的极值
牛顿法是一种用于寻找多元函数极值的有效优化方法。它通过利用二阶泰勒展开来迭代逼近函数的极值点。以下是使用牛顿法求多元函数极值的步骤及示例。
4 Q. i9 F* r" _: a: u( S, b& t
) v* ~0 k0 c- r4 X# a+ u### 步骤
3 C; B' v3 J# o8 ^- z3 J; f  T1 _( P& {9 y: t! o7 Z
1. **定义目标函数**:% e8 X- }/ B2 |6 c- W; G- t
   设目标函数为 \( f: \mathbb{R}^n \rightarrow \mathbb{R} \),其梯度和哈essian矩阵定义为:: J  H3 Q" _" R

4 c% D: [3 e% G& \; U; C# k) P6 ]   - 梯度:\(\nabla f(x)\) 是一个 \(n\) 维列向量,表示函数 \(f\) 在点 \(x\) 的一阶偏导数。
# X% j) f; y/ N   - 哈essian矩阵:\(H(x)\) 是一个 \(n \times n\) 的对称矩阵,表示函数 \(f\) 在点 \(x\) 的二阶偏导数。9 g' [% D( a2 r1 M( h1 ^7 L& E! ~

3 m. b% W; T3 k4 {! [2. **初始化**:
8 K9 [/ R0 R' b4 t- E2 J9 w   选择一个初始点 \(x_0\)。
; t) m% p% R( G# ~' _/ q, b( k2 ~, h1 H. s' R: F4 W
3. **迭代过程**:
4 l3 ]" B2 |& w4 X   对于每一步 \(k\):
% j) y# Y- h9 O- K6 ?   - 计算当前位置的梯度和哈essian矩阵:) O# m" _7 W4 O" R# a
     \[
8 j& x6 ?7 \1 Y7 _' M     g_k = \nabla f(x_k), \quad H_k = H(x_k)' v0 C+ x4 w) E/ O  F
     \]  G, ]% m3 g9 E, B. w, R
   - 解线性方程以更新位置:
6 i# D: L! r* v' i7 q- ~3 p     \[
9 x4 g; V& [5 |     d_k = -H_k^{-1} g_k% t( E$ f2 K9 u1 s4 C
     \]
( \3 X8 |" y/ U3 R) r0 Y9 C% R; p   - 更新位置:0 e9 u; |* g  m3 ]  o, v' A: N4 I
     \[
; |' o7 D. _3 s$ v% f4 `* ?. q" Y     x_{k+1} = x_k + \alpha_k d_k
) r! x5 p/ H( [1 N8 q9 y) H     \]
+ c! H5 |+ Q" S$ @. x- X5 x) {     其中 \(\alpha_k\) 是步长,可以使用线搜索方法来确定。
& M/ B/ e* a; ]* G# M; C7 Z8 k! _4 W$ e# ^; V( l/ }6 u3 D. q4 J
4. **收敛判定**:, M/ |/ c% K' L+ d; \& A( C$ D( q
   - 检查梯度的模长是否足够小(例如 \(\|g_k\| < \epsilon\),其中 \(\epsilon\) 是预设的阈值),或者检查相邻两个点之间的距离。- a) \( O7 t& v4 h8 f

; f. _% l; m& j' \5. **结束**:
. R# {3 Z. H$ V& N   - 当满足收敛条件时,结束迭代,返回当前点 \(x_k\) 作为极值点。) ^& e' T! T$ ?7 d; h
) ]9 r* N( }% o+ N
### 示例7 e. E( f+ ~( z) C7 S5 q
% P8 u) z8 c0 ]+ u% e7 t
考虑函数 \( f(x, y) = x^2 + y^2 - 4x - 6y \)。7 i+ T: c% t& X2 E* ?1 m" ]

2 v- N( y2 ]6 `#### 1. 计算梯度和哈essian矩阵: p# H: k, }* Y
; x' x- i/ F+ Z
- 梯度:; @, q7 O0 ~: q( B4 l
  \[- S* [2 d% [4 q! l
  \nabla f(x, y) = \begin{bmatrix}
) G( d1 k& I; z  \frac{\partial f}{\partial x} \\
( n  W) _5 ^  b1 X  \frac{\partial f}{\partial y}4 a2 v* q. z7 }! [7 u4 C5 {" i# y
  \end{bmatrix} = \begin{bmatrix}
' z$ ]* U7 U8 o; t9 n, o5 D  2x - 4 \\: F9 L7 U# V+ ]; u) [2 f  M, l
  2y - 6
# ^- N. x3 x% G! A; N  \end{bmatrix}" B% k8 y# e/ @; m$ Z5 @
  \]
) [9 l2 D5 J1 U+ T4 A- g' Z
$ j3 y' ?$ M) P- 哈essian矩阵:+ V8 O2 v/ t/ Q' m; }( {! K3 @# h. ^+ a
  \[8 B* w7 i, O8 ?6 I$ P
  H(x, y) = \begin{bmatrix}
0 r% q) L( P/ {, v# F$ Z4 ]  \frac{\partial^2 f}{\partial x^2} & \frac{\partial^2 f}{\partial x \partial y} \\
; q( W6 C! f+ w+ r  \frac{\partial^2 f}{\partial y \partial x} & \frac{\partial^2 f}{\partial y^2}
" |. P: e1 g& ]) H9 b  \end{bmatrix} = \begin{bmatrix}
( Y: ~/ M; T. U, v3 @! l  2 & 0 \\
6 r% p! A1 \/ J. f" P- e  0 & 2
* b* O+ b. R5 V5 r  \end{bmatrix}! l5 Y: L5 u, I  k2 ?/ H% @9 W
  \]
/ G7 ?# d  I# d! k" V  N
" m  P$ ]7 U" X#### 2. 初始化
5 T6 s4 u, z  _# o4 L. Q6 l! c, U) ?+ _
选择初始点 \( x_0 = (0, 0) \)。$ H" [- L* i5 K/ V: T, {

) Z+ H( t2 [3 p2 T/ P#### 3. 迭代过程! q8 j/ f2 i3 ?
, r" ^4 t. Y9 I& C4 x. y6 M
- 计算梯度:0 E) j2 R/ B5 R0 ^; A8 l
  \[
5 B! n7 L8 p! C" p, {& Z6 p2 R  g_0 = \nabla f(0, 0) = \begin{bmatrix}
2 F3 y# I% |; [  -4 \\
( Y: r% [( ]; U) t2 X  L  -6
/ ]8 M$ g+ J; w+ h/ g$ @( O  \end{bmatrix}# O: v4 O) B6 [& o9 f" f
  \]
! E! h4 s, k- f9 o9 G  q+ ?' q( b$ w: U6 D1 [9 w
- 计算哈essian矩阵(在初始点不变):0 z9 S) S/ v: w# }( d
  \[8 S+ D' E8 S) s( R& i
  H_0 = \begin{bmatrix}
, q: k$ ?, f. V$ H! q; a: u- A- f+ t  2 & 0 \\
- e, T! {: L9 {2 t# ]* L4 L" w  0 & 2+ v8 P  @- A3 t3 L' {3 n
  \end{bmatrix}
+ n3 |% T: i8 y  \]
3 I5 V3 x$ h6 b/ \6 k8 n# Z, L
0 g2 M& M6 `& q2 ^! y8 m8 }- 计算搜索方向:% W  H/ G( W4 n/ g* J6 W
  \[
5 v9 Y1 |' Y5 t( Y, R& U0 h) b  d_0 = -H_0^{-1} g_0 = -\begin{bmatrix}
( E' g- b, U4 q  0.5 & 0 \\
# Q6 ]  g4 S9 T) g  0 & 0.5& `0 r1 Q. T( [( o5 J
  \end{bmatrix} \begin{bmatrix}& A8 g' g8 g& l; B: j$ }. F
  -4 \\
% F) T$ i) p4 E. F$ K  -6- P- {# i' e0 v! ^
  \end{bmatrix} = \begin{bmatrix}
9 T) q4 K% v) N& O5 Z! d  2 \\
. i3 ?8 R. X) r- u: o+ L$ J; m  3
) H/ E  s; [7 B4 D7 j# n" a) V  \end{bmatrix}
8 o' O' v7 G% e* N/ B) J  \]3 d9 s2 s) n$ b+ S
) k: [: \5 n6 L2 y
- 更新位置:
0 A6 U* r8 l5 Q1 |  \[  x& }6 `* @' q& f3 I8 V8 I6 O- Q
  x_1 = x_0 + d_0 = \begin{bmatrix}9 V# r6 T% w1 K; v: h9 G) ?
  0 \\
0 R7 ]8 n2 Y' |  02 l3 f; c+ \0 q/ P  |
  \end{bmatrix} + \begin{bmatrix}: W) H+ d) [5 E- U
  2 \\
) T- U8 r+ e: B: m1 z  3
9 c. H: v+ e# ~0 v9 G# u/ N  \end{bmatrix} = \begin{bmatrix}
( e/ B* F9 k0 Q6 _- C/ k  2 \\8 ^1 c1 |; D  Q% T) l1 A/ o
  3
5 R8 P7 ^5 e6 I: I8 D  \end{bmatrix}
7 ~! l9 L& t7 C& c3 r  \]
2 E" K  u, b# [
1 i8 p0 }7 O$ V& o$ l! S& _& T9 G- 重复上述步骤直到收敛。) q5 b! e6 U. w7 D7 _
9 v5 c6 A4 p5 m  E+ {" z% C: Q
#### 4. 收敛判定. s5 ?" ]7 B. c' f8 M9 w* g

2 s7 u, |2 g4 C" h" ]在后续的迭代中继续计算梯度和哈essian并更新,直至梯度的模长小于某一阈值。5 k" W5 P/ d) H( H# E" }- F1 b

- H; H, b. i5 A### 总结# ]5 z: D& s9 K/ ]; `, c
5 h+ ^9 f" |8 Y. ^2 t0 A0 ~
牛顿法通过利用梯度和哈essian矩阵提供了快速的收敛性,尤其在接近最优点时表现优越。然而,它对初始值的选择和哈essian的可逆性有一定要求。在问题规模较大或哈essian不可逆时,可能需要使用拟牛顿法或其他优化技术。; p/ e8 ?, W0 _# i# W
! |! z5 `! @0 k/ s; P: o

/ x, j5 Z" u/ `1 z7 {8 s5 _( W, z: b8 a$ C* ?5 c+ N

minNT.m

517 Bytes, 下载次数: 0, 下载积分: 体力 -2 点

售价: 2 点体力  [记录]  [购买]






欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5