数学建模社区-数学中国

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

作者: 2744557306    时间: 2024-9-25 16:39
标题: 牛顿法求多元函数的极值
牛顿法是一种用于寻找多元函数极值的有效优化方法。它通过利用二阶泰勒展开来迭代逼近函数的极值点。以下是使用牛顿法求多元函数极值的步骤及示例。
8 x) u9 H/ k6 h6 ^, k; j, ~1 a" }9 G& F; \9 L7 N$ Y, Y
### 步骤
2 x6 q2 B7 O$ J4 O, z# z( W9 b' ~2 b& e0 Z
1. **定义目标函数**:
& W3 D: S$ C% @$ ^5 h   设目标函数为 \( f: \mathbb{R}^n \rightarrow \mathbb{R} \),其梯度和哈essian矩阵定义为:
/ a" U* o  z3 {- q/ G; Y
/ s7 D. D) G( G/ ^; r5 k   - 梯度:\(\nabla f(x)\) 是一个 \(n\) 维列向量,表示函数 \(f\) 在点 \(x\) 的一阶偏导数。: I1 \* U& i. Q/ I/ X* m' _2 R
   - 哈essian矩阵:\(H(x)\) 是一个 \(n \times n\) 的对称矩阵,表示函数 \(f\) 在点 \(x\) 的二阶偏导数。
$ z% C& y. J/ I! E6 w3 S+ ]1 h3 t2 s
2. **初始化**:6 A  o  U: ^0 E
   选择一个初始点 \(x_0\)。
% K$ G" V- c$ @4 R* [$ `; |( }; _2 h" \6 i2 P& ]. Z
3. **迭代过程**:
2 B/ P9 Q, r/ n6 K8 C$ }% U   对于每一步 \(k\):. X0 s6 U! o  J
   - 计算当前位置的梯度和哈essian矩阵:
6 ^  X; g+ U, j. N  R: M     \[  U2 f- P0 e: l# Y2 a
     g_k = \nabla f(x_k), \quad H_k = H(x_k)
' i; w: @" b0 F( P     \], ]7 {  w2 l; C% |, b* g( r
   - 解线性方程以更新位置:8 W  ?* V8 F) ]
     \[
: e  P5 E# C0 P7 `- `* s# Q     d_k = -H_k^{-1} g_k# S) v2 a2 h+ Z! g
     \]3 t2 |5 N0 F, B. L; K* C7 v# F% _
   - 更新位置:
, L" s3 g* s! M+ y     \[
; X8 Q4 R  z, u  A: J. o     x_{k+1} = x_k + \alpha_k d_k5 b# s6 R' s. j/ \, X' r2 e
     \]
0 ~+ l; `6 d! X" }0 d$ X$ ]9 b& [5 _! M     其中 \(\alpha_k\) 是步长,可以使用线搜索方法来确定。2 h3 \" I$ m) q$ _( x3 r

, f& |6 b8 P2 U* p- m1 a% P/ Y4. **收敛判定**:0 v" R: Z3 Q& j  T
   - 检查梯度的模长是否足够小(例如 \(\|g_k\| < \epsilon\),其中 \(\epsilon\) 是预设的阈值),或者检查相邻两个点之间的距离。
3 D: _1 [- u! ~' H) b
) o) Z7 C: q2 ^7 ?' D1 m5. **结束**:
) n, b' E" ?1 p4 \   - 当满足收敛条件时,结束迭代,返回当前点 \(x_k\) 作为极值点。
6 j; c: t: P: E
6 _: D; h4 d  y  ]### 示例! X7 @; N- T2 ^

6 g1 n" ?/ V* L) o2 A* B7 L考虑函数 \( f(x, y) = x^2 + y^2 - 4x - 6y \)。2 @5 T$ W8 j  O

4 K8 E- b0 _% x#### 1. 计算梯度和哈essian矩阵% W% s7 Y1 B$ e/ W. o, V

  x2 T/ V3 ?5 [7 L2 M- 梯度:
) a% C$ R  G' \3 N  \[
9 V5 |+ N# d8 ^' z. y: g2 _  \nabla f(x, y) = \begin{bmatrix}2 O8 k: I6 c1 a% L" G  }
  \frac{\partial f}{\partial x} \\6 }7 `6 I9 Z# }0 k' Q- Z1 i
  \frac{\partial f}{\partial y}( Q! `$ s" E$ a+ r2 i) n
  \end{bmatrix} = \begin{bmatrix}
4 k4 U/ h) y: g' _  2x - 4 \\4 H& h; ^' B1 g& c- f% z6 \/ D% I
  2y - 6
1 p# S6 y7 U2 v  \end{bmatrix}4 ]2 k, a) W& A( S
  \]
8 H) j) F0 V& }- ^8 \. o1 I
) W" M  q& F+ r4 h6 q: P3 B- 哈essian矩阵:& j9 L7 i! K& d6 L
  \[% c7 D, {& u: S! `, U: A$ _+ m
  H(x, y) = \begin{bmatrix}
) o* n9 I0 X7 q$ S* Y7 ?+ p  \frac{\partial^2 f}{\partial x^2} & \frac{\partial^2 f}{\partial x \partial y} \\/ @, p: }1 l; w0 V
  \frac{\partial^2 f}{\partial y \partial x} & \frac{\partial^2 f}{\partial y^2}. K( J; k0 Y5 [9 {
  \end{bmatrix} = \begin{bmatrix}
" c) |% `6 s2 K4 W# B$ K% w  2 & 0 \\; B9 v( @7 _: C: V8 q
  0 & 2/ I* d' K2 Q- p' R+ k5 a3 q' a
  \end{bmatrix}
6 S1 n% R9 D+ u  \]
& Y( c7 m# p5 u- E, h: p. q/ i6 }$ M' `1 h5 I: T; I
#### 2. 初始化6 u: a( U1 @+ O* D6 g  K
3 f' s3 x  V5 ^# S
选择初始点 \( x_0 = (0, 0) \)。
- V) Y1 i7 u3 h8 Q1 }
. U6 B" S( ~) J0 v& D3 {. i#### 3. 迭代过程9 `+ S* s' q2 v# _  k

8 O5 P5 h* ~/ I& ^* Q- 计算梯度:
2 n* A$ V8 @% \) k0 G  \[
$ X3 M7 e9 _- J" k  g_0 = \nabla f(0, 0) = \begin{bmatrix}
) U! n* w4 T* z  x/ [3 f3 E3 m# ?  -4 \\5 V# s+ v. q% T% o# s' R
  -6
& _+ t) V* q2 K9 W- B& J  \end{bmatrix}
- N& l' I1 O2 Z8 ?& F  \]4 M- a( j1 Q3 o$ K* L, C

