数学模型下的官渡之战曹操兵力考

2016-06-16 02:31梅正阳
大学数学 2016年2期
关键词:数学模型

梅正阳

(华中科技大学数学与统计学院,武汉430074)



数学模型下的官渡之战曹操兵力考

梅正阳

(华中科技大学数学与统计学院,武汉430074)

[摘要]官渡之战中,曹操初始兵力到底是多少?通过建立数学模型,分析相关参数,得到曹操在三个月内战胜袁绍时,其初始兵力应该为8-10万人.

[关键词]官渡之战; 数学模型; 武将武力值; 文臣计谋评价值

1引言

官渡之战[1]是发生在公元200年(东汉建安五年)东汉末年的一次重要的战役,也是曹操集团消灭袁绍集团统一北方的重大战役,这场战役拉开了中国历史上汉末三国争霸的序幕.但是由于史籍对这场战争的记载有限,人们只能从不同侧面文字的描写中拼凑出战争的轮廓,为后人了解这场意义非凡的战役留下了许多谜团,许多主流三国史学家都认为,官渡之战是三国历史上以少胜多、以弱胜强、斗智斗勇的经典战例,罗贯中的小说《三国演义》[2]将其描写成袁绍率大军七十万进驻官渡,曹操起军七万迎敌,从第二十二回“袁曹各起马步三军,关张共擒王刘二将”到第三十一回“曹操仓亭破本初,玄德荆州依刘表”等多个章回的篇幅,详细地演绎了官渡之战.当时的名人诸葛亮也在“隆中对”中对刘备表示“曹操比于袁绍,则名微而众寡,然操遂能克绍,以弱胜强者,非惟天时,抑亦人谋也”[1,2].近年来也有学者从政治、军事、经济等多方面对双方参战兵力进行了详细的考证[3],认为袁绍兵力是曹操兵力的至少五倍甚至十倍.但是,也有研究者的研究结果[7]表明,曹操参战兵力应该与袁绍兵力相当,不存在以少胜多的情况.

那么,官渡之战时,双方的兵力到底如何?本文将通过数学模型思想和方法[4,5],建立官渡之战数学模型,基于数学模型计算结果为官渡之战兵力考能的历史研究提供一个窗口.

2官渡之战数学模型

官渡之战发生在中国古代冷兵器时期,无法采用热兵器火力射击和火炮覆盖情况下的大规模战争模型[6],本文将客观历史事实和主观评价相结合,建立官渡之战微分方程模型[8].

假设冷兵器的三国时代战争,主要形式分为对阵战和偷袭战两种.其中,“对阵战”是指双方摆好阵势,将帅和士兵展开厮杀;“偷袭战”是指一方在明处,另一方在暗处,暗处方乘明处方不备,突然发起攻击.为描述战争发展趋势,首先,定义战争一方“士兵平均损失率”为某段时间内丧失战斗力(死亡和伤病)的士兵数量与时间长度之比,当时间区间长度趋近于0时,即可得到连续时间下导数方程.如果以X方士兵损失率为例,其士兵平均损失率的极限即导数为对阵战损失率X1、偷袭战损失率X2、非战斗损失率X3和增援率X4之和.

(1)

其中“非战斗损失”是指疾病和逃跑等损失的士兵,“增援”是指战争开始后新加入的友军或己方后续部队.规定官渡之战的最小时间单位规定为“天”,即连续时间t离散化时按天计算.战争双方为袁绍集团和曹操集团.假设袁绍方兵力随时间变化的函数为x(t),曹操方兵力随时间变化函数为y(t),分析影响战争因素,建立数学模型.

对(1)各项进行详细描述如下:

对阵战

两军对垒,双方武将交锋,假设己方士兵损失率X1与对方士兵数成正比:

X1=战场知己知彼系数 × 战场综合杀伤系数 × 对方参与战斗士兵数.

(2)

战场知己知彼系数定义为

A=本方主帅正确识别双方资源数/双方资源总和.

资源包括:武将数、文臣数、主将能力、士兵数量、士兵素质、武器装备、粮草多少、战场气候、战场地理、双方后方稳固性等.本方主帅能否准确识别双方资源,是战前知己知彼、掌握战争主动权的关键.鉴于曹操能力优于袁绍[1],故假设双方战场知己知彼系数比:

袁方战场知己知彼系数∶曹方战场知己知彼系数 = 0.4∶0.6.

战场综合杀伤系数定义为

α=λ×武将综合武力值+(1-λ)×士兵综合素质,

