【发布时间】:2014-03-04 14:35:37
【问题描述】:
因此我有一个矩形矩阵:
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);
【问题讨论】:
-
您介意添加您的代码,以便我们了解您自己解决这个问题的进度吗?
-
@tnw - 添加了简短代码;很难添加更多,因为将“化合物”聚集在一起还有很多其他处理过程。
标签: c# .net math.net mathnet-numerics