因此,我們可以通過(4.6)得到一個名為f(θ)的函數,即:
(4.7)
其中A、B、C、D、E由一些參數(即α、a31、a41)組成。換句話說,我們
需要提取f(θ)=0的根。
二分法[39],[40]通常用于方程的數值求解
2
11
4
41
2
1 5 1 6 1 3 1 V(a Ta)[1a(αa)∧a(α)]/(ra)
2
12
4
42
2
2 5 2 6 2 3 2 V(a T∮a)[1a(α∮)∮a(α∮)]/(r∮a)
2
11
4
41
2
3 1 5 1 6 1 3 1 VV/(a T∮a)[1a(α)a(a)]/(ra)
2
12
4
42
2
4 2 5 2 6 2 3 2 VV/(a T∮a)[1a(α∮)∧a(α∮)/(r∮a)
[1()()]
[1()()]
4
41
2
31
4
41
2
31
4
三
a a a
a a a
五
五
fA∮B∮C∮DE 4 3 2()
36
在一個未知數中,這是一種分半的方法,它是近似的算術方程。所以我們用這個方法來求解f(θ),得到了θ的解。連續二分法使用完全不同的方法來解決指數問題。常數A到E方程的最小值和最大值被分配,使得對于給定的θ值f(θ)min和最大值f(θ)max可以計算出來。所有輸入行必須位于這些范圍f(θ)中的一個范圍內,但每個范圍不能超過一個行。然后程序依次將上下范圍的常數范圍減半,再次計算f(θ)范圍。現在,如果一些直線不在更小的f(θ)范圍內,那么范圍的上限或下限都可能被拒絕。因此,常數A和E按順序減少,從而提高其精度。該方法可能是詳盡的,但消耗的晶體對稱時間最少。利用二分法原理,求出θ的值,進而計算出r值,進而得到人體坐標位置(x,y)。此外,傳感器的輸出隨人體運動而不斷變化,即可以實時獲取人體位置。然而,在等式的某些部分,我們假設誤差變大了。該方法很容易從圖案中雜質峰,但其優點是可以以犧牲其更多的計算機時間為代價。該方法適用于低參數空間,即在測試立方體、正方形和三角形/六邊形時間網格時,計算機時間單斜和三斜系統顯著增加。因此,我們需要考慮另一種方法來解決低對稱指數粉末衍射圖樣的問題。
4.3最速下降法
雖然二分法[41]、[42]可以作為一種有效的測量人體位置的方法,但無論我們如何調整參數以取得更好的結果,在實際測量過程中仍然會產生較大的誤差。因此,我們考慮了另一種方法,即最速下降法。求函數最近局部最小值的算法是以梯度函數可以計算為前提的。最速下降法,也稱為梯度下降法,它是基于這樣一個觀察:如果定義了一個多變量函數F(y)和一個點的微鄰域,那么如果在b中的F方向上有一個負梯度,則F(y)下降得最快。因此,如果
37
a=b−C∇F(b)(4.8)
如果C足夠小,則F(b)≥F(a)。記住這一點,我們從
對F的局部最小值猜測y0,并考慮序列y0,y1,y2,…這樣
yn+1=yn−Cn∇F yn,n=0,1,2,3……(4.9)
我們知道了
F(y0)≥F(y1)≥F(y2)≥…,
因此列數(yn)收斂到期望的局部最小值。注意
步驟C的值可以在每次迭代中更改。基于某些假設
函數F(例如,F凸∇F Lipschitz)和特定選擇C(例如,
通過一行搜索條件選擇滿足Wolf),收斂到局部
最低可保證。當函數F為凸函數時,所有局部極小值
是一個全局最小值,所以在這種情況下,梯度下降可以收斂到全局
解決方案。
下圖如圖4.3所示。式中假設F為
在平面上定義,以及哪種圖案有碗的形狀。藍色輪廓曲線,
也就是說,F值是常數區域。紅色箭頭指示
負梯度的起點如圖4.3所示。注意
(負)垂直于通過該點的等高線的點的梯度。我們
注意,梯度下降會導致我們的碗底,也就是說,到點
其中函數的值 |