Math 如何求线性规划方程的解

Math 如何求线性规划方程的解,math,mathematical-optimization,Math,Mathematical Optimization,一个农民有一块农田,比如说1平方公里,可以种植小麦或大麦,或者两者的组合。农民有限量的肥料F公斤和杀虫剂P公斤。每平方公里小麦需要F1公斤化肥,P1公斤杀虫剂,而每平方公里大麦需要F2公斤化肥,P2公斤杀虫剂。设S1为每平方公里小麦的售价,S2为大麦的售价。如果我们分别用x1和x2表示种植小麦和大麦的土地面积,那么可以通过选择x1和x2的最佳值来实现利润最大化。该问题可用以下标准形式的线性规划问题表示: 请参阅本页,其中给出了约束条件。 解决这类问题的过程是什么?你的问题是所谓的线性规划问题。

一个农民有一块农田,比如说1平方公里,可以种植小麦或大麦,或者两者的组合。农民有限量的肥料F公斤和杀虫剂P公斤。每平方公里小麦需要F1公斤化肥,P1公斤杀虫剂,而每平方公里大麦需要F2公斤化肥,P2公斤杀虫剂。设S1为每平方公里小麦的售价,S2为大麦的售价。如果我们分别用x1和x2表示种植小麦和大麦的土地面积,那么可以通过选择x1和x2的最佳值来实现利润最大化。该问题可用以下标准形式的线性规划问题表示: 请参阅本页,其中给出了约束条件。


解决这类问题的过程是什么?

你的问题是所谓的线性规划问题。有各种算法和各种实现。我使用了一个名为GLPK的程序,效果很好。您可以使用特定于领域的编程语言陈述您的问题,GLPK将处理该程序以找到解决方案。通过web搜索GLPK应该可以找到它。

import java.text.DecimalFormat;
公共类候选代码{
公共字符串获取总利润(字符串输入1){
String[]inputs=input1.split(“,”);
//以平方公里为单位的一块农田
float L=float.valueOf(输入[0]);
//肥料(千克)
float F=float.valueOf(输入[1]);
//杀虫剂(千克)
float P=float.valueOf(输入[2]);
//每平方公里小麦所需肥料(kg)
float F1=float.valueOf(输入[3]);
//每平方公里小麦所需杀虫剂(kg)
浮点P1=浮点值of(输入[4]);
//每平方公里大米所需肥料(kg)
float F2=float.valueOf(输入[5]);
//每平方公里大米所需杀虫剂(kg)
float P2=float.valueOf(输入[6]);
//小麦每平方公里售价
float S1=float.valueOf(输入[7]);
//每平方公里大米售价
float S2=float.valueOf(输入[8]);
//结果变量
浮动总价格聚焦=0f;
浮动总价格溢出=0f;
当使用时的浮点总值=0f;
浮点数totalWheatFertUsed=0f;
热浮子面积=0.00f;
浮子面积=0.00f;
浮动量=0.00f;
while(true){
if((L==冰面积+冰面积)
||P==集中的总价格+集中的总价格
||F==totalRiceFertUsed+totalWheatFertUsed | | F2==0
||F1==0 | | P2==0 | | P1==0){
打破
}
float calRiceProfit=数学最小值(F/F2,P/P2)*S2;
浮动calWheatProfit=数学最小值(F/F1,P/P1)*S1;
如果(calRiceProfit>calWheatProfit){
使用的浮动面积=P/P2;
浮动面积F=F/F2;
如果(区域未使用>区域未使用){
L=L-被覆盖的面积;
F2=0;
totalRiceFertUsed=totalRiceFertUsed+F2;
面积OFRICE=面积OFRICE+面积FERTUSED;
金额=金额+面积费*S2;
}否则如果(区域未使用<区域未使用){
L=L-使用的面积;
P2=0;
TotalRiceInSecsed=TotalRiceInSecsed+使用面积;
面积OFRICE=面积OFRICE+使用面积;
金额=金额+使用面积*S2;
}
}否则{
使用的浮动面积=P/P1;
浮动面积F=F/F1;
如果(区域未使用>区域未使用){
L=L-被覆盖的面积;
F1=0;
totalWheatFertUsed=totalWheatFertUsed+F1;
加热面积=加热面积+加热面积;
金额=金额+已分配面积*S1;
}否则如果(区域未使用<区域未使用){
L=L-使用的面积;
P1=0;
totalWheatInsecUsed=totalWheatInsecUsed+使用面积;
加热面积=加热面积+使用面积;
金额=金额+使用面积*S1;
}
}
}
DecimalFormat df=新的DecimalFormat();
df.setMaximumFractionDigits(2);
df.setMinimumFractionDigits(2);
返回df.format(amount)+“,“+df.format(areaOfWheat)+”,”
+格式(面积);
}
}

这是一个直接来自维基百科的示例。。。如果这是一个家庭作业问题,老师应该因为不够努力而得到F:)只要给我任何链接或解释一下,如果你愿意的话。无论哪种方式,我们都将不胜感激。@duffymo-谢谢您的建议。我有一个解方程的互动网站。但他们有一个最大化的方程式。我们如何将这个问题与最大化方程联系起来。虽然这个代码可能有助于解决这个问题,但它没有解释为什么和/或如何回答这个问题。提供这种额外的环境将大大提高其长期价值。请在回答中添加解释,包括适用的限制和假设。