我對數值分析非常感興趣。我一直在使用DotNumerics開源應用程序。我的線性系統如下:如何使用DotNumerics解決線性規劃問題?
1 * x + 3 * y <= 150
2 * x + 1 * y <= 100
其中x >= 0, y >= 0
z = 10 * x + 15 * y
我試圖解決z
(優化...)
I can use Simplex method to solve above problem as found in this link。我還通過電子郵件發送了作者,但他沒有回覆。
using DotNumerics.Optimization;
using DotNumerics;
namespace App.SimplexCalcLinearProgramming
{
class Program
{
static void Main(string[] args)
{
Simplex simplex = new Simplex();
double[] initialGuess = new double[2];
initialGuess[0] = 0.1;
initialGuess[1] = 2;
double[] minimum = simplex.ComputeMin(AmacFunction, initialGuess);
minimum.ToList().ForEach(q => Console.Write(q.ToString() + "\n"));
Console.ReadKey();
}
static double AmacFunction(double[] x)
{
/*
* 1 * x + 3 * y <= 150
* 2 * x + 1 * y <= 100
*
* where x >= 0, y >= 0
*
* z = 10 * x + 15 * y
*
* Solve for z
*/
double f = 0;
f = 10*x[0]+15*x[1];
return f;
}
}
}
哦,不知道那個工具。我將不得不稍後再看這 – 2011-05-18 18:40:13
還沒有使用dotNumerics,但如果它是一個你正在嘗試解決的LP,你有沒有考慮過使用 - 微軟解決方案http://msdn.microsoft.com/en-us/library/ ff524509(v = vs.93).aspx – Gangadhar 2011-05-18 18:40:48