QQ登录

只需要一步,快速开始

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

牛顿法求多元函数的极值

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

1189

主题

4

听众

2934

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-9-25 16:39 |只看该作者 |正序浏览
|招呼Ta 关注Ta
牛顿法是一种用于寻找多元函数极值的有效优化方法。它通过利用二阶泰勒展开来迭代逼近函数的极值点。以下是使用牛顿法求多元函数极值的步骤及示例。
+ y# f3 K- v3 h/ S" X& H# b& L$ b$ d! |6 u, p, U& c
### 步骤
* u: W  _0 I9 J0 ^' e: d1 K; f" M1 r
1. **定义目标函数**:
4 ]* o- I" n4 U6 E. y6 F# m2 H( {- d" w   设目标函数为 \( f: \mathbb{R}^n \rightarrow \mathbb{R} \),其梯度和哈essian矩阵定义为:
: X3 P$ S& \% m1 w" Y$ V" n  H4 H8 u
   - 梯度:\(\nabla f(x)\) 是一个 \(n\) 维列向量,表示函数 \(f\) 在点 \(x\) 的一阶偏导数。7 A2 v: I  P9 |
   - 哈essian矩阵:\(H(x)\) 是一个 \(n \times n\) 的对称矩阵,表示函数 \(f\) 在点 \(x\) 的二阶偏导数。
' f+ C/ z" _1 L& K( D* U- B  p: B9 B5 K0 J6 O8 x0 y
2. **初始化**:
% I+ O! l7 H$ R   选择一个初始点 \(x_0\)。$ J, X( N5 I) r; `, f# \
* R+ R, {9 }* U, l' j$ t
3. **迭代过程**:' ?% N& T. E  m# S
   对于每一步 \(k\):/ P; i3 \5 T) u3 q/ f0 ^. _
   - 计算当前位置的梯度和哈essian矩阵:( V& Z) @3 z9 [
     \[6 S" o% r( T+ r
     g_k = \nabla f(x_k), \quad H_k = H(x_k)* ?5 p* A+ l. i& `& \
     \]
- K% @5 T  g5 L4 d9 C0 L   - 解线性方程以更新位置:$ ]3 L# ?9 a( s( y2 K6 h9 i
     \[! N7 {& ]% {; F' ?
     d_k = -H_k^{-1} g_k
2 Z$ q+ x, y# a# D. n1 D     \]
) }" I9 I, X* x8 ^# m' W   - 更新位置:3 P2 D7 F8 J% v. R7 @# v
     \[9 K) s4 |0 P$ I9 w, B* _
     x_{k+1} = x_k + \alpha_k d_k* x, D7 B) }/ w& s$ W. f& w
     \]$ ~& Z+ A& `" ~
     其中 \(\alpha_k\) 是步长,可以使用线搜索方法来确定。
8 k2 L- ^) q; P# ~. w# y' ], \" Y& p- C8 _& w2 j9 x
4. **收敛判定**:# P4 K1 s1 l, w& }
   - 检查梯度的模长是否足够小(例如 \(\|g_k\| < \epsilon\),其中 \(\epsilon\) 是预设的阈值),或者检查相邻两个点之间的距离。
$ u, ]1 l4 L7 J. r) ^  ~* `4 Q5 u0 K- C8 C
5. **结束**:  t9 D% V3 C1 m
   - 当满足收敛条件时,结束迭代,返回当前点 \(x_k\) 作为极值点。6 L9 L8 G3 c" y; x( F1 I$ _! N
