用C#(单声道)求解带约束的线性方程组

时间:2019-06-10 00:22:37

标签: c# matrix linear-algebra numerical-methods accord.net

我有一个尺寸为3xN的线性方程组,目前正在使用Accord.NET method进行求解:

double[,] A = ... // matrix A
double[]  b = ... // vector b

// Then all that is necessary is to call:
double[] x = A.Solve(b, leastSquares: true);

这很好用,但我还需要施加约束(主要是x> 0)。有没有办法(最好是在Accord或其他一些简单的库中)实现这一点?

A和B的元素可以具有正,负和零值,我想不出任何可以用来简化问题的特定模式(例如对角线值,奇异性)。该解决方案需要在计算上快速且简单,但不一定需要给出确切的答案(即,如果速度更快,则可以通过数值求解)。

顺便说一句,如果在仍然提供准确解决方案的同时使求解器变得“不太精确”,那么有没有办法添加首选项,例如:

  • 最小化所有x元素的值
  • 最小化x个非零元素的数量

谢谢!

0 个答案:

没有答案