其中通过分析历史资料,对参战武将打分,得到武力值见表1.在冷兵器时代,两军正面对垒时,本文认为武将能力比士兵素质更重要,故取综合权值λ=0.6,则1-λ=0.4.由于曹操率领的青州兵训练有素,进一步假设双方士兵素质比:

袁方士兵素质∶曹方士兵素质 = 0.6∶0.8.

(i)偷袭战

文臣谋士设计某种计谋,在隐蔽自己的同时突然袭击对方,给对方造成损失.偷袭战士兵损失率X2与对方参与战斗士兵数量和己方参与袭击士兵数之积成正比:

X2=战场灵活系数×计谋综合杀伤系数×己方参与士兵数×对方偷袭战士兵数,

(3)

其中,战场灵活系数定义为

B=0.5×(I+D),

其中I=1-e-n为信息感知系数[6],n为有效计谋次数,有效计谋次数越多,表示信息感知能力越强;D为主帅决策水平[6],可以通过判断主帅的方案选择能力、局面控制能力、心态谋略能力等进行评价,二者的简单平均即为战场灵活系数.鉴于双方主帅在接纳谋臣意见、判断战场形势等方面的差异,假设双方决策水平比

袁绍决策水平 ∶曹操决策水平 = 0.4∶0.8.

(ii)谋臣综合杀伤系数定义为

β=μ×主帅智谋评价值+(1-μ)×文臣智谋综合值.

通过分析历史资料,对官渡之战初期双方文臣进行打分,得到文臣智谋综合值见表2.当然,在冷兵器时代的偷袭战中,主帅在偷袭战发生前的决策、在偷袭战过程中的灵活应变能力是偷袭成功与否的重要因素,故取加权系数μ=0.6,则1-μ=0.4.由于双方主帅袁绍和曹操的智力有一定差距,故假设双方主帅智谋水平比:

袁绍智谋水平 ∶曹操智谋水平 = 0.4∶0.8.

参加偷袭战士兵数量是总士兵数的某个比例,即x′=kx,0≤k≤1,资料[1]表明,官渡之战中曹操派5千精兵火烧袁方乌巢(文献[7]等认为曹操率1万精兵袭击乌巢,本文按5千计算),袁绍派5千士兵偷袭曹方大营.

(iii)非战斗损失

疾病和逃跑造成的士兵损失率,与士兵总数成正比,设损失系数为u,v;

(iv)增援率

战役进行过程中,单位时间内己方或友军的增援士兵数,设为p(t),q(t).

实际战斗进行中,战时季节气候、战场地理环境等现象都可能有利或不利于某一方,并加大或减小某一方士兵损失率,此处不予考虑.

综上所述,最后得到官渡之战的数学模型:

(4)

其中第一、二个方程分别表示袁绍集团和曹操集团士兵瞬时损失率,x(0)=x0和y(0)=y0分别表示袁曹双方的初始兵力.

对于模型(4),假设不考虑双方非战斗损失率和增援率,得到官渡之战简化模型

(5)

3官渡之战模型参数确定

为了求解官渡之战模型(5),必须先确定出相关参数.

首先,通过资料[1,2],对袁绍和曹操军事集团双方文臣武将水平打分,对武将武力值和文臣计谋评价值按10分制打分,最低1分,最高10分,不计算降将得分.根据官渡之战初期双方情况,打分结果如表1和表2:

表1 袁绍集团和曹操集团武将得分表

表2 袁绍集团和曹操集团文臣打分表

统计打分结果为:文臣得分:袁绍集团51分,曹操集团44分,总分95分.

武将得分:袁绍集团61分,曹操集团61分,总分122分.

其次,根据资料[1,2],列出其它参数的实际意义和取值结果如表3所示:

表3 袁绍集团和曹操集团在官渡之战模型中的参数取值

袁绍集团提出被实施的3次计谋分别是:堆土山计、挖地道计、袭击曹操大营计;

曹操集团提出被实施的8次计谋分别是:程昱荐关羽斩颜良,延津弃粮草辎重诱敌诛文丑,刘晔造发石车计和掘长堑计,荀攸断袁绍粮草计,许攸火烧乌巢计,荀攸分袁绍兵并八路冲营计,程昱十面埋伏计.

根据文献记载,假设袁绍的初始兵力11万,曹操初始兵力2万[3].

4官渡之战模型求解与分析

