尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

最小二乘法的直线拟合

最小二乘法的直线拟合
📅 发布时间:2026/6/19 18:20:35

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

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

相关新闻

  • 2025 年加工中心厂商最新推荐排行榜权威发布,涵盖立式 / 卧式 / 龙门 / 四轴 / 五轴等机型,助力采购方精准筛选实力厂商
  • 基于MATLAB的粒子群算法(PSO)优化libsvm参数完整实现
  • python实现提取iso中的文件(支持多平台)

最新新闻

  • 成本不到 5000 欧元!Matthias Plappert 公开在办公桌旁搭建机器人研究装置的研究过程
  • 三线制SPI驱动GC9306:从模拟到硬件DMA的性能跃迁
  • 2026成都空调维修实测:不制冷、漏水、异响故障诊断+平台对比 - 一步到家
  • 深入解析ColdFire调试模块:实时追踪与硬件断点实战指南
  • LangChain.js 2025终极实战指南:零代码构建企业级AI智能代理系统
  • 2026年:网站谷歌排名好却在AI搜索不见?背后原因大揭秘

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号