如何用牛頓迭代法求一個三元函數f(x,y,z)的一個極小值?

例如,給定下面這個公式:

顯而易見函數f的最小值出現在(1,10,100)處。問題是,如果選擇初始值x0=y0=z0=1000,即初始值在(1000,1000,1000)處時,如何用牛頓迭代法求得這個函數的最小值?謝謝:)


函數只有一個極值,在 (1,10,100) 處,也容易證明是極小值。

牛頓迭代是用來求方程的數值解的,因為求極值就是解方程,所以你要說用牛頓迭代求極值,實際上是求下面方程組的解。雖說殺雞焉用牛刀,但是牛刀殺雞確實是可以的。
left{
egin{array}{l}
  h_1(x,y,z) = dfrac{partial f(x,y,z)}{partial x} = 2(x-1) = 0\[10pt]
  h_2(x,y,z) = dfrac{partial f(x,y,z)}{partial y} = 2(y - 10) = 0\[10pt]
  h_3(x,y,z) = dfrac{partial f(x,y,z)}{partial z} = 2(z - 100) = 0
end{array}

ight.

m{x} = left(
egin{array}{c}
x\[5pt]
y\[5pt]
z
end{array}

ight)m{F}(m{x}) = left(
egin{array}{c}
  h_1(x,y,z)\[5pt]
  h_2(x,y,z)\[5pt]
  h_3(x,y,z)
end{array}

ight)

則 Jacobi 矩陣為
egin{array}{rcl}
m{F}

迭代公式為:m{x}^{(k+1)} = m{x}^{(k)} - ig[m{F}

展開就是 left(
egin{array}{c}
x^{(k+1)}\[5pt]
y^{(k+1)}\[5pt]
z^{(k+1)}
end{array}

ight) = 
left(
egin{array}{c}
x^{(k)} - 0.5h_1(x^{(k)},y^{(k)},z^{(k)})\[5pt]
y^{(k)} - 0.5h_2(x^{(k)},y^{(k)},z^{(k)})\[5pt]
z^{(k)} - 0.5h_3(x^{(k)},y^{(k)},z^{(k)})
end{array}

ight) = 
left(
egin{array}{c}
1\[5pt]
10\[5pt]
100
end{array}

ight)

迭代公式中不含有第 k 次的迭代結果。換句話說不論初始值是多少,迭代一次的結果就是最終結果。

為什麼?畢竟是牛刀,解這個方程是不是太可惜了點?


把你題目中的x,y,z換成x1,x2,x3吧。

(註:Q是『倒三角F』的Jacobi 矩陣)

用牛頓迭代公式:

說明X1是極值點,即x=1,y=10,z=100。


推薦閱讀:

TAG:數學 | 微積分 | 趣味數學 | 高等數學 | 數值分析 |