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

最小二乘法的直线拟合

由于网上没有找到直接的代码,就来写一下。
原理部分可以回去看高数,核心就是以直线的斜率和截距为变量,让误差最小化。以下是代码部分

import numpy as np
import matplotlib.pyplot as pltdef linear_least_squares(q_list, n_list):"""最小二乘法直线拟合参数:q_list: x坐标数据列表n_list: y坐标数据列表返回:slope: 直线斜率intercept: 直线截距fig: 图像对象"""# 将列表转换为numpy数组x = np.array(q_list)y = np.array(n_list)# 计算必要的数据和n = len(x)sum_x = np.sum(x)sum_y = np.sum(y)sum_xy = np.sum(x * y)sum_x2 = np.sum(x ** 2)# 计算斜率和截距slope = (n * sum_xy - sum_x * sum_y) / (n * sum_x2 - sum_x ** 2)intercept = (sum_y - slope * sum_x) / n# 计算拟合的y值y_fit = slope * x + intercept# 计算相关系数R²y_mean = np.mean(y)ss_tot = np.sum((y - y_mean) ** 2)ss_res = np.sum((y - y_fit) ** 2)r_squared = 1 - (ss_res / ss_tot)# 创建图像fig, ax = plt.subplots(figsize=(10, 6))# 绘制原始数据点ax.scatter(x, y, color='blue', label='original data', s=50, alpha=0.7)# 绘制拟合直线ax.plot(x, y_fit, color='red', linewidth=2, label=f'Fitted Line: y = {slope:.4f}x + {intercept:.4f}')# 设置图表属性ax.set_xlabel('q', fontsize=12)ax.set_ylabel('n', fontsize=12)ax.set_title('Least Squares Linear Fit', fontsize=14)ax.legend(fontsize=10)ax.grid(True, alpha=0.3)# 在图上显示参数textstr = f'Slope: {slope:.4f}\nIntercept: {intercept:.4f}\nR²: {r_squared:.4f}'ax.text(0.05, 0.95, textstr, transform=ax.transAxes, fontsize=10,verticalalignment='top', bbox=dict(boxstyle='round', facecolor='wheat', alpha=0.5))plt.tight_layout()return slope, intercept, fig# 实例 
q_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
n_list = [2.1, 4.2, 5.8, 8.1, 9.9, 12.1, 13.8, 16.2, 17.9, 20.1]# 调用拟合函数
slope, intercept, fig = linear_least_squares(q_list, n_list)# 打印结果
print(f"直线方程: y = {slope:.4f}x + {intercept:.4f}")
print(f"斜率: {slope:.4f}")
print(f"截距: {intercept:.4f}")# 显示图像
plt.show()

运行结果:
直线方程: y = 1.9952x + 0.0467
斜率: 1.9952
截距: 0.0467
image

http://www.hskmm.com/?act=detail&tid=28495

相关文章:

  • Vue3 集成 VueRouter
  • 2025 年车床生产厂家最新推荐排行榜:涵盖数控 / 卧式 / 斜床身 / 重型等多类型设备,助力企业精准选购优质车床品牌
  • 2025 最新球墨铸铁管件厂商推荐排行榜权威发布,市政 / 给排水 / 消防用管件优选品牌深度解析
  • 2025 年加工中心厂商最新推荐排行榜权威发布,涵盖立式 / 卧式 / 龙门 / 四轴 / 五轴等机型,助力采购方精准筛选实力厂商
  • CH585在MACOS系统中协商BLE连接间隔至7.5ms
  • 2025 年磨床厂家最新推荐排行榜:平面磨床 / 外圆磨床 / 数控磨床等优质设备品牌深度解析与核心竞争力测评
  • python实现提取iso中的文件(支持多平台)
  • 2025 年最新推荐球墨铸铁管厂家排行榜:涵盖自来水 / 污水 / 消防等多场景适用优质品牌权威推荐
  • CopyOnWriteArrayList 的故事--一起看看java原生的读写分离
  • OSI模型-笔记
  • Docker概念
  • 痞子衡嵌入式:如果i.MXRT1xxx在Hab关闭时出现偶发性启动失败,请先检查JTAG电路
  • 2025 电缆绝缘材料生产厂家最新推荐榜单:品牌技术实力解析,爱普等企业领跑行业
  • SAP BP主数据维护BAPI CVI_EI_INBOUND_MAIN(转)
  • 2025 年最新外呼系统机构最新推荐排行榜:深度解析技术实力、服务体系及行业适配方案电话营销外呼系统/智能外呼系统/外呼系统电销卡/外呼系统平台搭建推荐
  • 详细介绍:深入解析 List 容器组件:构建高效、可交互的列表解决方案
  • CF848C Goodbye Souvenir 题解(CDQ分治)
  • 2025 年汽车刹车卡钳厂家最新推荐榜单:原厂适配 / 高性能 / 新能源专用等多类型产品深度解析及选购指南分体锻造/大轮毂/高性能/新能源汽车刹车卡钳厂家推荐
  • 2025年开发者必看:本土化代码管理平台Gitee如何助力中国开发者高效协作
  • 2025 年消防设施检测 / 电气防火检测 / 防雷装置检测 / 消防维保 / 环境检测服务公司推荐:北京市通雷防雷装置安全检测有限公司提供专业技术支持
  • 直播app开发,如何快速获取系统时间? - 云豹科技
  • 2025 年泡棉厂家最新推荐榜:全方位解析 EPE 泡棉 / EVA 泡棉 / 珍珠棉泡棉 / 泡棉内衬优质企业,助采购商精准选对品牌
  • C. awoos Favorite Problem
  • Outlook邮箱大附件邮件是什么?
  • 2025 年过滤机厂家最新推荐排行榜:胶带式 / 盘式真空 / 脱水 / 带式真空 / 水平带式过滤机企业权威选购指南
  • 国产代码管理平台Gitee:破解企业级Git自建难题的密钥
  • 2025 年蜂巢/高强/HDPE/PET/高分子/塑料/插接/土工格室厂家口碑推荐榜:聚焦品质与服务,助力工程选材更高效
  • 基于K近邻(KNN)算法在MATLAB中实现人脸识别
  • 2025 年最新推荐灭火器维修公司榜单:覆盖干粉 / 水基 / 二氧化碳 / 七氟丙烷 / 锂电池灭火器维修,帮您选到专业可靠服务单位
  • Vue大屏可视化自适应(等比列缩放)方案✔️✔️✔️✨