你没见过的三维洛书表达--洛书数理文化在三维的一些数学性质
洛书
▲ 洛书
2014年12月洛阳市的河图洛书传说正式入选国家级非物质文化遗产名录。
研究历史或者传统文化的人,通常了解洛书是在金庸的故事中,瑛姑刁难黄蓉“将一至九排成三列,不论纵横斜角,每三个数字相加都是十五,如何排法”。它又被称为九宫格。
近代研究洛书的人很多,多数都是基于数术或者传统的数理文化方向的不同解读,这受困于两个方面:
一、传统数理文化中的一些文化方面的禁锢作用。
二、基于代数(一维)或者二维平面几何的兼容表达。
中国古人的数理一统文化,其中兼容的一个数理是将所有维度的代数、几何性质全部转换为二维或者代数表达,这样会增加可公度性的层次,使得其表达、理解的难度增加。
值得欣慰的是,我国著名的数学家彭绍定受到洛书的启发,破解了200年前阿尔伯特·贝勒数学问题。
洛书还有什么数学性质没有被发现呢?我们继续探索。
4+9+2=3+5+7=8+1+6=4+3+8=9+5+1=2+7+6=4+5+6=2+5+8=15
基于洛书的表象,洛书会产生上述这样八个恒等式。
洛书产生的八组三维数组
发现这个几何形态,原本是并没有明确的目的,仅仅是突发奇想,如果这是八个三维坐标效果会如何呢?
笔者将这八个坐标在三维坐标系中画出来,并且用线连接:
三维的洛书数组
▲ 洛书八个三维坐标的三维图
你会惊奇的发现,这八个点居然在一个平面上。这也就意味着古人将三维的数字,转化为了一个特殊斜面的二维表达,甚至可以用一维的代数或直线上的点来表达!
为了避免程序错误,我核对了几次数字,不敢相信这个结果。
旋转图形,我们正面看看这个结果:
▲洛书八组数字形成的平面形状
酷似一颗钻石的侧面图。依照4、7两点的连线形成完美的左右对称。(图中的点的标注是0-7八个点。)
现在我们新增一个点,(0,0,0)。
▲新增0,0,0这个点
犹如放飞的风筝。
古人没有数字0的概念,但有“没有、无、最小的有”这种兼容表达的人文概念还是有的;同时,5是洛书与河图一统的关键可公度数字;另外,后天八卦将九宫外围的八个数字与5形成阴阳对称。在河图中,五还是1+4的组合。也就是说,5是古代的一个关键的核心数字。
现在我们把5与0重叠:
▲第五点(9,5,1)与(0,0,0)重叠的结果
也就是当第五点(9,5,1)与(0,0,0)重叠时,完美重合成为二维平面的结果。也就是在三维存在一个特殊点的与0重合,且具有相同的二维几何意义。
这意味着在特殊的观察角度,或者说特殊的代数点,第五点(9,5,1)与(0,0,0)这个点是这个图形的一个特解。在这个特解前提下,两个图形完美重合;同时,增加0的三维的图形可以用二维的方式表达!
这种降维表达,如果不把这个图形直观画出来,做梦都想不到啊!
这才仅仅是开始!
当我们逐一试验1-8个与0不同的点,我们会发现,无论这八个点哪个点与0重合,都会将这个三维的几何体降维到二维平面表达。
也就是这个三维几何体的特解不是一个,而是八个!
▲立体表达的洛书九个点
这样一个特殊的八棱锥,当我们旋转图形的时候,只要任意一个非0的点与0重合,我们都可以用二维的图形降维表达该三维几何体的性质,仅仅是八个棱锥的纵边被严丝合缝的掩盖了。
也就是八棱锥的底面各边如果是阳,那么侧面的八条边就是对称的阴。
这是最基本的三维的洛书的形状及其数学性质。
被西方吹捧的胡夫金字塔的数理做不到这种数理表达,尽管金字塔的数理试图用正方和三角来近似兼容球的表达,但是它的数理兼容内容太有限了。除了圆周率、正方(直、曲),它不能兼容洛书的广义可公度性。而广义可公度性是这个世界上众多物的数理,这一直困扰到爱因斯坦这样伟大的物理学家,一生求索。
同时,随着数学的发展,在爱因斯坦之后,人们发现,这个世界有些内容需要用概率、混沌数学体系(不具有共同吸引子的复杂混沌体系)来描述。至今数学已经放弃了数学大一统,而一些物理学家还沉浸在物理大一统的梦想之中。这个世界是否可以用一种可公度性的数理模型来描述,即便是今天,这依然是数学、物理的圣杯,可望而不可及。
洛书表达的球什么样?
4+9+2=3+5+7=8+1+6=4+3+8=9+5+1=2+7+6=4+5+6=2+5+8=15
基于这个恒等式,画一个半径为15的球体,这就是洛书要表达的球之一。
半径15的球为何是洛书表达的球之一,因为这仅仅是直接的表象,洛书的数字隐含的球还有很多,下文我们继续研究。
洛书的几何形态表达,或者说可视化表达,亲爱的读者,你想过吗?
以上内容使用的python源码,供研究者使用参考。
#系统:winxp;python版本:3.4
import numpy as np
import mpl_toolkits.mplot3d
import matplotlib.pyplot as plt
x=[0,4,3,8,4,9,2,4,2]
y=[0,9,5,1,3,5,7,5,5]
z=[0,2,7,6,8,1,6,6,8]
ax=plt.subplot(111,projection='3d')
for i in range(len(x)):
for j in range(len(y)):
ax.plot((x[i],x[j]),(y[i],y[j]),(z[i],z[j]),color='red');
for i in range(len(x)):
ax.text(x[i],y[i],z[i],i,color='blue')
ax.set_zlabel('z')
ax.set_ylabel('y')
ax.set_xlabel('x')
plt.show()