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

python求解二次方程

为了找到xy之间的关系,并假设这种关系是一个二次函数,我们可以使用numpypolyfit函数来拟合一个二次方程(即形式为y = ax^2 + bx + c的方程)。然后,我们可以使用matplotlib来绘制散点图,并在图上添加最佳拟合的二次曲线以及实际值和预测值的标记(尽管对于大量数据点来说,标记所有点可能会使图表过于拥挤)。

以下是完成这些步骤的Python代码:

import numpy as np
import matplotlib.pyplot as plt# 定义x和y数据
x = np.array([10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120])
y = np.array([1.55, 4.19, 7.3, 10.41, 13.52, 16.62, 19.73, 22.84, 25.94, 29.05, 32.16, 35.27])# 使用polyfit拟合二次多项式
coefficients = np.polyfit(x, y, 2)
a, b, c = coefficients# 使用拟合的二次方程预测y值
y_pred = a * x**2 + b * x + c# 绘制散点图
plt.scatter(x, y, label='Actual Data')# 绘制最佳拟合的二次曲线
x_line = np.linspace(min(x), max(x), 100)  # 生成一条平滑的线用于绘图
y_line = a * x_line**2 + b * x_line + c
plt.plot(x_line, y_line, color='red', label='Best Fit Quadratic Curve')# 添加实际值与预测值的标记(这里仅标记部分点以避免图表过于拥挤)
# 例如,我们可以每隔几个点标记一个
for i in range(0, len(x), 3):  # 每隔3个点标记一个plt.text(x[i], y[i], f'({x[i]:.0f}, {y[i]:.2f})', ha='right')plt.text(x[i], y_pred[i], f'Pred: ({x[i]:.0f}, {y_pred[i]:.2f})', ha='left', color='red')# 添加标题和轴标签
plt.title('x vs y Relationship (Quadratic Fit)')
plt.xlabel('x')
plt.ylabel('y')# 添加图例
plt.legend()# 显示图表
plt.grid(True)  # 可选,添加网格线
plt.show()

在这段代码中,我们使用np.polyfit(x, y, 2)来拟合一个二次多项式,其中2表示多项式的次数。然后,我们使用拟合得到的系数abc来计算预测值y_pred。在绘制图表时,我们使用np.linspace生成了一条平滑的线x_line,以便更好地可视化二次曲线。最后,我们添加了实际值和预测值的标记,但仅每隔几个点标记一个,以避免图表过于拥挤。

http://www.lryc.cn/news/419345.html

相关文章:

  • Spring框架面试总结
  • java之网络编程篇
  • stm32f103c8t6与TB6612FNG解耦测试
  • 2253336 - 资源库 - OAC0 中的脱机状态
  • uni-app总结
  • 【JavaEE初阶】线程安全的集合类
  • 关于Vue项目npm快捷键,点击run启动报错,及npm i也报错的解决办法
  • React中,className属性自定义组件不生效的问题
  • Ubuntu22.04搭建fabric开发环境、开发环境下运行链码
  • [BSidesCF 2019]Kookie1
  • LCM红外小目标检测
  • 振德医疗选择泛微千里聆RPA,助力电商、人事业务流程自动化
  • VBA高级应用30例应用3在Excel中的ListObject对象:创建表
  • IP 地址在 SQL 注入攻击中的作用及防范策略
  • Unity VR黑屏
  • Vue.js 中使用 Watcher 的强大场景和案例
  • 《实现 DevOps 平台(2) · GitLab CI/CD 交互》
  • 【机器学习sklearn实战】岭回归、Lasso回归和弹性网络
  • Python 爬虫项目实战六:抓取猫眼电影排行榜的数据
  • YOLO系列:从yolov1至yolov8的进阶之路 持续更新中
  • 欧拉系统离线安装界面ukui
  • Milvus向量数据库的简介以及用途
  • 恒创科技:IPv4 和 IPv6 之间的主要区别
  • TinyWebserver的复现与改进(1):服务器环境的搭建与测试
  • 【Python】练习题附带答案
  • Springboot集成Proguard生成混淆jar包
  • 什么是NLP分词(Tokenization)
  • 基于深度学习的图像伪造检测
  • Windows11 WSL2 Ubuntu编译安装perf工具
  • 探索算法系列 - 前缀和算法