* \8 l" d% Q# Q, x! F) e( c2 g
### 示例
. E! M$ A) B9 ~4 `" K0 }+ B4 c: R# ?
. U+ |2 \5 m" c. m考虑函数 \( f(x, y) = x^2 + y^2 - 4x - 6y \)。& g, j  t& _  n/ w9 N5 C* X* R
. q3 ^7 W- v+ o( s
#### 1. 计算梯度和哈essian矩阵( L! s0 h3 h  h

" i) _6 L+ y: ]- [# d3 I1 o- 梯度:' V8 P1 z: o6 D5 i. O! z
  \[# c2 T- v+ m: x1 l+ _
  \nabla f(x, y) = \begin{bmatrix}
3 |  p) x9 q: w; R1 Y3 j  \frac{\partial f}{\partial x} \\
. {" _6 h* \6 V2 @: M  \frac{\partial f}{\partial y}9 ^; p$ l9 s  b: c* U: E
  \end{bmatrix} = \begin{bmatrix}
7 j* j! l9 V4 `! ?6 B1 Q; ]8 `4 [  2x - 4 \\
& {6 Y7 E# {: S2 |! Q! o  2y - 6
; l! z8 ~$ ]5 {  \end{bmatrix}
4 k" I! z( B- b/ M9 z# y1 m6 e  \]
+ n3 D3 z& M8 L2 c1 z. r: n6 f! X$ a
8 }# |6 m5 m% _: [- 哈essian矩阵:5 Y7 B" `8 i% i( h6 r
  \[9 G7 v" [* T  c5 K8 y- s
  H(x, y) = \begin{bmatrix}
; b7 w0 S+ |: c2 K  [* D8 ]  \frac{\partial^2 f}{\partial x^2} & \frac{\partial^2 f}{\partial x \partial y} \\+ I+ }% Z! [& A3 S, P
  \frac{\partial^2 f}{\partial y \partial x} & \frac{\partial^2 f}{\partial y^2}& l5 n6 @: y6 [1 Y/ r# B
  \end{bmatrix} = \begin{bmatrix}
* r, x/ x/ ~4 n6 ]5 |1 Y  2 & 0 \\
3 A5 Z% Q+ L* V5 z  0 & 2
( o& }# o( s7 T: T& a0 Y  \end{bmatrix}
3 g: N/ J; q' \1 z8 M  d  \]
3 G4 F: K1 o' h. r  p$ i" \  f; ^: p) G* }6 d
#### 2. 初始化4 U! e% M, @" g1 p
  X& q: D7 K, O# n% F' @6 O) u' D3 L
选择初始点 \( x_0 = (0, 0) \)。
: G& Y, }! X5 L$ O1 J% m% o' Z: H$ O* w( V6 J
#### 3. 迭代过程9 g0 t" X, F% _, o
: N+ c6 i% P- b/ n
- 计算梯度:5 M' v! \$ P" y3 |2 t  ^
  \[
: T* q3 o( {. E" R0 }  g_0 = \nabla f(0, 0) = \begin{bmatrix}$ f, G# Q6 I( s, z. U+ k! i6 Q2 g
  -4 \\
, d. |  S: `* G1 a  -6) u, \$ [) R8 ?6 R  g. {% d# Z
  \end{bmatrix}3 X$ N+ ~  x) H
  \]
( y" X/ k1 ~* ^- k- e4 Z9 |: W! ?$ b
- 计算哈essian矩阵(在初始点不变):
5 O; I( c+ v$ C  \[$ |4 g1 [6 r% o
  H_0 = \begin{bmatrix}/ V% E; M" s& F) ~% c3 N# C( F' X
  2 & 0 \\
6 ^9 Z9 f2 m- l" z$ w5 n# _  0 & 2( r' a% ?7 [! d3 u1 o6 i2 I- `4 B
  \end{bmatrix}  u1 b+ l7 i; Y( T1 ~1 I% b
  \]" q6 Q2 e# |4 g7 G2 @6 N: r. a
/ p' H$ N- A7 a& J% C
- 计算搜索方向:
& l8 e- n3 u# Z# }  \[* H7 x9 s/ b% z
  d_0 = -H_0^{-1} g_0 = -\begin{bmatrix}
. ~7 S2 L( \! b8 B# @  0.5 & 0 \\7 S8 I( I. Q1 ~' U
  0 & 0.5
" q' U1 X5 E) F6 z: E# n  \end{bmatrix} \begin{bmatrix}
2 g( z& t, ^' |: a& v) }6 ?  -4 \\
! D6 w& o4 C+ a% A* K  -6
( F* _# G0 X  l1 K  f" ^$ T# j3 c0 [% J  \end{bmatrix} = \begin{bmatrix}6 F: f4 H0 F2 [8 ~3 N
  2 \\
* W7 G& h& C. x. y6 j# V  34 k' b: T/ t9 r' Z" u" H
  \end{bmatrix}  }( g. y7 M1 s$ D
  \]0 f' `4 l8 q3 _2 Z+ g9 ?  Q
, x# O" N+ C* R2 k9 Q
- 更新位置:
$ h; I  W: }/ A& N  \[
) z6 @3 G: L6 ^" I9 v. m$ \2 G  x_1 = x_0 + d_0 = \begin{bmatrix}- r' U9 y/ R- L6 n3 J% b
  0 \\9 O. M6 O- x  R9 H5 O- Z$ [
  0! n- `( m0 Z" ~5 \. e4 ]
  \end{bmatrix} + \begin{bmatrix}
  g2 @8 b$ f! ^, _  2 \\
" C5 m" [' f  i  38 ]# M( O; \. c% @- u# @8 k
  \end{bmatrix} = \begin{bmatrix}
# {% {9 o! w# G% y, `+ W. y  2 \\
. c( ~, M+ O2 I, r3 G9 Z) C  3  e2 h+ r% j/ J8 A' Y, B
  \end{bmatrix}5 ?' _6 Q; x) R, t
  \]6 U- |4 V7 z+ v: Q4 G
( j" D2 q# e3 a3 x" @
- 重复上述步骤直到收敛。
# ?! z; N) D5 o, f7 ~
& v+ @  K1 S" V1 E" \* R3 d#### 4. 收敛判定& h, }3 r* N2 u) W! F6 A0 d
! d* C2 h; p: g7 T
在后续的迭代中继续计算梯度和哈essian并更新,直至梯度的模长小于某一阈值。
% @6 M# q/ I# ?9 R6 c; n. ?) `  E/ F5 }
8 V. ^, p2 v$ `2 _5 U### 总结; J# R# ]$ P  o6 w1 J- l

, X) i6 X- ]- [% M牛顿法通过利用梯度和哈essian矩阵提供了快速的收敛性,尤其在接近最优点时表现优越。然而,它对初始值的选择和哈essian的可逆性有一定要求。在问题规模较大或哈essian不可逆时,可能需要使用拟牛顿法或其他优化技术。+ E2 j) [  n8 S! v% ]

* T: l, b$ d3 ^, _$ R* E
6 I+ a' a8 ]4 p
, x/ @  \* }6 |  J9 ?& i) x

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 13:31 , Processed in 0.437509 second(s), 56 queries .

回顶部