我是matlab编码的初学者,所以任何帮助都会受到赞赏。
我正在尝试最小化2个变量的求和平方问题SUM((a-b)^ 2)的差异。我已经在Excel的Solver中编写了这样的代码:
目标=总和[{i,9},(Y [i] - (X [i] * m + b))^ 2] 使用非线性方法。
其中Y和X和数组,以及m和b是我们试图通过最小化总和来找到的变量。怎么会在Matlab中做同样的事情?
感谢。
答案 0 :(得分:1)
这是一个例子。我使用fmincon
设置了界限。
x=0:10;
y=x*randi(10)-randi(10)+rand(size(x)); % Create data y
f=@(A) sum((y-(A(1)*x+A(2))).^2) % Test function that we wish to minimise
R=fmincon(f,[1 1],[],[],[],[],[0 0],[Inf Inf]) % Run the minimisation R(1)=m, R(2)=b
plot(x,y,x,R(1)*x+R(2)) % Plot the results