数学建模社区-数学中国

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

作者: 2744557306    时间: 2024-9-25 16:39
标题: 牛顿法求多元函数的极值
牛顿法是一种用于寻找多元函数极值的有效优化方法。它通过利用二阶泰勒展开来迭代逼近函数的极值点。以下是使用牛顿法求多元函数极值的步骤及示例。( r6 i; W' Y. `0 P9 f4 V7 V& g4 p

- P7 O: a& @$ e! {( X1 p### 步骤; `# l* r4 Z4 w7 n8 x

+ v9 X8 Y1 F( y" h- H8 J( j1. **定义目标函数**:
9 p  k1 z9 s; j0 t   设目标函数为 \( f: \mathbb{R}^n \rightarrow \mathbb{R} \),其梯度和哈essian矩阵定义为:" b/ T6 D" x" I9 e& i. m: r
9 C5 b: P8 R4 h1 a( e
   - 梯度:\(\nabla f(x)\) 是一个 \(n\) 维列向量,表示函数 \(f\) 在点 \(x\) 的一阶偏导数。
/ P* i3 [2 g- ^4 ?+ o; O+ N   - 哈essian矩阵:\(H(x)\) 是一个 \(n \times n\) 的对称矩阵,表示函数 \(f\) 在点 \(x\) 的二阶偏导数。
6 v; e) l' R) o. j/ }* M* g
1 O5 [- c$ n4 N6 I5 D3 i7 j8 p2. **初始化**:% \5 t' _, P" N  c# _/ J: _# x
   选择一个初始点 \(x_0\)。- L* S5 F. t, U- u4 b2 o' D. ^

' F) T! p* _9 N0 X/ C3. **迭代过程**:* N' K9 C6 y4 N8 t1 k
   对于每一步 \(k\):
: a; [* c( Z* F   - 计算当前位置的梯度和哈essian矩阵:9 y& @  M" m. x# U) W
     \[
2 I( S0 g! p1 E" a$ H     g_k = \nabla f(x_k), \quad H_k = H(x_k)
" S* m7 n- B3 k  ~8 r$ v! I     \]
, m8 y( Z: F5 E8 j8 }; Y   - 解线性方程以更新位置:
- c0 G7 L! L: H: c/ o. a     \[, H% X7 y1 W5 L4 Z
     d_k = -H_k^{-1} g_k" [: S9 v5 q  u; X# C/ M
     \]
) y4 g( r8 M/ V# l) k" q/ B   - 更新位置:
+ R" Q5 e" g; U5 ?7 z5 V7 X     \[9 G8 Z6 N6 V  r/ g! [
     x_{k+1} = x_k + \alpha_k d_k
; w" f; v: P: V2 S* E6 _, X     \]3 j* q: B& e3 L* ]$ T( O
     其中 \(\alpha_k\) 是步长,可以使用线搜索方法来确定。& }. }% U! X- f1 M6 _

/ |7 k$ W- R5 q5 V6 _4. **收敛判定**:5 l- i% L' [% V: _
   - 检查梯度的模长是否足够小(例如 \(\|g_k\| < \epsilon\),其中 \(\epsilon\) 是预设的阈值),或者检查相邻两个点之间的距离。
- `% |9 m$ n" H( Y
$ y/ n7 A3 m' b6 r% e5. **结束**:# t6 _9 X4 }/ N' L# O
   - 当满足收敛条件时,结束迭代,返回当前点 \(x_k\) 作为极值点。" \5 H* q$ {3 C+ t
3 Z8 [6 t5 J3 X$ D, j
### 示例; L* h! ?( J- P$ R
  L0 [3 o2 U" U9 s
考虑函数 \( f(x, y) = x^2 + y^2 - 4x - 6y \)。0 V' k7 M0 y2 _4 ?6 W2 I% c3 ^( N) p% s
/ |& P. a( u+ P! V. ~/ J
#### 1. 计算梯度和哈essian矩阵
/ J8 G" J1 E1 S2 Z% `
& l1 U5 o5 J8 |4 l6 @- 梯度:; b- J+ C3 w, v' e! _9 h
  \[, M' D& j& t) ]( x& Y0 \
  \nabla f(x, y) = \begin{bmatrix}
2 Y; d; ]7 y) Z8 J  y. m  \frac{\partial f}{\partial x} \\
! ?0 |9 A) J8 \: e! l+ ]9 K" X  \frac{\partial f}{\partial y}  C- g! c" H4 W4 l8 V" r. L
  \end{bmatrix} = \begin{bmatrix}9 Z# l4 Z5 N3 F2 F# x0 x2 q
  2x - 4 \\
( B9 ~- O; d% g! s7 A' _  G  2y - 6' \' n* j$ k% v* j' V# A' w
  \end{bmatrix}
, J  }$ ^& e. ~" y  \]
" y9 ?; @) A1 |3 m- G: a* ^. S; Q* d  }5 g
- 哈essian矩阵:
6 e$ s$ ]$ ]/ y  \[# j+ g# `$ y5 h, U; n" n
  H(x, y) = \begin{bmatrix}
2 T) @! ]1 D& l* f* N7 u/ h  \frac{\partial^2 f}{\partial x^2} & \frac{\partial^2 f}{\partial x \partial y} \\: {! s! c9 Q  Z( D: k
  \frac{\partial^2 f}{\partial y \partial x} & \frac{\partial^2 f}{\partial y^2}. {4 `4 r% N* G% B8 M& f
  \end{bmatrix} = \begin{bmatrix}7 p7 K/ p- Z( @: H! K
  2 & 0 \\2 k9 f0 U* C# V5 h; U. M) R5 ^
  0 & 2
9 _0 C6 D; `8 Z# w- e4 b  `6 s  \end{bmatrix}
" {( @# l$ \5 Z3 W; W2 H+ d2 ]  \]/ a: n9 \/ s2 Z0 N) @  ?) w
( C  \; T0 w! |0 J9 t% E5 ~; E
#### 2. 初始化
$ Q8 C& O) {4 u9 X. v
% y" n4 n$ b* Y* l; c& _/ V选择初始点 \( x_0 = (0, 0) \)。
  B/ b' `( Q: f1 l
/ {# N  s0 g5 m1 g3 _' [#### 3. 迭代过程- K* M0 x5 b8 Z( c! T) ]
. g; T4 S% `2 [0 V; q6 M
- 计算梯度:' ~4 m+ E2 ?7 I( m" P( N2 {! P1 M( N5 v
  \[
9 n. a) e# y& U  J- ~5 Q  g_0 = \nabla f(0, 0) = \begin{bmatrix}. `7 y" z( q3 g
  -4 \\
- V8 n% Z1 J' I$ I- |8 c# u  -6% Q$ F5 N2 x) \: `
  \end{bmatrix}
  e( d3 ^1 M! |2 d  \]
+ M9 a+ x0 g+ |# M; W- k/ y
$ f+ r9 j- N1 V4 x- 计算哈essian矩阵(在初始点不变):( M" @) J. ]& b' F0 X& H
  \[
% W7 Q$ C$ ?- x4 D5 ]  ~  H_0 = \begin{bmatrix}
, w9 h0 {; Y3 b4 e+ I# e* `  2 & 0 \\) a6 t& `7 F! h& V
  0 & 2
, F0 [" [8 ~6 L) \3 ?  \end{bmatrix}
: c. I, h6 r5 S  \]
" x/ k+ K3 V: f* `5 n5 g* y9 ]+ C( H0 R
- 计算搜索方向:
& w. v7 G- k/ |2 y: p  n* h  \[
& \& }, z% `5 }$ B- Y4 i# R  d_0 = -H_0^{-1} g_0 = -\begin{bmatrix}/ Z" q1 V$ d) B' f( y
  0.5 & 0 \\
3 D4 \$ y4 {+ Z0 q  0 & 0.5  ]* ?! ]: D% h+ y7 k
  \end{bmatrix} \begin{bmatrix}
* V5 z* \+ ^2 {& Y' j  -4 \\
4 c$ P+ w- P; y3 H3 O* R3 C- Z1 X  -6
( `. ^. G" l2 N4 I2 @+ \  \end{bmatrix} = \begin{bmatrix}" ^, _. l& I; b1 A
  2 \\+ l- T! W) A7 U- h) @% }2 T' C
  3
1 c  U% J* M, r# Z  p5 g3 v+ ^  \end{bmatrix}- s" F( b/ Y2 b* g' U
  \]
4 N/ n' T. c: U$ `8 F+ |/ m# ?9 t
; g% p/ j4 j5 _- 更新位置:# c: ?8 H( I7 ^7 f4 P
  \[4 }! }$ B" G0 ]# o8 K0 d; s
  x_1 = x_0 + d_0 = \begin{bmatrix}
+ ?& @$ S- X& K2 s2 s  0 \\% v# }/ O& G' u3 A8 i
  0( ?; N( K# i# F4 }, _
  \end{bmatrix} + \begin{bmatrix}
# X& i/ F# j* E. ^  2 \\
/ H7 X5 l$ I3 `4 K2 A  W  3
- @3 [  }3 Y* J" F. h0 I' g  \end{bmatrix} = \begin{bmatrix}
  D& }: h- z3 `4 A% I: Q3 A) J1 ?; [  2 \\
: P: V  m* o' _2 X, j  35 o& m. O0 T3 ]# a4 i  O
  \end{bmatrix}
2 b0 }7 t$ Y0 g/ f( n8 r- a  \]
! D- }  A  _3 u# ~# k6 q! r  d4 `/ x& v+ [" \
- 重复上述步骤直到收敛。
2 S3 j1 I5 B. b9 t
4 i& ]) h5 \5 z3 k' t#### 4. 收敛判定) Q/ f. T1 U. l

* @) |; ?( i" ]在后续的迭代中继续计算梯度和哈essian并更新,直至梯度的模长小于某一阈值。% s0 v$ E1 P( T5 u
: O+ @' e' a! O1 Q" l
### 总结
4 e( c4 ]' ]" S5 C) `$ M( Q0 |
1 T4 d/ z* g! S0 p7 J# {* U! h  }7 Y牛顿法通过利用梯度和哈essian矩阵提供了快速的收敛性,尤其在接近最优点时表现优越。然而,它对初始值的选择和哈essian的可逆性有一定要求。在问题规模较大或哈essian不可逆时,可能需要使用拟牛顿法或其他优化技术。
3 R; s( L! ]* r9 ?; i+ \8 Q0 S. ~5 H* N2 k1 S( a" e" Z
8 C+ Z% ^( M( I, d4 p  J0 o
6 D8 A1 J- y1 q7 o

minNT.m

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

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






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