【问题标题】:Matlab fmincon sum of difference squaredMatlab fmincon 差平方和
【发布时间】:2014-04-07 21:46:09
【问题描述】:

我是 matlab 编码的初学者,因此我们将不胜感激。

我试图最小化 2 个变量的求和平方问题 SUM((a-b)^2) 的差异。我已经在 Excel 的 Solver 中编写了这样的代码:

目标= Sum[{i, 9}, ( Y[i]- (X[i]*m+b) )^2 ] 使用非线性方法。

其中 Y 和 X 以及数组,m 和 b 是我们试图通过最小化总和来找到的变量。如何在 Matlab 中做同样的事情?

谢谢。

【问题讨论】:

    标签: matlab minimize


    【解决方案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
    

    【讨论】:

    • 谢谢大卫,这看起来很棒。我确实需要 m 和 b 是非负的约束。既然你传入 [1 1] 作为 m 和 b 的起始值,我们如何将约束放入?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多