0
必須有一個更簡單的方法來做到這一點,也歡迎優化方法。我有一個數組'Y'和許多參數必須調整,使得Y接近零(='X'),如MWE中給出的。是否有更好的程序來減少這種差異?這只是一個示例方程,可以有6個係數進行優化。如何在MATLAB中獲得接近另一個數組的數組元素?
x = zeros(10,1)
y = rand(10,1)
for a=1:0.1:4
for b=2:0.1:5
for c = 3:0.1:6
z = (a * y .^ 3 + b * y + c) - x
if -1<= range(z) <= 1
a, b, c
break
end
end
end
end
編號a,b,c應取一定範圍內的值。 –
'polyfit'解決最小化程序 - 模型是'y'的多項式函數,並且您有一些測試數據{{y_i} _ {i = 1}^N'。 'polyfit'不限制'a,b,c'的範圍。你可以用'a,b,c'約束寫出最小化程序,並使用'fmincon'或其他求解器來找到'a,b,c',以最小化數據和模型之間的距離('L2'規範)受制於'a,b,c'在特定範圍內的限制。請參閱博伊德關於約束最小二乘的筆記:http://stanford.edu/class/ee103/lectures/constrained-least-squares/constrained-least-squares_slides.pdf –