找到类似于第三个向量的两个向量的最佳线性组合;实施约束

时间:2014-03-14 17:13:21

标签: matlab

我有一个向量z,我希望通过两个其他向量(x,y)的线性组合来近似,使得a * x + b * y和z的残差最小化。另外,我想保持一个系数(a)为拟合正。 任何建议哪些命令可能有帮助? 谢谢!

2 个答案:

答案 0 :(得分:0)

你必须定义一个能够降低成本的函数。成本越低,解决方案越好。输出必须是单个标量,例如差异的规范。

要避免x的负值,请添加(x<0)*inf之类的内容。这会拒绝带有负x的每个解决方案。

如果这样做,请使用fminsearch作为数字解决方案。

答案 1 :(得分:0)

如果您对其中一个系数没有限制,那么您的问题可能被视为多元回归(由regress在matlab中解决)。由于其中一个系数是有界的,因此您应该使用lsqlin。该函数解决了系数上具有边界或不等式的最小二乘问题。如果您的信号不居中,请不要忘记包含全部拦截预测器。

我认为fminsearch在这种情况下会超调,因为lsqlin完全符合您的要求。