( m. ?; d- f1 f* {  n! O! i- 计算哈essian矩阵(在初始点不变):
8 t+ _- n% q. C/ h  \[
5 X/ a( ]' }6 a  H_0 = \begin{bmatrix}
6 N/ U$ n! J1 Y$ T" O: H  2 & 0 \\& O) \2 Z9 k7 t' J! Z
  0 & 2  \0 I$ S1 l- M2 v. S2 ^7 x
  \end{bmatrix}. F2 ~8 U! m' W# k7 M* t$ B
  \]6 \+ l7 m  Z, B- P. w

8 w: w$ a1 c* p! z4 b7 G/ ]- 计算搜索方向:
1 k, s4 W4 I7 ~  \[0 e- h) ]4 K" J7 Z6 g' |" u  F! `; S
  d_0 = -H_0^{-1} g_0 = -\begin{bmatrix}# Y7 D8 @5 I. M" f: ?
  0.5 & 0 \\
4 ?  ?- {% Z% j0 `  0 & 0.53 o0 }4 B' @( y$ z% q! V: f7 h1 R1 e% ^
  \end{bmatrix} \begin{bmatrix}
/ C# p4 P* N! O5 ~; H" @. P5 @  -4 \\
  q* U$ n6 G0 @  -68 E& B7 p; X& C0 |9 g
  \end{bmatrix} = \begin{bmatrix}# n* }1 q) ~1 [) x" l  T- \. q
  2 \\
9 p0 g$ W  S/ L  3" F( v! A5 m1 O! {
  \end{bmatrix}" O. I- s: D8 S0 L' J. T
  \]* E/ @' {% D( H; ~# r+ o) s. V
8 U6 C' a4 L  Q5 s3 n
- 更新位置:" R" V9 W0 j8 U7 z
  \[
, K' k, l" o* b( I( [0 F4 A$ ?( }0 j  x_1 = x_0 + d_0 = \begin{bmatrix}0 j, c% `+ x4 x& K3 J
  0 \\
; w' ?! A8 d! M! ^0 z  0
9 t$ y/ J$ @+ C' w6 k& R& h  \end{bmatrix} + \begin{bmatrix}0 Q+ E8 _# ]# p
  2 \\
- S- B& v) z* m2 X2 k7 V2 [  u  37 v' V3 c4 G  _# w% a! V3 f( M
  \end{bmatrix} = \begin{bmatrix}
2 ?4 M/ |! S. _1 M4 Y  2 \\
( u- |: _' X* V) f; r; C, b2 J$ d; A  3# ]0 N2 X- }; x; C
  \end{bmatrix}8 t, u7 m& g/ [& y# _
  \]6 P+ S* B$ i+ N

: I2 D+ ]7 Q( w& I- `7 U  ?8 J  h- 重复上述步骤直到收敛。7 J% j7 h; B* W% n6 W+ \6 l9 B

# T( |$ e( j# g; b- b#### 4. 收敛判定
, |, t4 ?$ l: W& _9 O' W, F0 H' B+ Z/ [( ~
在后续的迭代中继续计算梯度和哈essian并更新,直至梯度的模长小于某一阈值。
9 f- h/ W2 q) c) w+ i" i+ x+ T' S
" K' M  Y, Z* i5 l$ E- D### 总结% D; T9 J# L2 E" b5 H6 ]/ j

# X" m3 z, `* ], \3 _( V8 b牛顿法通过利用梯度和哈essian矩阵提供了快速的收敛性,尤其在接近最优点时表现优越。然而,它对初始值的选择和哈essian的可逆性有一定要求。在问题规模较大或哈essian不可逆时,可能需要使用拟牛顿法或其他优化技术。0 I; e: {) o2 F" X' G+ J; a6 O
+ ~& D8 V- ~2 V

7 ]% v$ M% S- T9 J2 P8 r$ |) C0 z
) M# k, W) m. m: g: \7 T

minNT.m

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

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






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