每日 34

某村计划在100公顷的土地上种植a、b、c三种农作物。可以提供的劳力、粪肥
和化肥等资源的数量,种植每公顷农作物所需这三种资源的数量,以及能够获得的利
润如表所示。

种植投入产出表

用工 粪肥(吨) 化肥(千克) 利润(元)
a 450 35 350 1500
b 600 25 400 1200
c 900 30 300 1800
可提供资源 63000 3300 33000

其中一个劳动力干一天为1个工。现在要求为该村制定一个农作物的种植计划,
确定每种农作物的种植面积,使得总利润最大。
python:
import numpy as np
from scipy.optimize import linprog

目标函数系数(最大化需取负数转化为最小化问题)

c = np.array([-1500, -1200, -1800])

约束条件:Ax <= b

A = np.array([
[1, 1, 1], # 土地约束
[450, 600, 900], # 用工约束
[35, 25, 30], # 粪肥约束
[350, 400, 300] # 化肥约束
])
b = np.array([100, 63000, 3300, 33000])

result = linprog(c, A_ub=A, b_ub=b, method='highs')

输出结果

print("最优解:")
print("x1 (a作物面积) = {:.2f} 公顷".format(result.x[0]))
print("x2 (b作物面积) = {:.2f} 公顷".format(result.x[1]))
print("x3 (c作物面积) = {:.2f} 公顷".format(result.x[2]))
print("\n最大总利润 = {:.2f} 元".format(-result.fun))

posted @ 2025-06-03 21:55  一如初见233  阅读(6)  评论(0)    收藏  举报