我有兩個點,分別命名爲source
和target
。我知道源的座標(例如,[-1 1]
),問題是確定目標的位置(例如,[1 -1]
)。 基於反三角函數的成本函數
我有一些測量,其中之一是從目標指向源的箭頭角度(即135 deg
)。
爲了找到目標的位置,我定義了一個錯誤函數來最小化;我使用漸變下降算法,所以我有一個象徵性的錯誤函數,如;
syms xs ys xt yt
z(xs,ys,xt,yt) = theta - asin((ys - yt)/((xs - xt)^2 + (ys - yt)^2)^.5);
在其theta
是測得的角度,135 deg
(對於一個理想的解決方案z
,該錯誤,將是零,135 - 135 = 0
)
還有其他測量和餘計算的這些誤差函數的雅可比和儘量減少錯誤。
總之,問題是theta
在這個例子中是135 deg
,但我們知道輸出asin
是[-90 90]
和這個例子是asin(1/2^.5) = 45 deg
。所以對於正確的答案,我的錯誤函數z
不會是零,我需要更改我的錯誤函數,我應該使用什麼?
我只是需要一個誤差函數爲我theta
在不同[0 360]
,而asin
和atan
有[-90 90]
的範圍內,我不能使用,因爲象徵功能if
語句。
想想載體和操作,如積的條款;我認爲它會更好。 – duffymo 2015-03-02 14:48:46
您是否還必須平衡成本函數以確保您能找到最低要求?我想知道你的成本函數是什麼,以及那個成本函數的梯度?我認爲你應該減去成本函數的斜率,即'theta-d/dt'。 – kkuilla 2015-03-02 15:38:44
這個問題似乎也不是關於Matlab,恐怕。 – kkuilla 2015-03-02 15:39:24