QQ登录

只需要一步,快速开始

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

牛顿法求多元函数的极值

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

1196

主题

4

听众

2963

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-9-25 16:39 |只看该作者 |正序浏览
|招呼Ta 关注Ta
牛顿法是一种用于寻找多元函数极值的有效优化方法。它通过利用二阶泰勒展开来迭代逼近函数的极值点。以下是使用牛顿法求多元函数极值的步骤及示例。
5 ]6 G, r5 _0 \' q+ F5 l, Z+ v, ?5 Z& [$ ?$ O
### 步骤; I9 B$ b: T' {8 A" J
; m/ s% ]7 R/ Q, c! O2 X
1. **定义目标函数**:: j7 O5 w$ }  m" c% [6 u
   设目标函数为 \( f: \mathbb{R}^n \rightarrow \mathbb{R} \),其梯度和哈essian矩阵定义为:. f' Q! p% D8 S5 `+ @# [) s
, t3 s; N, E8 z7 L$ U5 i' d1 c
   - 梯度:\(\nabla f(x)\) 是一个 \(n\) 维列向量,表示函数 \(f\) 在点 \(x\) 的一阶偏导数。
# k. A) j3 w3 @7 f1 v# X, v   - 哈essian矩阵:\(H(x)\) 是一个 \(n \times n\) 的对称矩阵,表示函数 \(f\) 在点 \(x\) 的二阶偏导数。, o9 u# b5 l2 l1 K# c
. Z" {- t8 T; S1 {
2. **初始化**:) u8 n8 ?( x" r: d! E
   选择一个初始点 \(x_0\)。
' l3 f: V: y. f2 `+ i% E" b4 V6 Q* l0 H$ q
3. **迭代过程**:/ L+ K" x6 y6 Y* }
   对于每一步 \(k\):
: M/ h3 B2 b; _' M% Z   - 计算当前位置的梯度和哈essian矩阵:- Z% m* v% T/ Z" \  y' y
     \[
* t" v& R* Z# o, M6 Y     g_k = \nabla f(x_k), \quad H_k = H(x_k)3 ?) Y5 i4 M/ w: g
     \]
, l7 r, e" ?, N: z   - 解线性方程以更新位置:& {$ [! B2 K/ |% @- R& \0 Q
     \[
: r4 H/ I+ b8 S1 w     d_k = -H_k^{-1} g_k( y  O# A% |$ o* f0 _) q/ k2 x
     \]2 B1 A) X" l. `- B
   - 更新位置:; t& O% r; s" d
     \[5 ?, k; g) S* ^! @8 B6 f  S
     x_{k+1} = x_k + \alpha_k d_k
! p% {( y. D2 ]! O* g     \]
; i$ a/ M$ d' o! v7 r: ~" n     其中 \(\alpha_k\) 是步长,可以使用线搜索方法来确定。
; ~& E& g( ~, e4 t+ D
) A# y9 k* _: p4. **收敛判定**:! z" z/ \6 p5 A& {/ q& A
   - 检查梯度的模长是否足够小(例如 \(\|g_k\| < \epsilon\),其中 \(\epsilon\) 是预设的阈值),或者检查相邻两个点之间的距离。8 p  n, z6 G: z' D  \
( q9 G/ G" ~- }
5. **结束**:* {& ]8 w* v4 L/ Q- D. ~) Y: B
   - 当满足收敛条件时,结束迭代,返回当前点 \(x_k\) 作为极值点。
