张春成
2023/02/06阅读:13主题:默认主题
增长的最优系数
增长的最优系数分布
在前文中,我们论述了在指定生产矩阵的条件下,如何确定初始化资源比例,以及在这种比例下增长会如何发生。
本文将这个过程反过来,尝试解决在给定初始条件和期望增长的前提下,如何选择生产方程的问题。
-
增长的最优系数[1] -
问题抽象[2] -
约束和求解[3] -
附录[4] -
生产矩阵的生成代码[5] -
全正性的证明[6]
-
-
问题抽象
在已知一个 向量和 值的条件下,求解生产矩阵B,使其满足
我们稍微将结论提前,就是说我们可以得到大量的满足条件的生产矩阵。如果你是生产规划者,那么总能够在大量的生产选择中选择比较适合的生产矩阵,使其满足现有初始条件和预期增长率。
约束和求解
我们当然需要生产矩阵的系数全为正实数,但不再需要x是B的特征向量。因此,问题可以进一步被简化成寻找非奇异矩阵和对角阵 ,使其满足如下线性方程组
我们无意求解这个方程组,因为显然它有无穷多个可行解。在此只是给出一个可行的矩阵生成方案。在该方案中,我们可以通过简单的证明过程说明生产矩阵的全正约束得到保证。在此求解方法下,我们可以生成大量的可行解,并将它们的分布绘制在一张图上,图的横坐标代表生产一个单位的 A 或 B 资源需要消耗多少单位的对应资源。开源代码可见我的前端笔记本
Generating the Optimized Production Matrix[7]


总体上看,生成 A 和 B 资源的生产消耗更多的自身和更少的对方,这是符合直观感受的结果,这导致 A 和 B 资源的产能总是处于对角线的下方和上方。当 B 资源相对较少时,是影响增长的主要因素,因此它的变化范围也较小(如左图所示);而当 B 资源相对较为丰富时,它的变化范围开始变大(如右图所示)。


需求的增长率越大,则这些点越靠近原点,因为消耗的资源更少(见左图);需求的增长率越小,则这些点越靠近右上角,代表资源不断更新但产量增长缓慢(见右图)。


附录
生产矩阵的生成代码
/**
* Generate useable mat
* Generate the 2 x 2 matrix given one eigenvector and value.
* The other eigenvector and value is randomly matched to make sure
* the output matrix has positive values.
*/
mkMat = () => {
const c = Math.sqrt(Ipt.ResourceA ** 2 + Ipt.ResourceB ** 2);
const vectors = [
[-math.random(0.2, 0.8), Ipt.ResourceA / c],
[math.random(0.2, 0.8), Ipt.ResourceB / c]
];
const values = [
[(1 / Ipt.GrowthRate) * math.random(0.2, 0.8), 0],
[0, 1 / Ipt.GrowthRate]
];
const inv = math.inv(vectors);
const mat = math.multiply(math.multiply(vectors, values), inv);
const mul = math.multiply(vectors, math.transpose(vectors));
return { vectors, inv, mul, mat };
}
全正性的证明
试证如下方程
其中,全部变量均为正实数时 全为正实数,且 。由于矩阵非奇异,因此总有下式成立
在进行列变换后,可以变换成
对于矩阵J来讲,列变换不改变对角线上的符号,然而在对角线外,列变换相当于减少了负数项,增加了正数项,因此保证了J的所有系数均为正。
证明毕。
参考资料
增长的最优系数: #增长的最优系数
[2]问题抽象: #问题抽象
[3]约束和求解: #约束和求解
[4]附录: #附录
[5]生产矩阵的生成代码: #生产矩阵的生成代码
[6]全正性的证明: #全正性的证明
[7]Generating the Optimized Production Matrix: https://observablehq.com/@listenzcc/generating-the-optimized-production-matrix
作者介绍