Решение системы линейных уравнений с ограничениями в C # (моно) - PullRequest
0 голосов
/ 10 июня 2019

У меня есть система линейных уравнений с размерами 3xN, которую я в настоящее время решаю, используя метод Accord.NET :

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

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

Это работает нормально, но мне также нужно наложить ограничения(прежде всего, х> 0).Есть ли способ реализовать это (в идеале в Accord или какой-то другой простой библиотеке)?

Элементы как A, так и B могут иметь положительные, отрицательные и нулевые значения, и я не могу думать о каких-либо конкретных шаблонах, которыеможет быть использован для упрощения задачи (например, диагональные значения, особенности).Решение должно быть быстрым в вычислительном отношении и простым, но не обязательно давать точный ответ (т.е. оно может быть численно решено, если это быстрее).

С другой стороны, если решатель должен быть сделан«менее точный», в то же время обеспечивая точное решение, есть ли способ добавить предпочтение, такое как:

  • , минимизирующее значения всех элементов x
  • , минимизирующее количество элементов xненулевые

Спасибо!

...