QQ登录

只需要一步,快速开始

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

牛顿法求多元函数的极值

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

1189

主题

4

听众

2934

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-9-25 16:39 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
牛顿法是一种用于寻找多元函数极值的有效优化方法。它通过利用二阶泰勒展开来迭代逼近函数的极值点。以下是使用牛顿法求多元函数极值的步骤及示例。' @6 [) G# C9 N! ?  R6 a/ Q
6 s' M4 M- ?$ \; R. M3 K. j% `
### 步骤1 g5 L! D6 ~" @- d( W" m) Q; w# v8 w0 _
5 U2 }+ @! ?% l
1. **定义目标函数**:+ W$ ^" E3 ]  V9 v1 F% S( D+ }) v
   设目标函数为 \( f: \mathbb{R}^n \rightarrow \mathbb{R} \),其梯度和哈essian矩阵定义为:$ q: X# J  P. ?) U
( D7 |, b+ b7 c0 [
   - 梯度:\(\nabla f(x)\) 是一个 \(n\) 维列向量,表示函数 \(f\) 在点 \(x\) 的一阶偏导数。+ @$ P3 ?' d2 u/ |1 B0 N
   - 哈essian矩阵:\(H(x)\) 是一个 \(n \times n\) 的对称矩阵,表示函数 \(f\) 在点 \(x\) 的二阶偏导数。+ B# n& l0 \! ~0 G: M- m$ ~4 r; |

# ~- d6 f% K5 A5 n9 p1 J2. **初始化**:) M4 H. Y4 ^& [- U
   选择一个初始点 \(x_0\)。- I- D, }3 W. ~

3 l2 m: z( K4 g3. **迭代过程**:# U9 L: Y% ^% {' n
   对于每一步 \(k\):# }) C" A' |$ i8 A
   - 计算当前位置的梯度和哈essian矩阵:
0 o; a2 m. k/ c# n* G2 O5 u% j     \[9 Z5 h8 h& ]" W1 m! A3 B- l. o5 c. P
     g_k = \nabla f(x_k), \quad H_k = H(x_k)/ z7 S  ?7 b) _) c$ J# t
     \]0 ]. {6 q6 V2 \9 G" _; F7 b
   - 解线性方程以更新位置:
5 Q$ \, Y& m$ R* r5 L. ]. @     \[
  K6 J7 V: y4 ]4 }; V     d_k = -H_k^{-1} g_k
/ ?! I! _) E5 H; W. }     \]
5 x# [7 q; R, h, Y+ y   - 更新位置:
1 w7 x) q) A' Q# ~) t3 C     \[& Q5 e! p/ C' c! ?1 B# r
     x_{k+1} = x_k + \alpha_k d_k
! n% K% N$ Z( e- F, P! w9 Z1 q4 w     \]% p- S- o* M$ ]2 ^1 R; e" ]% s
     其中 \(\alpha_k\) 是步长,可以使用线搜索方法来确定。0 n% J. }! A3 j* y
- z( O# ?3 a8 t1 V- ?7 _
4. **收敛判定**:
1 G! q8 e" d( {8 h( m   - 检查梯度的模长是否足够小(例如 \(\|g_k\| < \epsilon\),其中 \(\epsilon\) 是预设的阈值),或者检查相邻两个点之间的距离。
7 {- M- a5 A+ s  M2 I# ?% k3 B" ^! `/ p0 n1 _4 }& e! Z
5. **结束**:
% D' @6 s# n6 H" n7 b9 w   - 当满足收敛条件时,结束迭代,返回当前点 \(x_k\) 作为极值点。( Z. c4 Y; h2 f5 H2 l1 }+ ~' m
: a. f$ s8 M, H/ W
### 示例% s; ]* D2 A. a0 x. \

" I0 K: i' R5 u1 R考虑函数 \( f(x, y) = x^2 + y^2 - 4x - 6y \)。- H1 M3 s# e+ x- R0 T) N

6 Y' T# Y5 N! J7 J#### 1. 计算梯度和哈essian矩阵
7 d3 y# h4 B  d% a: u1 y: P' j7 Z' f
- 梯度:
/ Q& \. r! N. L; r; N  \[
8 R; R! R1 R5 ^" P  \nabla f(x, y) = \begin{bmatrix}
; I: y* s' A; {/ z  \frac{\partial f}{\partial x} \\- l. a' t+ y: E7 X! i
  \frac{\partial f}{\partial y}
- K4 z: J* V4 t) k, E$ ^  O. ^  \end{bmatrix} = \begin{bmatrix}3 i$ G, T. B5 V# d/ ]) x
  2x - 4 \\
4 o& O! v% L2 B5 S' ~! ], C  2y - 6& E8 A2 }4 f6 h1 b) \# K
  \end{bmatrix}
& _  g, k8 ~5 D3 Q6 R  \]8 g6 u) D3 a' z" r5 t( x( T" {