/ e/ V: y! E8 r: n2 G4 H2 X$ f, G2 T8 \0 i4 b9 \! w) X3 s' y
### 示例
, ^+ V. ]" M1 j2 J, L/ a1 r4 i  h( C# d9 M/ B, Y9 p6 `4 J5 L
考虑函数 \( f(x, y) = x^2 + y^2 - 4x - 6y \)。: A8 J6 Z  ^1 b3 S3 [0 m- O

: t: m" ?+ X4 e: c; X#### 1. 计算梯度和哈essian矩阵5 ^8 n3 K) T: s/ l8 T: O5 Y# ^

8 ]# i" n5 L1 J- 梯度:, b3 j0 h) S3 W* l0 W; D5 U" f
  \[3 f& m" x: e8 z  \( ]
  \nabla f(x, y) = \begin{bmatrix}/ P* D- p1 k* @9 g3 ^
  \frac{\partial f}{\partial x} \\
  V, w) J. h) O( N/ d% B7 D  \frac{\partial f}{\partial y}1 @  g+ s, S) W8 I  x
  \end{bmatrix} = \begin{bmatrix}: c! {& Z2 ~8 `4 m0 K2 ]- Y  z
  2x - 4 \\
) Z% Y* W0 ]4 f/ `  2y - 6
+ [& \$ r1 a7 j0 ?# c! g0 x; _# w  \end{bmatrix}
) S9 V2 s9 R. z( N: @  \]
2 h1 n' O* f8 b- a' [$ ~6 |5 f& S, |) q& i, ~0 c
- 哈essian矩阵:; n* |6 I, P( y$ Y
  \[; b% z. h/ e7 j; o+ z( m! y4 u
  H(x, y) = \begin{bmatrix}
. a( [2 t) f' [  \frac{\partial^2 f}{\partial x^2} & \frac{\partial^2 f}{\partial x \partial y} \\( E/ o0 P0 ]' \: u9 r% ~
  \frac{\partial^2 f}{\partial y \partial x} & \frac{\partial^2 f}{\partial y^2}
- N9 L$ v! j2 }; f- T  d) W  \end{bmatrix} = \begin{bmatrix}
8 S5 z3 g0 j2 ^. {! N! a" P  2 & 0 \\( o8 W; s/ _4 D* \: G& k
  0 & 2
; t: p# A' e. `; a- u& V3 ^+ J  \end{bmatrix}
' T7 E2 f6 j8 K- J  \]
6 \6 x8 y) J: l, m. r9 E* |
, j/ }3 I8 ?* Q4 a; j" a1 Z#### 2. 初始化
- ^2 a- _, Y5 T1 k! g8 X2 @$ S' G3 T6 r1 B: ~# D1 w* Z! }3 c- U# E
选择初始点 \( x_0 = (0, 0) \)。1 |& e" X7 c. m3 i' j  b

( n* G1 V+ |/ {" @2 p#### 3. 迭代过程3 g, k4 p, z- y. b4 H
9 `7 f7 W# F3 F: W6 d- f- Y$ k
- 计算梯度:
" A$ E% s% F! C  \[$ z6 n- T9 Q" q4 u
  g_0 = \nabla f(0, 0) = \begin{bmatrix}% T' b! _& a4 Y6 _! T+ m
  -4 \\0 J2 m- V5 q4 j2 f
  -6
' k2 |/ ~. D* S: V6 N7 }$ x  \end{bmatrix}
0 d: k0 H5 S1 V  \]
" v' P" k# ^( m- @( p, N, o5 i! Z% n9 U9 ~4 J3 H1 [
- 计算哈essian矩阵(在初始点不变):' I+ W& j1 [5 j+ X
  \[/ C5 ?; s- ^+ M) \
  H_0 = \begin{bmatrix}
7 `* [: }% i. n4 ?! }0 z  2 & 0 \\
$ e, D9 Z" W3 V  c; t  0 & 2
; N" e8 H/ ?2 x) r) H$ M  \end{bmatrix}" K/ T. Z* p* B! Q8 A7 P$ o( Q. |# T
  \]( j) ~& V$ n4 [

5 ^. t3 d# J  I2 v% ~. g; g; C- 计算搜索方向:
; t4 l0 c- c) f, n2 f4 {  \[7 D$ L6 y  [2 s
  d_0 = -H_0^{-1} g_0 = -\begin{bmatrix}  T* ?: v$ T6 A$ o8 b3 \3 I3 @0 J
  0.5 & 0 \\  j7 ?7 I  n, d& b3 H* j  E! J9 [5 X
  0 & 0.5
+ t% F9 e/ n+ P: i9 j( J  \end{bmatrix} \begin{bmatrix}
; v7 W0 k( Q+ G* f  -4 \\6 q* e% m2 `- W3 Q. @% k& H
  -6
" F/ ]* C  Z6 O! E- O% d  B  \end{bmatrix} = \begin{bmatrix}' s6 `1 s! B! |& s+ c8 L+ d
  2 \\
0 d" Y& K5 E. w  3
0 S: Q  p" a( q1 H  z( r  J  \end{bmatrix}
9 n1 ]" I( V$ c$ k6 i1 @/ C  \], p* C: F3 `; z
' ~. M8 Z- Q# ?; e/ ?4 y
- 更新位置:
1 P8 [; R! V* o( W* U  \[% e' j1 j( z8 [0 g- G
  x_1 = x_0 + d_0 = \begin{bmatrix}
4 G% x  K# l7 `  0 \\2 d9 k; p2 h- b6 H; e3 Y
  03 @- d6 F1 b$ J' ^- V. c/ Z4 R
  \end{bmatrix} + \begin{bmatrix}& K, f  {4 n# I6 G2 M
  2 \\
4 V& p& j+ g- }* j: y5 i5 q  3
7 Z' V' @0 E% @5 Q  \end{bmatrix} = \begin{bmatrix}% {% I* i) }6 O+ _' E
  2 \\0 H* \' u6 r" V: z
  38 @# @5 Z1 m. h* d
  \end{bmatrix}
. Q6 P6 X" [; a  \]# R( R- a' D7 V' e
: O& ^; y  l& F8 f2 k9 V( v2 G
- 重复上述步骤直到收敛。8 }  P; u9 }& k+ m3 }

  f# r% o3 `/ r  p: B2 B#### 4. 收敛判定
4 _' s2 n6 U! E: g# O
4 }' Z6 w- s2 f6 b+ F1 v, i2 t在后续的迭代中继续计算梯度和哈essian并更新,直至梯度的模长小于某一阈值。
4 J& M* h4 f0 d4 h# V: x) }4 Z: @1 i" J( P
### 总结  w5 P; }  g) I

, t/ o6 y% h1 }牛顿法通过利用梯度和哈essian矩阵提供了快速的收敛性,尤其在接近最优点时表现优越。然而,它对初始值的选择和哈essian的可逆性有一定要求。在问题规模较大或哈essian不可逆时,可能需要使用拟牛顿法或其他优化技术。
& N6 o% y" J1 D$ s4 j+ a) _1 A$ v1 U6 o
' {: K8 T% m4 O
( G, x6 m- \% G  T) [' V8 k

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-9-11 12:56 , Processed in 0.322950 second(s), 56 queries .

回顶部