我有一个矩形矩阵,如下所示:
1、3、2、4、n.. 4、2、1、5、n.. n..
还有一个向量:
1、2、5、6、7、n..
我需要解决所有列的最小二乘方程,但我希望限制结果使所有答案都大于零。
我已经添加了Math.NET包,并且已经写出了以下代码:
matrix.QR().Solve(...)
假定有一些迭代方法可以解决这个问题,但似乎没有办法在Solve方法中指定约束条件,而且我不确定应该使用什么其他方法。
以下是部分代码:
1、3、2、4、n.. 4、2、1、5、n.. n..
还有一个向量:
1、2、5、6、7、n..
我需要解决所有列的最小二乘方程,但我希望限制结果使所有答案都大于零。
我已经添加了Math.NET包,并且已经写出了以下代码:
matrix.QR().Solve(...)
假定有一些迭代方法可以解决这个问题,但似乎没有办法在Solve方法中指定约束条件,而且我不确定应该使用什么其他方法。
以下是部分代码:
//compounds is Dictionary<int, List<double>>
var xdata = compounds.Values.Select(v => v.ToArray()).ToArray();
var ydata = new DenseVector(someKnownValues.ToArray());
var matrix = DenseMatrix.OfColumns(ydata.Count(), xdata.Count(), xdata);
var factors = matrix.QR().Solve(ydata);