假设战斗一方剩余士兵数量低于1000人时,判定该方战败.将表3各数据,代入模型(5),数值求解结果为袁绍战胜曹操,不符合历史事实,故略去求解过程.仔细分析史料,表3中有三处数据需要适当调整.第一,官渡之战全面开战之前,在前哨白马之战和延津之战中袁绍集团已有两员大将颜良和文丑被杀;第二,官渡之战刚刚开始之时,袁绍集团重要谋士田丰被下狱;第三,官渡之战进行之中,袁绍集团袭击曹方大营的计谋不成功,该计谋无效,可认为袁绍集团参与袭击士兵数为0.基于这三点,将袁绍集团文臣计谋值、武将武力值、有效计谋次数和偷袭战人数进行修改:

(i)武将武力值得分:袁绍集团61-14=47分,曹操集团61分,总分108分.

(ii)文臣计谋值得分:袁绍集团51-6=45分,曹操集团44分,总分89分.

(iii)有效计谋次数:袁绍集团3-1=2次,曹操集团8次.

(iv)袁绍方偷袭曹操大营不成功,袭击士兵数为0.

对表3部分数据进行修改,得到修改后的参数如下表4所示:

则相应的官渡之战数学模型(5)有如下模型(6)的具体形式:

(6)

模型(6)的Matlab数值求解结果见表5.

表5 模型(6)求解部分结果

由表5可知,虽然官渡之战开始时,袁绍集团的大将颜良、文丑已经被杀,谋士田丰也被下狱,而且偷袭曹方大营不成功,但是,只要袁绍凭借优势兵力,继续坚持3个月即约90天以上时,就能够以损失不到2万人即剩余约9万人的代价击败曹操.

但非常遗憾,官渡之战从建安五年八月开始,进行了大约3个月,到建安五年十月[1]的时候,袁绍大败,曹操完胜.有鉴于此,继续对模型(5)或模型(7)的参数逐个进行分析,寻找袁绍失败的原因.

4.1降低袁绍集团士兵作战能力,修改模型部分参数

由于袁绍在征服北方过程中,收编了很多割据势力的武装,这些割据势力的士兵素质较差,那么士兵素质到底有多差?是否能影响官渡之战的结局?在袁绍集团各项参数不变条件下,单纯降低袁绍方士兵素质能力评价值,将表3中第4项袁绍方士兵素质能力评价值由0.6降低为0.4,曹方士兵能力评价值0.8不变,则模型(6)被修改为如下模型(7)

(7)

对模型(7)用Matlab编程求解,结果如下表6.

表6 模型(7)求解部分结果

由表6可知,在官渡之战进行到120天左右时,曹操战败,袁绍胜利.

预测结果与实际结果相反,也就是说,曹操集团士兵素质是袁绍集团士兵素质的2倍时,曹操集团仍然无法战胜袁绍集团,这表明士兵素质不是影响官渡之战重要因素.

4.2降低袁绍指挥能力和决策水平,修改模型部分参数

部分资料如文献[3]认为,袁绍集团代表传统儒家士族利益,曹操集团代表新兴法家地主阶级利益,袁绍的政治军事能力都比曹操差很多,那么袁绍集团军事指挥能力到底有多差?能影响官渡之战结果吗?在其它参数不变情况下,将表3中第2项袁绍集团战场知己知彼系数由0.4下降为0.2,曹操集团参数不变,则模型(6)被修改为如下模型(8),数值计算结果如表7:

(8)

结果显示,在战斗进行到230天左右时,曹操剩余士兵不到千人,曹方战败,袁绍胜利.结果表明袁绍的指挥能力不是其失败的关键因素.

类似地,分别对表3中第6项、第8项参数进行调整,分别降低袁绍方主帅决策水平和主帅智谋评价值,重新求解修改参数后的模型,结果仍然是袁绍胜利、曹操失败.只有继续降低袁绍的智商,如降低袁绍方战场知己知彼系数到Ax=0.08时,计算结果显示曹操大约需要3年时间击败袁绍.此时,袁曹双方战场知己知彼系数之比为06/0.08=7.5,即当曹操判断能力高出袁绍判断能力7到8倍时,曹操仍需要3年时间才能打败袁绍,而曹操集团的物资供应支撑不了3年,所以,袁绍集团指挥能力太差的解释无法令人信服.

4.3增加曹操集团初始兵力数量,修改模型部分参数

