同一块地、同一个产量模型:施 200 公斤肥产量最高(771),但每亩只赚 619 元。 只施 87 公斤,产量降到 612,利润反而到 984 元——多赚 365。 原因藏在售价里:产量从 612 拉到 771,价格从 2.39 掉到 2.23。 而如果价格钉死在 5 元,最优施肥量立刻变成 150 公斤。
12.2 的三个场景,约束都是「钱和人」。 12.3 换到农业,约束变成「地、水、肥」——听起来更物理,但坑反而更隐蔽。 第一个坑就藏在「产量最高」这四个字里。
一、产量最高不等于赚钱最多
农业 AI 最常见的交付物是「产量预测模型」。 它能回答「这块地能打多少粮」,但经营决策要问的是「我该施多少肥」。 这两个问题差得很远。 差别在于价格。 产量上去了,市场上的供给就多了,价格就下来了——这是最基础的供需关系, 但在单块地的决策里很容易被忘掉。 于是出现一个悖论式的结论: 你越努力把产量推到极限,单位重量的售价就越低,最后利润可能还不如少施点肥。 Demo 用一个很朴素的模型演示这件事: 产量响应是 800 乘(1 减 exp(负施肥量除以 60)),价格是 3.0 乘(1 减 产量 除以 3000), 肥料每公斤 5.5 元。 这三条式子都是公开的农学与经济学习惯写法,参数是我设的。 然后枚举 0 到 200 公斤的施肥量,找产量最大点和利润最大点。
二、两个最优点差了 113 公斤肥
| 策略 | 施肥(公斤) | 产量 | 售价 | 每亩利润 |
|---|---|---|---|---|
| 不施肥 | 0 | 0 | 3.00 | 0 |
| 产量最大化 | 200 | 771 | 2.23 | 619 |
| 利润最大化 | 87 | 612 | 2.39 | 984 |
| 固定价 5 元时最优 | 150 | 734 | 5.00 | 2847 |
| 先看前两行:施 200 公斤,产量 771,利润 619。 | ||||
| 再看第三行:只施 87 公斤,产量 612——少了 159 公斤,利润却到 984。 | ||||
| 为什么?因为产量高了,价格就下来了。 | ||||
| 售价那一列:产量最大时 2.23 元,利润最大时 2.39 元。 | ||||
| 差 0.16 元乘 612 公斤,就是那 365 元利润的来源。 | ||||
| 多打的那些粮食,把价格自己打下来了——这是农业里最典型的一条经济学事实。 | ||||
| 它叫「谷贱伤农」,两千年前就写在史书里。 | ||||
| 所以「预测产量」和「决定施多少肥」是两个完全不同的问题。 | ||||
| 一个只要模型准,一个要懂价格和成本怎么联动。 |
三、换个合同,答案就变了
最后一行是最有意思的:如果价格钉死在 5 元(比如订单农业保底收购), 最优施肥量立刻变成 150 公斤。 比随行就市时的 87 公斤多出 72%。 同一个模型、同一块地,合同形式变了,最优决策就变了。 这说明决策的输入不只是模型输出,还有市场结构。 这一条对农业 AI 的产品设计有直接影响: 如果客户是「随行就市」的散户,模型要接价格预测; 如果客户是「订单农业」的合作社,模型只需要产量曲线。 同一个算法,两种产品形态。 还有个更细的点:价格钉死时,最优点是个「角点问题」的边缘。 因为价格不随产量变,边际收益就是常数乘边际产量, 所以最优条件是「边际产量等于肥料价格除以售价」——这是一个闭式解,连搜索都不用。
四、落地:三个输入缺一不可
① 产量响应曲线。 这是唯一需要机器学习拟合的部分, 而且它必须带「边际递减」的形状——线性模型会给出「一直施肥一直赚」的错误结论。 ② 价格弹性。 这一项最容易被忽略。很多农业 AI 产品默认「价格不变」, 那等于假设这块地的产量不影响市场——只有在大市场里才近似成立。 ③ 成本结构。 肥料只是显性成本;还有人工、水电、机械折旧。 而这几项往往是固定的,不随施肥量变——所以它们只影响「种不种」,不影响「施多少」。 把这三层分开算,有一个实际好处: 可以分别告诉客户「你的产量还有多少提升空间」和「按当前价格你该施多少」—— 后者往往比前者更能立刻省钱。 最后一句:农业智能化的第一课不是「让产量更高」,是「让决策更对」。 这两个目标在价格有弹性的时候,甚至是冲突的。
五、动手 Demo:施肥决策:产量最大化施 200 公斤,利润最大化只施 87 公斤
用「800 乘(1 减 exp(负施肥量除以 60))」当产量响应, 「3.0 乘(1 减 产量除以 3000)」当价格(产量越高价越低),肥料 5.5 元一公斤。 枚举 0 到 200 公斤的施肥量,分别找产量最大点与利润最大点; 再把价格钉死在 5 元重算一遍,看最优施肥量怎么变。
def yield_of(x): # 边际递减的产量响应
return 800.0 * (1.0 - np.exp(-x / 60.0))
def price_of(y): # 产量越高,价格越低
return 3.0 * (1.0 - y / 3000.0)
def profit(x, fixed=None):
y = yield_of(x)
p = fixed if fixed else price_of(y)
return p * y - 5.5 * x
x_yield = xs[int(np.argmax(yield_of(xs)))]
x_prof = xs[int(np.argmax(profit(xs)))]
实跑输出:
--------------------------------------------------------------------
施肥决策:产量最大化施 200 公斤,利润最大化只施 87 公斤
--------------------------------------------------------------------
产量响应 800 × (1 - exp(-施肥量 / 60))
价格 3.0 × (1 - 产量 / 3000),产量越高价越低
肥料成本 每公斤 5.5 元
决策变量 每亩施肥量,0 到 200 公斤
策略 施肥(公斤) 产量 售价 每亩利润
------------------------------------------------------
不施肥 0 0 3.00 0
产量最大化 200 771 2.23 619
利润最大化 87 612 2.39 984
固定价 5 元时最优 150 734 5.00 2847
**先看「产量最大化」那一行:施 200 公斤,产量 771。**
**再看「利润最大化」:只施 87 公斤,产量 612——少了 159。**
**但利润从 619 涨到 984。**
**为什么?因为产量高了,价格就下来了。**
看「售价」那一列:产量最大化时是 2.23 元,利润最大化时是 2.39 元。
**多打的那些粮食,把价格自己打下来了——这是农业里最典型的一条经济学事实。**
**所以「预测产量」和「决定施多少肥」是两个完全不同的问题。**
**一个只要模型准,一个要懂价格和成本怎么联动。**
最后一行对比很有意思:**如果价格钉死在 5 元(比如订单农业保底收购),**
**最优施肥量就是 150 公斤,比随行就市时的 87 公斤多出 72%。**
**同一个模型、同一块地,合同形式变了,最优决策就变了。**
**这说明决策的输入不只是模型输出,还有市场结构。**
要说明:产量响应曲线、需求曲线的系数都是我**设的**。
**真实农业里还有土壤差异、品种差异、天气风险、储存损耗。**
**但「产量最优不等于利润最优」这个结论,在任何一个有价格弹性的市场里都成立。**
这张表最重要的一行其实是最后一行。 因为价格钉死之后,最优施肥量从 87 跳到 150——多出七成。 这说明「最优点」不是产量的属性,是「产量加市场」的属性。 换句话说:没有脱离市场的农艺建议。 中间两行的对比也有个容易看漏的地方:产量只少了 20.6%,利润却多了 59%。 因为产量减少省下的肥料钱是实打实的,而少卖的那部分粮是按低价卖的。 这一条可以推广成一个判据:只要你的产出会影响价格,「把产量推到极限」就一定不是最优。 它适用于农业,也适用于任何有价格弹性的生产决策。 要说明:产量响应曲线、需求曲线的系数都是我设的。 真实农业里还有土壤差异、品种差异、天气风险、储存损耗。 但「产量最优不等于利润最优」这个结论,在任何一个有价格弹性的市场里都成立。
30 秒实验
- 把价格弹性改成「3.0 乘(1 减 产量除以 8000)」(市场更大),再看两个最优点。 会靠拢——市场越大,单块地对价格的影响越小,利润最优点就越接近产量最优点。
- 把肥料价格从 5.5 提到 9.0,看最优施肥量。 会往下走,而且产量最优点不变(还是 200)——这说明「成本影响决策,不影响产能上限」。
- 把产量响应改成线性的(800 乘 x 除以 200),再看最优施肥量。 会跑到边界 200 公斤——线性模型永远给出「多施多赚」,这就是必须保证曲线边际递减的原因。
常见误区
- 「产量预测准了,施肥建议就准了」。产量最大点和利润最大点差了 113 公斤肥、365 元。
- 「价格是外部变量,模型不用管」。 产量从 612 到 771,价格从 2.39 掉到 2.23,这一项直接决定答案。
- 「订单农业和随行就市用同一个模型」。价格钉死时最优点从 87 挪到 150,差七成。
自测三问(点开对答案)
1. 为什么产量最大化时利润反而更低? —— 产量增加会压低售价,多打的粮食按更低单价卖出;同时多施的肥料是实付成本,两者叠加使利润下降。 2. 价格钉死之后,为什么最优施肥量大幅上升? —— 价格不随产量变化,边际收益只取决于边际产量; 最优条件从「边际产量乘价格乘弹性」变成「边际产量等于肥价除以售价」。 3. 为什么产量响应曲线必须边际递减? —— 线性或递增的曲线意味着「一直施肥一直赚」,最优解会跑到边界; 真实农学规律是边际报酬递减,这也是最优点存在的前提。施多少肥是「一块地」的决策。 下一节放大到「八块地、一笔水」——这时候难点不再是算最优点,是「公平」和「效率」打架。
- ☐ (本节完,下一节 12.3.2 资源利用优化)