我在数值分析很感兴趣。我一直在使用DotNumerics开源应用程序。我的线性系统如下:
1 * X + 3 * Y< = 150
2 * X + 1 * Y&其中; = 100
其中, X> = 0,Y> = 0
Z = 10 * X + 15 * Y
我试图解决以Z
(优化...)
我可以用单纯的方法来解决上述问题,因为在这个环节发现。我也通过电子邮件的作者,但他没有回答。
使用DotNumerics.Optimization;
使用DotNumerics;
命名空间App.SimplexCalcLinearProgramming
{
类节目
{
静态无效的主要(字串[] args)
{
单面单=新单();
双[] initialGuess =新的双[2];
initialGuess [0] = 0.1;
initialGuess [1] = 2;
双[]最小= simplex.ComputeMin(AmacFunction,initialGuess);
。minimum.ToList()的ForEach(Q => Console.Write(q.ToString()+\ N));
Console.ReadKey();
}
静态双AmacFunction(双[]×)
{
/ *
* 1 * X + 3 * Y&其中; = 150
* 2 * X + 1 * Y&其中; = 100
*
*,其中x> = 0,Y> = 0
*
* Z = 10 * X + 15 * Y
*
*解决用于z
* /
双F = 0;
F = 10 * X [0] + 15 * X [1];
返回F;
}
}
}
解决方案
我不认为DotNumerics可以自己解决LP问题。据我跨$ P $磅的文档时,内尔德 - 米德(单纯形法)实施只用于解决简单minimalisation问题,而不是LP的问题。
上一次我在C#中解决了LP,我用了一个.NET包装,以 LP_Solve 。
如果您下载lpsolve包,它应该与.NET的一个例子。你也可以将它插入href="http://msdn.microsoft.com/en-us/devlabs/hh145003" rel="nofollow">微软求解器的基础(的