历史资料对于曹操兵力记载不祥,关于曹操集团初始兵力有各种不同的说法.回到模型(6),假设袁绍初始兵力11万不变,修改曹操初始兵力,由2万逐步增加到10万.对模型(6),仅修改曹操初始兵力条件,当曹操初始兵力为4万时,仍然战败;继续增加曹方兵力,分三次计算结果如下表8所示

表8 模型(6)求解部分结果

其中,曹操初始兵力为6万时,双方兵力变化趋势如图1所示:

图1 官渡之战模型曹操初始兵力6万时双方兵力变化趋势图和相图

由表8可知,当曹操初始兵力6万时,在战斗进行到220多天时,袁绍失败,曹操胜利;当曹操初始兵力8万时,在战斗进行到约150天时,袁绍失败,曹操胜利;当曹操初始兵力10万时,在战斗进行到超过110天时,袁绍失败,曹操胜利.由此可知,曹操集团的初始兵力是官渡之战胜负的决定因素,与文献[7]的考证结果相符.

5结论

通过将客观历史事实和主观评价相结合,建立官渡之战数学模型,并对各因素深入分析,调整参数值,数值计算得到如下结论:第一,在袁绍初始兵力11万、曹操初始兵力2万的假设下,即使袁绍士兵素质、主帅水平等都比曹操差,袁绍均能战胜曹操.因此,士兵素质、将帅能力等不是袁绍失败的主要原因.第二,当曹操初始兵力达到8万人,同时曹操的士兵素质、计谋次数、将帅水平都优于袁绍时,曹操仍然需要约5个月的时间战胜袁绍,但是曹操的军需粮草不足,难以支撑5个月,必然失败.因此,初始士兵数量在官渡之战中起重要作用.最后,如果袁绍初始兵力为11万,那么,曹操集团在士兵素质、战略判断、将帅水平等方面都优于袁绍集团的情况下,其初始兵力应该在8-10万左右,曹操才能如历史资料记载那样,在约3个月时间内战胜袁绍.因此,无论是陈寿的《三国志》[1],还是罗贯中的《三国演义》[2],在数据处理上,都有故意贬低袁绍能力、夸大曹操军事能力之嫌.

[参考文献]

[1]陈寿. 三国志[M].裴松之,注. 北京:中华书局,1982.

[2]罗贯中. 三国志通俗演义[M]. 上海:上海古籍出版社,2002.

[3]沈祖祥. 袁绍兵败官渡原因试析[J]. 军事历史研究,1987,12:157-165.

[4]张勇,黄廷祝,傅英定. 数学建模思想融入微积分课程教学初探[J]. 大学数学,2010,26(2):158-160.

[5]樊锁海. 数学模型精品课程建设的实践和思考[J]. 大学数学. 2010,26(5):6-11.

[6]刘道伟,任德欣,梁洁. 基于兰切斯特方程的网络中心战模型[J]. 指挥控制与仿真, 2014,36(6): 27-31.

[7]杨巨中. 官渡之战中曹军兵力考[J]. 军事历史,2000,6:48-50.

[8]梅正阳,韩志斌. 数学建模教程[M]. 北京:科学技术出版社,2012.

The Numbers of Cao Cao’s Troops in the Battle of Guandu under Mathematical Model

MEIZheng-yang

(School of Mathematics and Statistic,HUST,Wuhan 430074, China)

Abstract:In the Battle of Guandu, how many people are in the Cao Cao’s troops? The mathematical model has been established and the relevant parameters have been analyzed. According to the history of Cao Cao defeated Yuan Shao during three months, there be about 80-100 thousand soldiers in Cao Cao’s troops.

Key words:the battle of Guandu; mathematical model; the force value of general; the evaluation value of brain talent

[收稿日期]2016-01-07;[修改日期] 2016-03-22

[基金项目]华中科技大学公共选修精品课程建设项目(2014004)

[作者简介]梅正阳(1964-),男,博士,副教授,从事金融数学、应用统计、数学模型研究.Email:zymei2007@aliyun.com

[中图分类号]O175.1; O241.8

[文献标识码]B

[文章编号]1672-1454(2016)02-0035-08

猜你喜欢
数学模型
AHP法短跑数学模型分析
活用数学模型,理解排列组合
浅谈构建数学模型,建立千以内数的数感
防疫的隐形工具——神奇的数学模型
基于电力机器人控制系统的数学模型简述
电动机驱动电流依赖于可观测量的数学模型
电池剩余放电时间预测的数学模型与求解
对一个数学模型的思考
“费马点”数学模型在中考中的应用
河口泥沙数学模型的若干问题