我面臨以下問題:
我想擬合一條由基礎模型描述的曲線,該模型包含一組針對三個不同 x 范圍的三個不同函式,以便確定這些函式中的四個整體的三個未知引數(xG1和xG2)b。
對于x較小的轉換值xG1,函式值應為零:
f(x) = 0 for x < xG1
For xbetweenxG1和xG2曲線遵循冪律:
f(x) = ( (xG2 - 2 a ? b) / (a - 2 a ? b) )?[(x - xG1) / (xG2 - xG1)]^2 for xG1 ≤ x ≤ xG2
對于x更大xG2的曲線再次遵循線性關系:
f(x) = (x - 2 a ? b) / (a - 2 a?b) for x ≥ xG2
所以我目前的問題是過渡值xG1和xG2它們本身是要確定的未知引數,所以我不能使用分段擬合來確定它們。
我一定會使用matlab解決這個問題。
我已經嘗試使用曲線擬合工具箱,但它并不真正適合這樣的問題,這就是為什么我目前正在嘗試使用全域優化工具箱找到一種方法。
也許有人有使用全域優化工具箱或通常使用 matlab 完全不同的方法來解決此問題的想法。
提前致謝
最好的祝福
uj5u.com熱心網友回復:
一旦我有一個分段定義的模型并且兩個運算式之間的交叉點是一個自由引數,我必須解決一個類似的問題。
我所做的是從對所有模型引數的初始猜測開始,然后最小化平方誤差。在我的例子中,這是通過梯度下降來完成的,我對所有模型引數(包括交叉點)的梯度進行了數值評估。我當時沒有使用 MATLAB,但同樣的方法可以在這里應用。
另一種方法是讓 MATLAB 完成所有繁重的作業。如果您可以訪問優化工具箱,則可以使用諸如fmincon解決您的擬合等功能。 fmincon將模型引數的向量和它試圖最小化的成本函式作為輸入。在這種情況下,模型引數的向量也將包含交叉點,您的成本函式將是模型中的錯誤,其中成本函式將解釋不同的交叉點。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/446587.html
