У меня есть система линейных уравнений с размерами 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ненулевые
Спасибо!