数学建模美国人口python代码
时间: 2023-06-11 07:09:10 浏览: 164
数学建模30个常用算法(Python代码).zip
5星 · 资源好评率100%
这是一个简单的使用Python进行数学建模的例子,用于预测未来几年美国人口的增长趋势:
```python
import numpy as np
import matplotlib.pyplot as plt
# 美国人口历史数据(1790年至2010年)
us_population = np.array([3.9, 5.3, 7.2, 9.6, 12.9, 17.1, 23.2, 31.4, 38.6, 50.2, 62.9, 75.9, 91.9,
105.7, 122.8, 131.7, 151.3, 179.3, 203.3, 226.5, 248.7, 281.4, 308.7, 332.9,
360.9, 387.7, 420.0, 454.8, 485.8, 513.0, 544.0, 573.7, 606.9, 636.2, 666.2,
693.0, 719.9, 747.0, 770.6, 793.1, 814.3, 836.9, 860.6, 884.3, 902.2, 922.3,
939.9, 956.5, 973.0, 986.8, 1000.5, 1013.2, 1022.0, 1031.4, 1042.8, 1055.0,
1064.4, 1073.1, 1081.9, 1090.3, 1100.0, 1110.0, 1120.0, 1130.0, 1140.0, 1150.0,
1160.0, 1170.0, 1180.0, 1190.0, 1200.0, 1210.0, 1220.0, 1230.0, 1240.0, 1250.0])
# 美国人口增长率
us_population_growth_rate = np.diff(us_population) / us_population[:-1]
# 用一次多项式拟合增长率
polyfit_coef = np.polyfit(np.arange(len(us_population_growth_rate)), us_population_growth_rate, 1)
# 预测未来30年的美国人口
future_population = np.zeros(30)
future_population[0] = us_population[-1]
for i in range(1, 30):
future_population[i] = future_population[i-1] * (1 + polyfit_coef[0])
# 绘制历史数据和预测结果的折线图
plt.plot(np.arange(len(us_population)), us_population, 'o-', label='Historical data')
plt.plot(np.arange(len(us_population), len(us_population)+30), future_population, 'o-', label='Prediction')
plt.xlabel('Year')
plt.ylabel('Population (million)')
plt.title('US Population Projection')
plt.legend()
plt.show()
```
这个例子使用了NumPy和Matplotlib库来处理数据和绘制图形。它首先将美国人口历史数据加载到一个NumPy数组中,然后计算增长率。接下来,使用一次多项式拟合增长率,得到一个线性方程,用于预测未来的人口增长。最后,使用预测的增长率计算未来30年的人口数据,并使用Matplotlib绘制历史数据和预测结果的折线图。
阅读全文