当前位置: 首页 > news >正文

第四章-课后练习5:修正指数曲线模型——excel和python应用(2)

一、修正指数曲线模型——excel应用

对于以下数据:

年份销售量
201346000
201449000
201551400
201653320
201754856
201856085
201957088
202057900
202158563

1、数据特征描述 

首先使用excel绘制散点图,观察数据分布情况:

由图像得知,本题使用修正指数曲线模型预测2022年销售量。

2、销售量预测:

通过计算得出,修正指数曲线模型为:

3、结果分析:

代入公式预测得出2022年的销售量为59070台。

最高限额为:

​二、修正指数曲线模型——Python应用

1、代码

#修正指数曲线预测
import pandas as pd
import matplotlib.pyplot as plt
#导入数据
data = pd.read_excel('P112-5.xlsx',sheet_name='data')
data.head()
#%%
#绘制数据图
#显示中文标签
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = Falseplt.figure(figsize=(10,6))
plt.plot(data, label='data', color='b', marker='o')
plt.title('销售量关于时间的拟合图数据')
plt.xlabel('Year')
plt.xticks(data.index)
#设置y轴范围
plt.ylim(45000, 60000)
plt.show()#%%
#修正指数曲线函数
def func(t, a, b, c):return a+ b*c**t#%%
#拟合
#使用分组法估计参数#分组
n = 3
#读取前3个数据
data1 = data.iloc[:3]
data2 = data.iloc[3:6]
data3 = data.iloc[6:]#分组求和
data1_sum = data1['销售量'].sum()
data2_sum = data2['销售量'].sum()
data3_sum = data3['销售量'].sum()#计算参数
c = ((data3_sum-data2_sum)/(data2_sum-data1_sum))**(1/n)
b = (data2_sum-data1_sum)*((c-1)/(c**n-1)**2)
a = (data1_sum-b*(c**n-1)/(c-1))*(1/n)#输出参数
print('a = %f, b = %f, c = %f' % (a,b,c))#输出拟合函数
print('拟合函数为:y = %f + %f * %f^t' % (a,b,c))data3 = pd.read_excel('P112-5.xlsx',sheet_name='data')
x = data3.销售量#计算第2022年的销售量
d9 = a + b * c**9
print('2022年的销售量为:%d' % d9)
#绘图
plt.figure(figsize=(10,6))
plt.plot(x, label='data', color='b', marker='o')
#添加点
plt.scatter(9, d9, color='r')
plt.plot(data.index, func(data.index,a,b,c), 'r', label='fit')
#拟合直线过添加的点
plt.scatter(9, d9, color='r')
plt.text(9, d9, '(%d, %d)' % (9, d9), ha='left', va='bottom')
plt.ylim(45000, 60000)
plt.title('销售量关于时间的拟合图')
plt.xlabel('Year')
plt.legend()
plt.show()

2、结果

相关文章:

  • 力扣 简单 104.二叉树的最大深度
  • Llama 系列简介与 Llama3 预训练模型推理
  • springboot实战学习(9)(配置mybatis“驼峰命名“和“下划线命名“自动转换)(postman接口测试统一添加请求头)(获取用户详细信息接口)
  • 【数据治理-设计数据标准】
  • py-mmcif包pdbx_struct_assembly对象介绍
  • 困扰我们的,不是如何过上更幸福的生活,而是如何过上比别人更幸福的生活
  • Linux之实战命令18:col应用实例(五十二)
  • 开启争对目标检测的100类数据集-信息收集
  • 深入理解 Nuxt.js 中的 app:data:refresh 钩子
  • 「实战应用」如何用DHTMLX Gantt集成工具栏部件更好完成项目管理?
  • js设计模式-工厂模式 单例模式 观察者模式 发布订阅模式 原型模式 代理模式 迭代器模式
  • GPU参数指标
  • swiper.js实现跑马灯效果,无缝衔接,鼠标悬停
  • <<迷雾>> 第 3 章 怎样才能让机器做加法 示例电路
  • python程序操作Windows系统中的软件如word等(是否可以成功操作待验证)
  • github指令
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • IndexedDB
  • Javascript 原型链
  • JavaScript对象详解
  • JavaScript函数式编程(一)
  • Java编程基础24——递归练习
  • Java应用性能调优
  • macOS 中 shell 创建文件夹及文件并 VS Code 打开
  • 服务器从安装到部署全过程(二)
  • 服务器之间,相同帐号,实现免密钥登录
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 判断客户端类型,Android,iOS,PC
  •  一套莫尔斯电报听写、翻译系统
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • ​Benvista PhotoZoom Pro 9.0.4新功能介绍
  • #NOIP 2014#Day.2 T3 解方程
  • #基础#使用Jupyter进行Notebook的转换 .ipynb文件导出为.md文件
  • (附源码)计算机毕业设计ssm基于B_S的汽车售后服务管理系统
  • (附源码)计算机毕业设计SSM疫情居家隔离服务系统
  • (每日一问)操作系统:常见的 Linux 指令详解
  • (最新)华为 2024 届秋招-硬件技术工程师-单板硬件开发—机试题—(共12套)(每套四十题)
  • .ai域名是什么后缀?
  • .bat批处理(十一):替换字符串中包含百分号%的子串
  • .NET 分布式技术比较
  • .NET 快速重构概要1
  • .Net 路由处理厉害了
  • .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖
  • .net反混淆脱壳工具de4dot的使用
  • /bin、/sbin、/usr/bin、/usr/sbin
  • ::什么意思
  • @requestBody写与不写的情况
  • [ 云计算 | AWS 实践 ] 基于 Amazon S3 协议搭建个人云存储服务
  • [2015][note]基于薄向列液晶层的可调谐THz fishnet超材料快速开关——
  • [2023-年度总结]凡是过往,皆为序章
  • [android] 切换界面的通用处理
  • [BUG]vscode插件live server无法自动打开浏览器
  • [C#]winform部署yolov5-onnx模型
  • [codevs 1296] 营业额统计
  • [C语言]——C语言常见概念(1)