文章目录

  • 构造函数
  • 求导和积分
  • 求根和反演
  • 采样与拟合
  • 其他方法

构造函数

Numpy中提供了多项式模块,里面封装了一些用以快速解决多项式问题的类和函数,其中最重要类的自然是Polynomial,其构造函数为

class numpy.polynomial.polynomial.Polynomial(coef, domain=None, window=None, symbol='x')

其中coef为多项式的系数,例如4+3x+2x2+x34+3x+2x^2+x^34+3x+2x2+x3可写为

from numpy.polynomial import polynomial as poly
p3 = poly.Polynomial(coef=[4,3,2,1])
print(p3)
# 输出为4.0 + 3.0 x**1 + 2.0 x**2 + 1.0 x**3

domian为xxx的定义域,window为定义域的放缩因子;symbol为多项式的自变量符号,默认为x

求导和积分

Polynomial支持简单的符号计算,比如可通过deriv(n)求多项式的n阶导数;通过integ(n)可求n阶积分。

>>> p3.deriv(1)
Polynomial([3., 4., 3.], domain=[-1.,  1.], window=[-1.,  1.])
>>> p3.deriv(3)     # 3阶导数为6
Polynomial([6.], domain=[-1.,  1.], window=[-1.,  1.])
>>> p3.integ(2)
Polynomial([0.        , 0.        , 2.        , 0.5       , 0.16666667,  0.05      ], domain=[-1.,  1.], window=[-1.,  1.])

求根和反演

roots可用于求根,而fromroot可根据根来生成多项式

rs = p3.roots()
print(rs)
# [-1.65062919+0.j
# -0.1746854 -1.54686889j
# -0.1746854 +1.54686889j]
pNew = p3.fromroots(rs)
print(pNew)
#(4.000000000000001-1.1102230246251565e-16j) +
#(3.0000000000000018+0j) x**1 + (1.9999999999999991+0j) x**2 + (1+0j) x**3

由于浮点计算会引入误差,所以fromroot并不是严格意义上root的逆过程,但这个误差是极小的。

采样与拟合

通过linspace可以在定义域范围内对多项式进行采样,

import matplotlib.pyplot as plt
xs, ys = p3.linspace()
plt.plot(xs, ys)
plt.show()

效果为

linspace有一个参数n,表示在定义域范围内等间隔生成n组x,yx,yx,y,默认为100。

Polynomial类中最强大的函数非fit莫属,其功能是基于最小二乘法的多项式拟合,定义为

Polynomial.fit(x, y, deg, domain=None, rcond=None, full=False, w=None, window=None, symbol='x')

其中domain, window, symbol不必赘述,其中x,y为待拟合多项式;deg为多项式的阶数。rcond表示截止误差。fullFalse时,只返回拟合系数,否则还返回拟合的标准差等。

>>> p3.fit(xs, ys, 3)
Polynomial([4., 3., 2., 1.], domain=[-1.,  1.], window=[-1.,  1.])
>>> p3.fit(xs, ys, 4)
Polynomial([ 4.0000000e+00,  3.0000000e+00,  2.0000000e+00,  1.0000000e+00,-9.6550042e-15], domain=[-1.,  1.], window=[-1.,  1.])

其他方法

degree返回多项式的最高项次数,cutdeg可以对多项式的次数做截断,例如

>>> p3.degree()
3
>>> p3.cutdeg(2)
Polynomial([4., 3., 2.], domain=[-1.,  1.], window=[-1.,  1.])

Polynomial类提供了一些用于比较的函数,相当于是运算符重载的补充,包括

  • has_samecoef
  • has_samedomain
  • has_sametype
  • has_samewindow

其命名很直观,不必多言。

