牛頓(Newton)方法

2021-07-15 02:36:58 字數 2850 閱讀 6843

設f(

x)具有連續的二階偏導數,當前迭代點是xk

.f(x

) 在xk

處的ta

ylor

展開式為f(

xk+d

)=fk

+gtk

d+12

dtgk

d+o(

||d|

|2),

其中d=

x−xk

. 在點xk

的鄰域內,用二次函式 qk

(d)=

δfk+

gtkd

+12d

tgkd

近似f(

xk+d

) ,求解問題 mi

nqk(

d)=f

k+gt

k+12

dtgk

d. 若

gk可逆,則方程組 gk

d=−g

k 的解d

k=−g

−1kg

k 為上面問題mi

nqk(

d)的唯一解.

迭代步驟:

步1 給出x0

∈rn,

ϵ>0,

k:=0;

步2 若終止準則滿足,則輸出有關資訊,停止迭代;

步3 計算dk

;

步4 xk

+1:=x

k+dk

,k:=k

+1, 轉步2.

下面是實現的**

#include 

#include

#define delta 1e-03

#define epsilon 1e-06

double funcvalue(double s)

double derivation(double s)

double dederivation(double s)

int main()

printf("%f, %f", x, funcvalue(x));

return

0;}

經過各種試驗之後,發現基本的newton法依賴於初始點的選擇,當初始點接近極小點時,迭代序列很快收斂於極小點,否則會出現迭代序列收斂到鞍點或極大點的情形,這會使迭代失敗。

由收斂性證明也可得知,它的收斂是區域性的。

阻尼牛頓法比基本牛頓法多了一步一維搜尋步長

α 的方法: xk

+1=x

k+αk

dk,

此法能保證對正定的gk

, 單調下降;即使xk

離x∗ 稍遠,該方法產生的點列

仍可能收斂至x∗

. 其中一維搜尋步長的方法有**比例法、多項式插值法、信賴域法等。

這裡介紹一下**比例法(0.618比例法):

首先我們需要確定乙個初始區間,使其包含 ϕ(

α)=f

(xk+

αdk)

,α>0

的極小點,這是建立在滿足單峰函式的基礎上的. 即使不是單峰函式,可以先用進退法得到乙個滿足單峰函式的區間. 這是迭代步驟:

步1 給定α0

∈[0,

∞),γ

0>0,

t>1,

i:=0.

步2 計算αi

+1=α

i+γi

. 若αi

+1≤0

,則令αi

+1:=0

, 轉步4;若ϕ(

αi+1

)≥ϕ(

αi),

則轉步4.

步3 令γi

+1=t

γi,α

:=αi,

αi:=α

i+1,

i:=i+

1 ,轉步2.

步4 若i=

0,令γi:=

−γi,

α:=αi

+1,轉步2;否則a=

min,

b=ma

x,輸出a,

b ,迭代停止.

0.618方法的迭代步驟:

步1 給定a0

>0,

b0>0,

i:=0,

ϵ>0,

τ:=0.618.

步2 若bi

−ai<ϵ,

則α∗:=

bi+a

i2,輸出α∗

,停止線搜尋.

步3 計算αl

i:=ai

+(1−

τ)(b

i−ai

),αr

i:=ai

+τ(b

i−ai

).步4 若ϕ(

αli)

<ϕ(

αri)

, 則ai

+1:=a

i,bi

+1:=α

ri; 否則ai

+1:=α

li,b

i+1:=

bi,i

:=i+1

,轉步2.裡面有python寫的詳細實現方式。

參考資料:

[1]高立.

數值最優

化方法.

北京大學

出版社.

Python 牛頓 Newton 插值法

本函式用於通過牛頓插值法計算某點的函式值 先計算函式每一級的差商,然後計算函式值 存放自變數x的值 data 用於存放函式值以及差商 x 0,2,3,5,6 data 0,8,27,125,216 用於存放待求值點 以及 計算結果 x f 5.5fun 0 計算每一級的差商 for i in ran...

牛頓交易所通證Newton是什麼?

牛頓交易所成立於2019年8月,全球shou創高頻解封數字資產交易平台。平台擁有強大區kuai鏈技術團隊和運營團隊,團隊成員均為數字貨coin領域早期投資者和區kuai鏈研究者。牛頓交易所旨在成為 乙個具有引力效應的高效的去中心化交易平台 對數字資產進行一站式管理,服務於數字金融生態系統。2019年...

優化方法 牛頓法例項

0.前言 上一節中已經介紹了牛頓法的一些原理,在本節中舉個具體例子,利用牛頓法求解函式最小值。1.例子 求解下列函式最小值 由於這個函式較為簡單,所以利用f對x y分別求偏導數,再令偏導數等於0,就可以求得極值點,又該函式是凸函式 如果分析不出,視覺化函式,如下圖 所以極值點就是最小值點,故最小值點...