QQ登录

只需要一步,快速开始

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

牛顿法求多元函数的极值

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

1188

主题

4

听众

2931

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-9-25 16:39 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
牛顿法是一种用于寻找多元函数极值的有效优化方法。它通过利用二阶泰勒展开来迭代逼近函数的极值点。以下是使用牛顿法求多元函数极值的步骤及示例。
9 x9 v- W( l$ v' s6 V  s7 m" Y: Q3 {: J7 U& y9 d' |2 ?# c7 @
### 步骤/ Q; M( Q& @& e
* Q. s6 f: X; `
1. **定义目标函数**:
+ x# |( _, m0 o; Q8 f$ p4 H# V: m" G   设目标函数为 \( f: \mathbb{R}^n \rightarrow \mathbb{R} \),其梯度和哈essian矩阵定义为:: |( }* r4 Z* ~% B0 t. g

6 `2 ]9 k. n6 [" Z6 M   - 梯度:\(\nabla f(x)\) 是一个 \(n\) 维列向量,表示函数 \(f\) 在点 \(x\) 的一阶偏导数。
& r9 S7 j1 B  p; k% u( N   - 哈essian矩阵:\(H(x)\) 是一个 \(n \times n\) 的对称矩阵,表示函数 \(f\) 在点 \(x\) 的二阶偏导数。2 }8 Y* i3 h' R9 X5 y
% i; Q9 F3 ~. d2 @2 q
2. **初始化**:; T. s1 a% b% g
   选择一个初始点 \(x_0\)。
% S2 S; K  {% L1 W5 i5 k  o$ p2 Z- _& i4 a+ Q& t& ~, m! z
3. **迭代过程**:
! {4 V6 k3 l7 ]* l# H1 S   对于每一步 \(k\):4 f# u; M5 e" D, J+ G& b1 Q) Q
   - 计算当前位置的梯度和哈essian矩阵:, J( I8 `) a. @9 f4 H8 o
     \[
( k3 l" f5 |( l2 l. |& E0 a     g_k = \nabla f(x_k), \quad H_k = H(x_k)
: @( f* B9 K  I4 X% {& [" o     \]
: \2 T/ e4 }0 P  Y7 |% i   - 解线性方程以更新位置:
1 m$ {4 z! K9 U% m* v% Y     \[! E5 q9 ~+ h4 j( P$ w2 Y
     d_k = -H_k^{-1} g_k
4 X( j1 \7 k+ T* j0 Y/ N( B     \]
: I+ f: p, t/ x: Y   - 更新位置:
) x# Y  G4 y2 B+ v, T/ @     \[% I8 w2 V5 V1 m3 `3 _  |2 M
     x_{k+1} = x_k + \alpha_k d_k- ~5 k0 P! Q1 a) @) R3 G, W$ h
     \]( |+ o1 w4 `  u0 ]$ s. P
     其中 \(\alpha_k\) 是步长,可以使用线搜索方法来确定。+ j$ \3 \; f. E) f9 X5 m3 J2 i
7 U/ m( [$ a3 N& x& p- }) Q# Y
4. **收敛判定**:! u* N  D5 z* A
   - 检查梯度的模长是否足够小(例如 \(\|g_k\| < \epsilon\),其中 \(\epsilon\) 是预设的阈值),或者检查相邻两个点之间的距离。
( _5 O+ }% ]/ F7 O( Q% o( ~
: W) M5 u* `& a5. **结束**:, g( W2 r; C. J3 e
   - 当满足收敛条件时,结束迭代,返回当前点 \(x_k\) 作为极值点。+ R7 k# R: }- ?6 \, J2 q
* w) y& e$ S8 C* G6 g. L" Q
### 示例
5 I& _" k9 |- K& K
( d% h! f& l" c% G# L7 d考虑函数 \( f(x, y) = x^2 + y^2 - 4x - 6y \)。
& R  R. z: f8 q. U; R* M9 t$ ~% a/ [/ U9 z
#### 1. 计算梯度和哈essian矩阵3 V* O/ Z/ i! A
9 q0 a; \0 s' l3 N& W- ?8 }
- 梯度:' z3 H' H7 L. L$ ~* J0 x
  \[
: e% x; p% C. \- c0 h( f  \nabla f(x, y) = \begin{bmatrix}* D$ m/ L, N, [6 y$ |* O5 R+ N
  \frac{\partial f}{\partial x} \\% L5 V) N! h7 {- F& b- ?
  \frac{\partial f}{\partial y}& I$ ?& d, Z: y5 c8 ~
  \end{bmatrix} = \begin{bmatrix}" \7 D1 ~; x  }9 Q! n1 L! @  y
  2x - 4 \\* u9 Q2 ?9 N7 s
  2y - 6$ M5 h1 Q0 \- g( f/ V# e
  \end{bmatrix}- A( w( s0 I& ~
  \], h* ^4 I: O% b: j- j

, l  n0 k: s1 P* j0 j, a- 哈essian矩阵:5 f0 l, S6 c& C  S* f3 J8 ]
  \[: T% W8 }( c# j% }. R6 q
  H(x, y) = \begin{bmatrix}
' Z( F2 w( ?0 s* C3 P( P  a7 U2 B  \frac{\partial^2 f}{\partial x^2} & \frac{\partial^2 f}{\partial x \partial y} \\
' e/ r. P2 q  A5 X4 k  \frac{\partial^2 f}{\partial y \partial x} & \frac{\partial^2 f}{\partial y^2}4 Z6 n; T) v0 y
  \end{bmatrix} = \begin{bmatrix}0 O6 _" n& O8 @5 p; K8 R4 I
  2 & 0 \\5 C! ~# H* Y' R/ N  M, t8 F
  0 & 2: \9 U2 G7 _! W& e6 ^
  \end{bmatrix}
( _- t7 O6 k8 r0 f, }- t2 z2 v7 F6 e  \]
3 O5 s% M, m* D8 F0 e1 I" Z5 U9 `. h
9 p7 y8 R1 y0 y+ H  M1 V/ c#### 2. 初始化
3 V, c5 s& R" s3 B; L# y! z3 Z) G3 X- a: m/ |7 J  y
选择初始点 \( x_0 = (0, 0) \)。
2 z% J* _; \& S
# `. O% l# L' k: r#### 3. 迭代过程
9 Q5 t3 \. q' M: o( w1 a/ }2 B/ \+ k2 m; \! w5 ~0 n
- 计算梯度:8 H: V( Q; z* B6 X! |5 q
  \[) c9 g6 h7 c+ s' Z+ H& y- ?
  g_0 = \nabla f(0, 0) = \begin{bmatrix}
) a. ?5 I! a% e  -4 \\+ w5 E" x5 N; S
  -6$ u! ~3 ?3 ?- H8 F" B! i. Z
  \end{bmatrix}
; y* i7 q; E$ g1 L  \]
" ]. i$ W3 ]8 Q+ r1 Z3 F. h' _* ~- L6 S  p  n
- 计算哈essian矩阵(在初始点不变):
7 p- x5 I0 p& D# Z& V- z  \[
* e4 q! l4 h# ~; W6 F* G8 B  H_0 = \begin{bmatrix}
5 l. R  e. F  i6 @  2 & 0 \\
2 x2 y! Q$ e( s5 p0 \  0 & 2
4 A: a2 O( ?; K  \end{bmatrix}
& z: x+ i& i1 X- {8 A% Z1 Z  \]. I: _3 X. \  w" f( M. _

9 G8 k& o( t0 Z5 S/ @. q- 计算搜索方向:
' t! X# S" d# U- S+ i  \[
% s' \4 p3 ]' K2 G' s0 X  d_0 = -H_0^{-1} g_0 = -\begin{bmatrix}
: g- ?% E$ V! O$ ~3 K" i- x8 q  0.5 & 0 \\
( z% F8 ?: s4 w5 E  0 & 0.5
8 Z+ m' ]! h6 L. l0 l2 x( J  \end{bmatrix} \begin{bmatrix}$ ^9 J' F6 F4 b  G
  -4 \\: ^. V/ T( ~) J+ j( ]+ s" G2 y
  -68 a1 M. L  Q; g
  \end{bmatrix} = \begin{bmatrix}& A; c1 ^$ u( J; ^5 ?
  2 \\
, _, b9 X% z- `* H; l, \- o8 V  3
  O, Q+ J, H* v9 q: X! z  \end{bmatrix}! C5 o; O2 R- ]/ J5 Y, k4 q- Y
  \]1 ?: h# O8 X/ `" b+ ~

1 v. `7 R, O# G! f( H5 n- 更新位置:2 I  K' t6 H* ?) `6 _
  \[
( D0 K: b3 a9 L  x_1 = x_0 + d_0 = \begin{bmatrix}0 g. x6 X" V4 T- y) I
  0 \\1 u% ?8 u3 |" M5 t9 C8 I) W
  0
8 W, Q0 M7 H4 j* ]% c$ I) `2 U. C  \end{bmatrix} + \begin{bmatrix}
5 M9 F+ A  W. T1 `% p  2 \\
  \0 H5 O/ r; z3 U  3
! A5 r6 e9 N! X6 j& N/ Q0 o0 X  \end{bmatrix} = \begin{bmatrix}
0 d' ?6 Z' r/ ^: f) y8 P  2 \\
  V. [+ e8 `. }& c  3
8 e$ k# j- c* R! z3 A; ?  \end{bmatrix}- t$ q( k/ ?; _$ b! q7 Q# p
  \]
, f  l7 K1 M2 L* k. _
' P0 M: ^! j3 ]' Q! X" y  @- 重复上述步骤直到收敛。( a( @/ b5 }! ?% j0 Y+ |

8 \1 p4 N1 ^, g4 w# ~#### 4. 收敛判定6 b4 |" G2 l# y9 p( ^4 y
+ Z( g, ~9 R1 d4 `# k" l% D
在后续的迭代中继续计算梯度和哈essian并更新,直至梯度的模长小于某一阈值。3 g, y. b+ G- g

* X; O* @0 U" }### 总结0 |2 \/ P  c& D: ?2 Y, [
+ i1 X/ {8 _; _5 k0 F: ]. y( f
牛顿法通过利用梯度和哈essian矩阵提供了快速的收敛性,尤其在接近最优点时表现优越。然而,它对初始值的选择和哈essian的可逆性有一定要求。在问题规模较大或哈essian不可逆时,可能需要使用拟牛顿法或其他优化技术。
4 l, W/ d, j) X& V
! }- z) z4 t/ g3 C
- v: Y" k- S8 w" }+ D
# ?* H, w' ?. v

minNT.m

517 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-5-26 01:34 , Processed in 0.305799 second(s), 55 queries .

回顶部