【Python】Numpy处理多项式类Polynomial相关推荐

  1. python numpy 随机构建类无向图邻接矩阵

    不能保证能各个节点之间能完全走通,只是记录一下. import numpy as npdef structMatrix(n=11, low=1, high=10, num_base=10, num_m ...

  2. [Python] 多项式曲线拟合(Polynomial Curve Fitting)

    多项式曲线拟合 Polynomial Curve Fitting 实验目标 实现过程 - Step 1 :生成观测集和目标函数 - Step 2 :比较不同阶数多项式的拟合效果 - Step 3 :通 ...

  3. pythonchar中的拟合方法_在python中利用numpy求解多项式以及多项式拟合的方法

    构建一个二阶多项式:x^2 - 4x + 3 多项式求解 >>> p = np.poly1d([1,-4,3]) #二阶多项式系数 >>> p(0) #自变量为0时 ...

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

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

  5. 【数据分析】使用numpy实现多项式的求导以及可视化

    使用numpy函数的polyd()创建多项式:y=x^3+2x^2+3x+4并将该对象赋值给变量aPoly,求解该多项式的一阶导数bPoly和二阶导数cPoly.通过numpy的arange()函数创 ...

  6. dataframe,python,numpy 问题索引1

    # 找出只有赌场数据的账户 gp=data.groupby(['查询账号','场景标签'],as_index=True) tj=gp.size().reset_index()按查询账号和场景标签分组并 ...

  7. python numpy np.lexsort()(使用键序列执行间接稳定排序)(具体没太搞懂区别?)

    from numpy\core_multiarray_umath.py @array_function_from_c_func_and_dispatcher(_multiarray_umath.lex ...

  8. Python Numpy 笔记

    这次机器学习的作业可以用第三方库了,果断抛弃 MATLAB 改用 Python 但是操作数组的 Numpy 之前一直没用过,今天先看看官方教程入个门 The Basics Numpy 中主要的对象是同 ...

  9. 高斯核函数python代码_单类SVM:SVDD

    话接上文(SVM的简单推导),这篇文章我们来看单类SVM:SVDD.可能大家会觉得很奇怪,我们为什么需要单分类呢?有篇博客举了一个很有意思的例子. 花果山上的老猴子,一生阅猴无数,但是从来没有见过其它 ...

最新文章

  1. Coinbase宣布在以太坊经典上市前进行最终测试
  2. python下载软件-python下载工具
  3. 有云服务器还需要云虚拟主机吗,有云服务器还需要云虚拟主机吗
  4. SAP创建中国版免费在线课程openSAP
  5. C语言ATD1SC,2020-10-13_ATD(模数转换)模块介绍
  6. 创建SVN 本地服务器
  7. php copy array,ES6中Array.copyWithin()函数用法的详解
  8. SQL Server 之 在与SQLServer建立连接时出现与网络相关的或特定于实例的错误
  9. dede无法在这个位置找到head.html2,织梦搜索:DedeCMS 提示信息
  10. python read函数报错_python 使用read_csv读取 CSV 文件时报错
  11. Cocos2d-x移植Android 常见问题处理办法
  12. 老程序员如何避免沦落出局?
  13. 查找窗口隐藏了怎么办_百度地图这些不为人知的隐藏功能
  14. JAVA Number与Math类
  15. ubuntu安装libjasper.so.1,libpng12.so.0
  16. 《机器学习实战:基于Scikit-Learn、Keras和TensorFlow第2版》-学习笔记(1)
  17. Android--›键盘表情切换的终极解决方案(已重构)
  18. 使用shell脚本删除rabbitMq的exchange
  19. 交警对开车人的“真言”
  20. 加拿大计算机工程研究生,加拿大维多利亚大学电子与计算机工程系副教授诚招硕士研究生 - 导师招生 - 小木虫 - 学术 科研 互动社区...

热门文章

  1. 计算机技术应用读书心得,《多媒体环境下的教学设计和资源的应用》读书心得体会...
  2. elementUI表格树动态合并列问题处理(最终版,---新需求)
  3. airflow系列教程(二)Apache airflow完整安装流程
  4. 视觉SLAM十四讲 报错 Could not find a configuration file for package “OpenCV“ that is compatible with reques
  5. php手册下载打开没有内容,php pdf文件下载:无法加载PDF文档
  6. 亿百特E22 lora模块使用教程
  7. js中数组方法不会影响原数组的方法
  8. 学生买蓝牙耳机多少钱?平价蓝牙耳机排行榜10强!
  9. 单片机笔记(1)--单片机概述
  10. find name 模糊匹配_find命令简单总结