数学建模或数学拟合与数理建模或数理拟合的异同
《间接拟合数学方式可以解决解决计算结果问题,但并不一定解决性质问题》--在笔者专栏中
拟合数学方法的发展,直接与间接拟合
古代数学的发展,其中一大部分基于数据统计分析结果的数学收获,都可以说是拟合数学的发展。这种情况一直延续到上世纪初。
拟合数学在古代主要应用于历法、以及现实的数学应用上(直接拟合)。其中历法的这种方法比较“特殊“,笔者称为间接拟合数学方法。
基于测量数据统计分析的结果得到的规律,通常是研究什么说什么,笔者称为直接拟合数学方法。就像牛顿研究两个物体之间的引力,那么就研究两个物体的距离与质量所形成的数学关系。这很直接。
而七九河开,八九燕来,这里的七九、八九,说的是基于天文学的冬至开始的时间间隔,造成的影响结果却是春天要来了。这种并不直接的数学拟合,也就是间接拟合数学方法。中国古代的数理方法中很多兼容使用的是这种间接拟合的方式。特别是五行这种数理方法,并不是头疼医头,这很间接。
爱因斯坦的相对论,让一些人困惑,原因之一就是他使用的是间接拟合数学方法。研究两个物体的引力,结果他却研究时空效应对物体的影响,很不直接。他的数学方法优势仅仅是比牛顿的方法多了一个维度(一个影响因素)造成的结果的精细。说的依然是一件事情的不同表达。牛顿使用了三个影响因素建立数学模型,他使用了四个影响因素建立数学模型。
直接与间接拟合数学方法的不同在于采用的影响因素的不同以及数学方式的不同。也就是一道数学题的不同拟合数学方法的解法的区别。
也可以说是一个曲面,从内侧观察(困在其中)或者说外侧观察(俯瞰视角)的不同解读方式。
间接拟合带来的间接验证方式
明晰这一点,有助于理解西医直接拟合数学方式与中医间接拟合数学方式的拟合数学方法的不同,以及带来的验证方式的不同。
无论时空弯曲还是引力波,现在看,只能间接验证其影响效应,至今并未发现引力子的存在,引力的本质问题并未物理性的解决;那么气如果是兼容虚数意义的,也只能验证气的影响效应,暂时并无需较真气到底是什么,或者如解释引力波一样进行虚数实数化方式的比喻性解读,古人也是这么做的。这是间接数学拟合方法带来的与直接拟合方式不同的验证方式。
一些人叫嚣的气无法用设备直接验证的提法,实际是对上述数学拟合方法不同的不了解造成的孤陋寡闻。你让物理学家们验证一下引力波这种东西是什么,他一样抓瞎,间接验证解决不了这个问题。这就是间接拟合方法带来的间接验证的问题。
中国古人的五行数理,不仅仅是实数域的范畴,同时兼容虚数域的范畴。例如阴阳的划分,例如强弱属于实数域,而虚实,属于虚数域范畴。同时,三个影响因素的相生相克,实际就是三个影响因素的动态影响结果,也就是需要用相对论的四维时空方式来解读,需要引入虚数i。第四坐标轴是ixt,而非ict。再有。如果三个基本要素也是虚数意义的呢?这就需要引入四元数。
通常间接拟合采用的数学方法更高级一些,更抽象一些,更不直接一些,而且会大量使用非欧类数学的方式。这是基于欧氏类数学方法往往不能了解的数学逻辑方式。现代理论物理假说在爱因斯坦之后,大量采用间接拟合数学方式,这才使实证物理的验证头疼欲裂。
中国古代的五行数理不仅兼容了数学的间接拟合,还兼容了数理的间接拟合,几千年的发展过程兼容并蓄,这使其数学解读的问题更加复杂。还要去除掉一些并不合适的数理文化的内容。
数学拟合的效率
几千年前,通过观测数据搞定一个数学拟合规律,往往是几百年甚至更长的时间,以至于我们通常仅仅是在历史的记录中只能发现结果的出现,而不知道思考的源头在哪里。
几百年前,这个找出结果的效率提高到几十年,通常物理学家、数学家一生可以搞定一个或几个有意义的数学拟合模型。
随着计算机技术的飞速发展,这个拟合数学模型产生的效率,如果去除掉测量数据、统计数据的时间,那么产生拟合数学模型的时间是几分钟。当然,这个数学模型是否有应用意义是理论验证问题。
网上一些言论片面夸大拟合数学模型的意义,特别是这个拟合数学模型的预测意义,这是数学上不成立的。拟合数学模型,仅仅是发现一个规律的整个过程中的一个小环节。很多拟合数学模型,并无实际应用意义,特别是并无预测意义,这是很多人忽略的问题。是否有应用意义,还是唯物一些,实践是检验真理的唯一标准,这个更可靠。
对于混沌系统、随机体系,数学模型没有唯一性的预测意义,有的可以有概率性表达的应用意义,有的毫无应用意义。
拟合数学模型举例
现在笔者用一个简单的数学建模例子说说拟合数学模型的建立方式。虽然举例的数据不多,实际上就算几万、几十万个数据,一台个人电脑也是几分钟就可以搞定的。
使用系统winxp,软件。
#用多项式拟合散点
import ma as plt
import numpy as np
x = np.arange(1, 14, 1)
y = np.array([1,2,3,8,6,12,15,13,11,6,3,2,1]) # 拟合的时序序列点的y值
z1 = np.polyfit(x, y, 3) # 用3次多项式拟合,改变这个参数,变成不同的多次方程式
p1 = np.poly1d(z1)
print(p1) # 在屏幕上打印拟合多项式
yvals=np.polyval(z1,x) # 也可以使用yvals=p1(x)
plot1=(x, y, '*',label='original values')
plot2=(x, yvals, 'r',label='polyfit values')
('x axis')
('y axis')
(loc=4) # 指定legend的位置
('polyfitting')
()
(';)
运行结果如下:
一元三次方拟合
笔者使用了13个时序数据点,当然,再多一些无所谓,倒入y数组中就是了。当然,如果你的数据点不是时序意义的,或者涉及同时刻(同序列x位置)的不同y值,那么就需要清洗数据,去除掉一些可能无意义的数据。
这是一元三次方的拟合,数据偏差是有的,总体规律基本体现。如果你想更逼近拟合数据,那么变成更高元的方程就可以,假设变成一元八次方程,只需改变如下这句:
z1 = np.polyfit(x, y, 3) # 用3次多项式拟合,改变这个参数,变成不同的多次方程式。
将这里的3变成8。
效果如下:
一元八次方程拟合
拟合数据就是如此简单!
拟合数学方程就这样搞定了。当然你喜欢幂次方程、三角函数等,还是其他方式,改一改程序就是了。同时,要堤防过渡拟合。并不是越多元越好,尽管这样可以让拟合曲线更逼近数据。
如果这是一个决定性系统产生的测量数据,恭喜你,这就是这组数据的特征,或者说规律,你可以计算图中数据期间的点,甚至也可以预测未来的一些点。
问题在于,哪有这么多的天上掉馅饼的好事,你用什么方式来证明这是一个决定性系统的测量数据呢?除了验证,别无它法。
结果你验证一下,发现预测的下一个数据或者下一系列数据与实际数据偏差很大或者就是不符,这说明什么问题?说明这些数据不是来自于决定性系统的测量,这可能是混沌系统或者随机系统的测量数据。这也是使用时序分析方法,很多数学建模结果并无预测意义的数学本质原因。
说大一点,这也是至今实证物理无法验证我们这个总时空级别是决定性系统还是非决定性系统的原因。可观测的时空即便现在而言依然是有限的。至于谁说或者谁猜想奇点大爆炸是真理并没有用,等物理验证吧。
网络上有些所谓介绍数学的科普文章片面夸大了拟合数学模型的意义或者预测意义,实际是受落后的万物皆数这种泛神论思想影响的对数学人文性的炒作,炒作不仅娱乐圈、商业圈才使用。这会让你觉得数学很高大上,但实际上,这类文章除了造成数学性的误导以外,数学而言,却是错误的。
只可惜用的程序又是国外的,哪天收费了、禁用了又是麻烦。
三十年后,还有没有中国本土产的软件?-python火爆的隐忧!
好在这篇文章之后,很多国产软件系统都冒出来,很多python库现在也是国产的,还少一个趁手的中文编程软件。