1 d0 w: k* W3 f, ]. r% V- 哈essian矩阵:
' X- F0 u  E# g% ^, E  \[3 H; e: ]' A& n0 r& I
  H(x, y) = \begin{bmatrix}' `  A+ _* Z5 a( Y( y
  \frac{\partial^2 f}{\partial x^2} & \frac{\partial^2 f}{\partial x \partial y} \\
) p. ~, m7 b5 M: f! {% l  \frac{\partial^2 f}{\partial y \partial x} & \frac{\partial^2 f}{\partial y^2}
4 _$ J& B/ c$ o( |! h) y  \end{bmatrix} = \begin{bmatrix}
# S- p3 A" K: I' }8 ~6 u, Y  2 & 0 \\9 C3 k+ P, j# [6 }/ u1 c
  0 & 2
7 O1 e/ _( x( X1 z. W! [/ Z: E+ n* B  \end{bmatrix}( Z  P* m0 X% h; A) o
  \]
: W9 M5 U: q/ J  Q6 \5 e. t7 `. G. c; g4 ]1 {( T+ d! w8 e, K
#### 2. 初始化
; K! ]. }; ~; R$ F
4 m; r; S$ w% G9 ?. S: S4 S* e选择初始点 \( x_0 = (0, 0) \)。$ m; c. U2 r6 S6 H+ }
( X1 o8 n2 K7 o4 |2 q; Y
#### 3. 迭代过程
* M) x& N& O! W; `& X% F7 V: o* ?1 V1 |9 m6 v6 S% I
- 计算梯度:: K' W# [" h6 L- j2 I; h* q7 K
  \[
1 }. F( E# M0 \: U4 x  g_0 = \nabla f(0, 0) = \begin{bmatrix}, x0 x/ y& Y( X% i$ H
  -4 \\1 B4 t  Q/ K- J
  -6% g2 n. O5 F! B0 M7 F% Q/ v6 Z
  \end{bmatrix}3 y/ m. `# l; b3 e9 X. q
  \]
* _' u3 R3 C6 f, c  p  R
8 r  c# K: s3 j- f* d! k- 计算哈essian矩阵(在初始点不变):; A( }) }/ i" O/ i; w5 _# k
  \[) q% t1 h1 ]- \, T6 ~
  H_0 = \begin{bmatrix}
/ T1 e3 r: ?! v: _% q  2 & 0 \\4 G: \1 l2 ~8 P) }+ I
  0 & 26 B  D; x, ~9 g* a/ {/ t. m3 C' n
  \end{bmatrix}- b! U" q; f& {( c# V- j
  \]
9 w+ v; j3 U4 T0 V$ w* y% Y! O" R! w: k" ^4 E; m
- 计算搜索方向:8 E- h! _2 L9 J8 I& e+ z9 y0 n
  \[) f( o; p7 n. x! `7 O
  d_0 = -H_0^{-1} g_0 = -\begin{bmatrix}( e5 y' s% b# x- b
  0.5 & 0 \\
* @; p  {) a1 \( Z- L) z  0 & 0.5, N% u. ^5 D' S) H
  \end{bmatrix} \begin{bmatrix}
( j" T; {6 ?+ F! E# w$ j4 S0 e  -4 \\
' {- m/ G* D# F( P* V  -6
& U; \+ x+ O+ B" |% {( ~+ q  \end{bmatrix} = \begin{bmatrix}
  h# o, g/ {5 {4 y  2 \\
: t2 p. J8 n+ \  3
# M: L1 q$ r- e# p  \end{bmatrix}
) N& i0 b9 i2 p! y+ P/ d: F  \]
5 B9 o$ i$ O8 b& B4 a0 E$ y, ^3 L7 p2 E' T
- 更新位置:
/ t3 X0 T3 ]; K% a  \[5 q8 W! ]8 g9 A9 j8 ^7 \
  x_1 = x_0 + d_0 = \begin{bmatrix}
7 l1 c# e# l3 W* ~% W  O6 q5 I  0 \\
7 m- o- O% x0 ]3 x  0+ G4 B* L; V+ B: y
  \end{bmatrix} + \begin{bmatrix}  F7 O# _4 }, \  t' P. s
  2 \\# e& i* C8 m) ~! G& |, ^% X
  3/ j5 o& L: a* d- }+ w) r
  \end{bmatrix} = \begin{bmatrix}
7 F1 S* ^, `' \6 n  2 \\
& d8 q& |* _* {6 l$ K: ]" I  35 B) \2 \' O* _- L/ n/ k: t8 H
  \end{bmatrix}$ Q3 ~2 u' `/ b/ }9 y1 K
  \]) e+ I3 g0 h7 b$ g& s2 p8 R

! d4 Y9 _' ^- c- }" |- 重复上述步骤直到收敛。
8 O. v, ?( ~  L
' x1 b" r2 u* j% _! @) s, G2 }  C#### 4. 收敛判定
0 Q$ n! T' M" B( i! d$ c$ ]
* A7 O: @2 [4 Z- f, f在后续的迭代中继续计算梯度和哈essian并更新,直至梯度的模长小于某一阈值。1 N( K# M( P; ^- b4 N$ z( D, C$ d

  h4 T' i' D9 w" O* p### 总结8 }, B7 @. q$ y) ~

2 b6 o0 L2 [9 f; r4 _- m$ q牛顿法通过利用梯度和哈essian矩阵提供了快速的收敛性,尤其在接近最优点时表现优越。然而,它对初始值的选择和哈essian的可逆性有一定要求。在问题规模较大或哈essian不可逆时,可能需要使用拟牛顿法或其他优化技术。; _6 _$ [4 p$ k0 r* o5 V
, h7 W$ S0 k+ z  I  C

5 Z  q9 M7 P1 t/ p& J5 x3 n3 @! q

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-6-3 18:40 , Processed in 0.468132 second(s), 57 queries .

回顶部