用python完成多项式拟合需要用到的库有numpymatplotlib

曲线拟合的函数在numpy库中:

polyfit(x,y,n)

  • x 为源数据点对应的横坐标,可为行向量、矩阵
  • y 为源数据点对应的纵坐标,可为行向量、矩阵
  • n 为你要拟合的阶数
  • 返回值为多项式系数

poly1d(an)

  • an为一个数组,即多项式系数
  • 只传入一个参数情况下,则生成一个多项式

例如

import numpy as npx = np.arange(-1.5, 1.6, 0.5)
y = [-4.45, -0.45, 0.55, 0.05, -0.44, 0.54, 4.55]
an = np.polyfit(x, y, 3)
print(an)
p1 = np.poly1d(an)
print(p1)

结果如下:

polyval(an,x)

  • an 为多项式系数
  • x 为源数据点对应的横坐标,可为行向量、矩阵
  • 返回值为通过多项式计算后的源数据点的纵坐标

画曲线

最后利用matplotlib库中的pyplot完成绘制曲线

import matplotlib.pyplot as plt
import numpy as npplt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False# 源数据点的x,y坐标
x = np.arange(-1.5, 1.6, 0.5)
y = [-4.45, -0.45, 0.55, 0.05, -0.44, 0.54, 4.55]an = np.polyfit(x, y, 3)        # 用3次多项式拟合
# 如果源数据点不够要自己扩充,否则直接使用源数据点即可
x1 = np.arange(-1.5, 1.6, 0.1)  # 画曲线用的数据点
yvals = np.polyval(an, x1)      # 根据多项式系数计算拟合后的值# 画图
plt.plot(x, y, '*', label='原数据点')
plt.plot(x1, yvals, 'r', label='拟合后')
plt.xlabel('x 轴')
plt.ylabel('y 轴')
plt.legend(loc=4)               # 指定legend的位置
plt.title('曲线拟合')
plt.show()

运行结果

注意

  • 如果用于多项式拟合源数据的点数量过少,会画成折线。如下图:

  • 扩充数据点的x坐标要与源数据点的区间相同,步长取小即可。

用python完成多项式拟合曲线相关推荐

  1. python numpy 多项式函数 求导求根

    python numpy 多项式函数 求导求根 """求出多项式的 导函数与根 """import numpy as np import m ...

  2. 【Python】——多项式

    """Python求解多项式""" from sympy import symbols, factor, expand, cancel, a ...

  3. 基于Python实现多项式拟合正弦函数

    1. 实验目的 掌握最小二乘法求解(无惩罚项的损失函数).掌握加惩罚项(2 范数)的损失函数优化.梯度下降法.共轭梯度法.理解过拟合.克服过拟合的方法(如加惩罚项.增加样本) 2. 实验要求 生成数据 ...

  4. 最小二乘法-多项式拟合曲线

    如果你有一批散点图,像以下,(图都是从百度找的) 想要画出这些散点图的拟合曲线,也可以说是趋势曲线,我想,本文可教你,详情请耐心往下看. 方法一:np.polyfit np.polyfit也是利用最小 ...

  5. python散点图拟合曲线-使用python通过点拟合曲线

    大家好,我正在尝试使用python拟合点的曲线,但是我还没有成功,我是使用python的初学者,我发现它没有帮助我. 我有一组数据,我想分析哪条线最能描述它(不同阶的多项式). 在numpy中,对于多 ...

  6. numpy np.polyfit()(最小二乘多项式拟合曲线)(有待进一步研究)

    from numpy\lib\polynomial.py @array_function_dispatch(_polyfit_dispatcher) def polyfit(x, y, deg, rc ...

  7. python hist直方图拟合曲线_详解用Python为直方图绘制拟合曲线的两种方法

    直方图是用于展示数据的分组分布状态的一种图形,用矩形的宽度和高度表示频数分布,通过直方图,用户可以很直观的看出数据分布的形状.中心位置以及数据的离散程度等. 在python中一般采用matplotli ...

  8. python计算多项式的方法

    1.秦九韶算法 秦九韶算法是巧妙地利用了结合律,这样就简化了多项式计算 python代码 import time def func(a, x):"""秦九韶算法计算n次多 ...

  9. python定义多项式除法_快速多项式除法的fft除法

    下面是一个快速多项式除法算法的直接实现,在这些lecture notes中找到.在 除法是基于除数的倒数与被除数的快速/FFT相乘.我下面的实现严格遵循了被证明具有O(n*log(n))时间复杂度的算 ...

最新文章

  1. 在数据科学人才教育中不断前行: 《大数据系统基础A、B》课程实践项目中期答辩顺利举行...
  2. zoj 1670 Jewels from Heaven
  3. 疯狂软件2月3日Android就业班课程详细
  4. 对现有的所能找到的DDOS代码(攻击模块)做出一次分析----GET篇
  5. MySQL成勒索新目标,数据服务基线安全问题迫在眉睫
  6. 十一届蓝桥杯国赛 本质上升序列-dp
  7. Java 8 Friday Goodies:Lambda和SQL
  8. SpringBoot如何切换Redis默认库
  9. tensorflow2 目标检测_一文了解YOLO-v4目标检测
  10. cin指定输入截止符
  11. 硬盘格式化了的数据找到方案
  12. php反序列化漏洞实验,PHP反序列化漏洞简介及相关技巧小结
  13. Gulp学习笔记(黑马教程)
  14. Python灰帽子黑客与逆向工程师的Python编程之道
  15. 备份微信聊天记录为 txt 格式保存(免 root)
  16. opencv去除照片红眼
  17. Effie:沉浸写作,创造价值
  18. hahabet05-com:终于有人把云计算,大数据,人工智能讲明白了--哈哈电竞
  19. 在Java中计算一元线性回归
  20. C语言入门:华氏温度转换为摄氏温度

热门文章

  1. fiddler中图标意思
  2. 6.4.3网页色彩搭配方法
  3. 如何画好人类和动物的耳朵?狗狗的耳朵怎么画?
  4. 【分割问题】-取石子游戏
  5. html 下拉框字体,select下拉框选择字体大小
  6. 集团企业大数据治理解决方案word
  7. 云南农职 - 互联网技术学院 - 美和易思大一SCME JAVA高级结业考试机试试题
  8. 2021.10.18股票小计
  9. 每日一练Day04:寻找单身狗
  10. 利用GEE下载Landsat8影像并实现去云