给我一个python代码,对人均GDP和人均钢铁消费建立S曲线,并输出结果
时间: 2024-02-07 16:02:02 浏览: 37
可以使用 `scipy` 库中的 `curve_fit` 函数对数据进行 S 曲线拟合。以下是一个简单的 Python 代码示例:
```python
import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit
# 定义 S 曲线模型
def s_curve(x, a, b, c, d):
return a / (1 + np.exp(-b * (x - c))) + d
# 读取数据
data = np.loadtxt('data.txt', delimiter=',')
# 拟合数据
popt, pcov = curve_fit(s_curve, data[:,0], data[:,1])
# 绘制拟合曲线和原始数据
plt.scatter(data[:,0], data[:,1], label='Original Data')
plt.plot(data[:,0], s_curve(data[:,0], *popt), 'r-', label='Fitted Curve')
plt.legend()
plt.xlabel('GDP per capita')
plt.ylabel('Steel consumption per capita')
plt.show()
# 输出拟合结果
print('S curve fitting results:')
print('a =', popt[0])
print('b =', popt[1])
print('c =', popt[2])
print('d =', popt[3])
```
其中 `data.txt` 是一个 CSV 文件,第一列为 GDP per capita,第二列为 Steel consumption per capita。可以根据实际数据进行调整。