Python中利用NumPy求解多项式与多项式拟合实战

小鹿同学
小鹿同学
发布时间:2026-10-13| 2人浏览过
原创

本文介绍如何在Python中使用NumPy库进行多项式运算。通过构建二阶多项式演示求解根、获取系数及阶数的方法,并进一步展示如何利用np.polyfit进行三阶多项式拟合,结合Matplotlib绘制拟合曲线与原始数据点,帮助开发者掌握基础的数据建模技巧。

构建二阶多项式实例

首先,我们需要构建一个具体的二阶多项式实例,其数学表达式为 x^2 - 4x + 3。

多项式属性查询与求解

接下来,我们将演示如何对该多项式进行求解,包括计算特定点的值、寻找多项式的根以及获取多项式的阶数和系数信息。

求解代码示例


>>> p = np.poly1d([1,-4,3])   #二阶多项式系数
>>> p(0)                  #自变量为0时多项式的值
3
>>> p.roots              #多项式的根
array([3., 1.])
>>> p(p.roots)              #多项式根处的值
array([0., 0.])
>>> p.order                  #多项式的阶数
2
>>> p.coeffs                #多项式的系数
array([ 1, -4, 3])
>>>

多项式拟合原理

在掌握多项式的基本属性后,我们将探讨如何利用多项式拟合技术来处理实际数据,通过已知数据点反推多项式系数。

三阶多项式拟合与可视化

为了更直观地展示拟合效果,我们将使用三阶多项式对一组带有噪声的数据进行拟合,并通过绘图工具对比原始数据点与拟合曲线。

拟合代码示例


import matplotlib.pyplot as plt
import numpy as np

n_dot = 20
n_order = 3     #阶数

x = np.linspace(0,1,n_dot)             #[0,1]之间创建20个点
y = np.sqrt(x) + 0.2*np.random.rand(n_dot)
p = np.poly1d(np.polyfit(x,y,n_order))      #拟合并构造出一个3次多项式
print(p.coeffs)                #输出拟合的系数,顺序从高阶低阶

#画出拟合出来的多项式所表达的曲线以及原始的点
t = np.linspace(0,1,200)
plt.plot(x,y,'ro',t,p(t),'-')
plt.show()

以上内容涵盖了在Python中利用NumPy进行多项式求解及拟合的核心步骤,希望能为相关技术学习提供参考。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。