Меня действительно интересует численный анализ. Я использую приложение с открытым исходным кодом DotNumerics. Моя линейная система следующая:
1 * x + 3 * y <= 150
2 * x + 1 * y <= 100
где x> = 0, y> = 0
z = 10 * x + 15 * y
Я пытаюсь решить z
(оптимизация ...)
Я могу использовать Симплексный метод решения вышеуказанной проблемы, как показано по этой ссылке . Я также отправил автору электронное письмо, однако он не ответил.
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;
}
}
}