问题描述
我需要求解一个由方程和约束组成的欠定线性系统,然后找到使成本函数最小化的特定解.这需要在将在 .NET 和 Mono 中运行的纯可移植托管代码中完成.有哪些免费可用的库可供我用来实现这一点?
I need to solve an under-determined linear system of equations and constraints, then find the particular solution that minimises a cost function. This needs to be done in purely portable managed code that will run in .NET and Mono. What freely available libraries are there that I can use to implement this?
我发现免费库提供的所有优化算法仅支持单个变量的区间约束,例如<代码>0 x + 2y < 这样的约束4代码>.我还发现,通常线性方程组求解器只支持具有一种解的线性系统.
All of the optimisation algorithms provided by free libraries I have found only support interval constraints on single variables, e.g. 0 < x < 1
, not constraints like x + 2y < 4
. I have also found that often the linear equations solvers only support linear systems with one solution.
到目前为止我发现的最接近的是 DotNumerics,其中包括用于求解欠定线性的奇异值分解系统,但它的优化算法只支持单变量约束(据我所知).
The closest I have found so far is DotNumerics, which includes Singular Value Decomposition for solving under-determined linear systems, but its optimisation algorithms only support single-variable constraints (as far as I can tell).
还有其他几个关于线性规划的问题,但我的主要要求是多变量约束和解决欠定系统.我还没有找到支持多变量约束的免费库.
There are several other questions asking about linear programming, but my key requirements are multi-variable constraints and solving under-determined systems. I have yet to find a free library that supports multi-variable constraints.
推荐答案
ALGLIB 是通常的首选用于线性求解器之类的库.在绝望之前,我会好好看看.
ALGLIB is the usual go-to library for things like linear solvers. I would give that a good look before despairing.
这篇关于.NET/C# 的线性编程库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!