Python 数学建模极简入门(一)

2121 查看

我们选择的入门书籍是叶其孝和姜启源翻译的《数学建模》,原著是Frank R. Giordano和William P. Fox编著的《A First Course in Mathematical Modeling(Fifth Edition) 》
从名字就能看出这是一本数学建模的入门书籍,由浅入深,很适合数学基础薄弱的人学习。接下来我们将会把这本书中的建模实例用Python3来实现。
初用简书,没有找到编辑公式的方法,求帮助,公式暂时先用其他软件编辑,采用截图的方式插入文章

实例1:对已有数据进行建模


首先是最简单的弹簧拉伸模型,学过胡克定律的同学们应该都知道这是啥,这个炒鸡简单,不愿看的同学可以跳过。
这是一个研究弹簧伸长与所吊重物质量之间关系的模型。

质量(g) 伸长(cm)
50 1.000
100 1.875
150 2.750
200 3.250
250 4.375
300 4.875
350 5.675
400 6.500
450 7.250
500 8.000
550 8.750

质量与伸长的关系图.png


从图中我们可以明显地看到这是一个线性关系。然后我们就可以对数据进行线性拟合(非线性拟合也只是用到了不同的函数而已),这里用到了numpy库:
import numpy as np
mass = [ 50*i for i in range(1,12)] #这里偷懒用的列表推导式,python初学者可以百度一下,一看就懂
length = [1.000,1.875,2.750,3.250,4.375,4.875,5.675,6.500,7.250,8.000,8.750]
F = np.polyfit(mass,length,1) #按一次多项式拟合
print(F) #输出各项系数
P = np.poly1d(F)
print(P) #输出方程式

这样,对于这个模型的建模就已经完成了。如果要画出图来是这样的:


J{拟合图像.png

当然,这个图用Python3也可以画出来,需要用到matplotlib库,附上matplotlib简单教程:
ywjun的学习笔记, Python图表绘制:matplotlib绘图库入门