数学建模社区-数学中国
标题:
牛顿法求多元函数的极值
[打印本页]
作者:
2744557306
时间:
2024-9-25 16:39
标题:
牛顿法求多元函数的极值
牛顿法是一种用于寻找多元函数极值的有效优化方法。它通过利用二阶泰勒展开来迭代逼近函数的极值点。以下是使用牛顿法求多元函数极值的步骤及示例。
; g9 D- q) k2 @
5 ]& g+ N: d0 ^" _- D: U: |
### 步骤
; T1 z6 w8 `1 ]) @ H+ w
O2 Q; X9 \/ L; t0 Q
1. **定义目标函数**:
& |$ P* y+ B2 a D) S
设目标函数为 \( f: \mathbb{R}^n \rightarrow \mathbb{R} \),其梯度和哈essian矩阵定义为:
, }2 K3 ?- t* r" W& i. \+ K
* W" e" g) f3 ]- Q
- 梯度:\(\nabla f(x)\) 是一个 \(n\) 维列向量,表示函数 \(f\) 在点 \(x\) 的一阶偏导数。
/ e" a1 c+ d- B, b4 o
- 哈essian矩阵:\(H(x)\) 是一个 \(n \times n\) 的对称矩阵,表示函数 \(f\) 在点 \(x\) 的二阶偏导数。
9 D: e$ B$ V4 T0 R1 f
9 Y l$ a9 c* z# h+ b
2. **初始化**:
& t0 j8 `+ ]( n$ l, R" P1 W
选择一个初始点 \(x_0\)。
7 I7 V" e- }, G. q- H( b, h
7 i. H1 q! v8 m1 S1 K0 x
3. **迭代过程**:
, E, D, N, w q1 a+ }( y( t
对于每一步 \(k\):
% c) Q$ v8 d6 \' J9 ?
- 计算当前位置的梯度和哈essian矩阵:
$ W$ a7 O. K" T5 J
\[
2 \+ D2 Y' ^. T, L
g_k = \nabla f(x_k), \quad H_k = H(x_k)
$ X Z0 Y& |, H V9 v
\]
, d3 v! D7 ]6 p/ t. w
- 解线性方程以更新位置:
5 S1 t; j, \3 J* M# h. Q5 n
\[
8 K; G }) W8 V& s! H. M
d_k = -H_k^{-1} g_k
! z* J1 m8 f; d( t
\]
; X# N! m: w$ w& r3 I- n
- 更新位置:
: y7 ^+ @4 S) _
\[
# C; I5 s0 x1 g5 l* [1 k/ l3 h
x_{k+1} = x_k + \alpha_k d_k
9 z% Q% x; q. O' ^2 `- ^2 n: F0 t
\]
. O* p( b2 s% ~ U# _
其中 \(\alpha_k\) 是步长,可以使用线搜索方法来确定。
( p5 J' f; o& ]: z
2 o6 j6 z: A' Q: \
4. **收敛判定**:
3 s; |9 F# e g
- 检查梯度的模长是否足够小(例如 \(\|g_k\| < \epsilon\),其中 \(\epsilon\) 是预设的阈值),或者检查相邻两个点之间的距离。
* W! _# o! j9 i+ l* `3 ^2 Q" C1 i
' U+ \. L1 X) @0 W
5. **结束**:
, R9 j: _+ w" D0 b
- 当满足收敛条件时,结束迭代,返回当前点 \(x_k\) 作为极值点。
/ A3 P. n( s6 m0 E
; E9 `" v) g7 A0 \' x4 e
### 示例
/ ]* ~- Y6 T8 J8 V) g; `9 ?
1 p. z% e( s0 r
考虑函数 \( f(x, y) = x^2 + y^2 - 4x - 6y \)。
9 n8 U, x- r4 C' ~# k
) j! Q d y2 i$ |" Y1 ^$ g! e) U* o
#### 1. 计算梯度和哈essian矩阵
, |" I) v" G% Z" P/ _9 [/ i
0 r8 w1 U8 [/ r" G
- 梯度:
) Z& W$ c1 `, P) I7 H2 W
\[
& b8 [2 x7 {7 j; x
\nabla f(x, y) = \begin{bmatrix}
- d* K' k/ K4 J- N
\frac{\partial f}{\partial x} \\
' R: E9 U+ f$ D+ h
\frac{\partial f}{\partial y}
2 ?8 j! s# i% G6 Q+ _# v
\end{bmatrix} = \begin{bmatrix}
& X4 J+ J Y# s, n% S
2x - 4 \\
$ F g2 l$ F) { p0 N' b: E3 C# w
2y - 6
7 o! ], i' ^ }" v# ^$ ? h, l
\end{bmatrix}
# `+ q) g' }( g2 S
\]
4 L2 o; O( O3 h
1 a3 u" U* I* h; O. V
- 哈essian矩阵:
0 C* Y* p$ T: f D) M
\[
$ ~) t0 X3 B# u
H(x, y) = \begin{bmatrix}
; T, j# S1 F4 p2 j8 A" \& Q
\frac{\partial^2 f}{\partial x^2} & \frac{\partial^2 f}{\partial x \partial y} \\
/ ]" B0 v" |* F- U
\frac{\partial^2 f}{\partial y \partial x} & \frac{\partial^2 f}{\partial y^2}
, O7 u* K! i' b
\end{bmatrix} = \begin{bmatrix}
8 J% ] t' l, Y c; Y
2 & 0 \\
3 S7 n5 h" ^' |3 E* ^* p# [
0 & 2
- f$ L9 a& t' N6 f' r9 `
\end{bmatrix}
4 A8 Q _1 ?1 d2 O' I0 D Z
\]
6 B4 ?2 Z$ d$ ^6 l. \9 J0 Q
4 J: ?2 p( G1 ~1 x* v0 }; j. k
#### 2. 初始化
* j" Q2 d* [5 e! [0 p
& n: U& U* L+ h3 S
选择初始点 \( x_0 = (0, 0) \)。
$ D" M9 D) n$ D: G0 v
& \! `4 m0 z: I. S. p8 l$ M6 Q
#### 3. 迭代过程
9 u$ C2 t# z* K5 {. E, W4 L% ?
; n( I9 W; C; f1 q/ n2 `" Q
- 计算梯度:
9 c/ ?: }' @: d, H* {& M" ]
\[
6 P4 U$ ?$ {$ H& k/ [
g_0 = \nabla f(0, 0) = \begin{bmatrix}
6 s8 Z! y4 O- s7 g* t' p5 w* O
-4 \\
& R8 e$ B1 p$ U' J5 M
-6
! U+ E0 ^ n, i* ^: S. S) Y$ E
\end{bmatrix}
; Q5 |, }, d3 G( ?+ o, Z4 ~
\]
" l5 r2 w$ e' e
a1 Y: T. C3 r2 K9 a) t. o
- 计算哈essian矩阵(在初始点不变):
& i" Y6 A8 U- S1 P9 t
\[
6 A! {! W, T. l4 q# D* B5 |
H_0 = \begin{bmatrix}
* O7 ]! m |5 x/ K! @" }
2 & 0 \\
, B: V$ O, z. }% q& T3 U
0 & 2
9 p! f- q1 W. P- Y; {
\end{bmatrix}
: I. A: A. F+ d7 V# v5 p3 X( Y
\]
: }" U) V: L/ A, M
9 ?! ?8 c+ P; k9 n& ~
- 计算搜索方向:
2 a" a2 Y6 y5 Y3 ^
\[
+ s2 v, Q' l/ S5 \! b
d_0 = -H_0^{-1} g_0 = -\begin{bmatrix}
! p! ^# M0 ^+ X: P
0.5 & 0 \\
! p; u3 h# j$ L! t6 D; P
0 & 0.5
7 F/ j5 @; O4 C7 ?% E
\end{bmatrix} \begin{bmatrix}
6 e# l5 |% Q! h* k$ ~
-4 \\
6 T7 x1 E" ]- |6 o k
-6
2 k9 |' E4 ^ b A/ }4 d4 l% j+ x5 w
\end{bmatrix} = \begin{bmatrix}
8 I/ x. P4 f) e0 B
2 \\
/ g d# F, _8 J7 f& `
3
E1 R* [% I! l$ P9 j
\end{bmatrix}
- P" g8 N0 a8 B
\]
8 t: y: E0 [# k ]0 G
1 {/ W' j$ }5 q% W1 X
- 更新位置:
( K# ^0 D+ n, ?5 A" C; d( @
\[
/ f9 m& o+ P2 U+ [; m
x_1 = x_0 + d_0 = \begin{bmatrix}
b E3 M1 q* m' @
0 \\
2 ^- h( X. p8 D( L5 h1 y
0
) A, H+ g- T2 N; l& c
\end{bmatrix} + \begin{bmatrix}
3 t# B9 W% C ^
2 \\
( q, ^' x5 Z% I3 g
3
6 P. f; F3 B# S$ l
\end{bmatrix} = \begin{bmatrix}
: N# @; x$ n8 f; o
2 \\
, u; [9 u% r3 z; F: K* E* u
3
1 a# I5 |+ c; ?) U, |6 S
\end{bmatrix}
& K4 B& {9 c( G/ Q3 e) T8 m
\]
3 m- f5 L3 x; d$ n8 g2 D0 ?
" E9 c% V2 ]' K0 q4 l
- 重复上述步骤直到收敛。
1 Q! ^7 B( i# E; P$ ?' h
! @# I* J$ J( f5 g, m6 N
#### 4. 收敛判定
6 D5 M7 H! R, ]5 V* a+ o) U. o# X; ~7 J
- ]( U# B7 ]+ C) T
在后续的迭代中继续计算梯度和哈essian并更新,直至梯度的模长小于某一阈值。
/ q3 g6 A5 Z% Z8 }2 {2 v
' e# d) W$ A3 R/ P V5 ~
### 总结
5 F* Z n0 {7 T7 B! e' H5 R- ^
8 M; ]2 S( p8 ?; `2 L
牛顿法通过利用梯度和哈essian矩阵提供了快速的收敛性,尤其在接近最优点时表现优越。然而,它对初始值的选择和哈essian的可逆性有一定要求。在问题规模较大或哈essian不可逆时,可能需要使用拟牛顿法或其他优化技术。
) Y5 z. W: R* O. U$ W6 e* b
9 `) W x" n- Y( J
" \* D* K1 |7 Y* b
$ I* y( R5 } M! ?$ S# N
minNT.m
2024-9-25 16:39 上传
点击文件名下载附件
下载积分: 体力 -2 点
517 Bytes, 下载次数: 0, 下载积分: 体力 -2 点
售价:
2 点体力
[
记录
] [
购买
]
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5