numpy的多项式函数: `poly1d`

21 篇文章 0 订阅
11 篇文章 0 订阅

Python numpy.poly1d()

numpy.poly1d()函数有助于定义一个多项式函数。它使得在多项式上应用 "自然操作 "变得容易。



语法: numpy.poly1d (arr, root, var)

参数 :

  • arr : [array_like] 多项式系数按照幂的递减顺序给出。如果第二个参数(根)被设置为True,那么数组值就是多项式方程的根。

  • root : [bool, optional] 真意味着多项式的根。默认为假

  • var : 我们在多项式中需要的变量如x、y、z。默认为x

参数:

  • coefficients( coef, c) : 多项式系数
  • order(o): 多项式的阶数或程度
  • roots ( r): 多项式的根

返回: 多项式和应用的操作



代码1:解释poly1d()和它的参数


# Python code explaining
# numpy.poly1d()

import numpy as np
p1 = np.poly1d([1, 2])
p2 = np.poly1d([4, 9, 5, 4])
print ('构建多项式:')
print ("P1 : "p1)
print ("\n p2 : \n", p2)
# 求解多项式
print (f"\n\n当x=2时, {p1(2)=}")
print (f"\n\n当x=2时, {p2(2)=}")
# 寻根
print (f"\n\nP1的根 : {p1.r=}") #Q: p1.r=[-2]? 为什么是-2? #A: 因为p1(x)=x+2, 所以p1(x)=0时, x=-2
print (f"P2的根 : {p2.roots=}")

# 求系数
print (f"\n\nP1的系数 : , {p1.c=}")
print (f"P2的系数 : , {p2.coeffs=}")

# Finding Order
print (f"\n\nOrder / Degree of P1的阶数 : , {p1.o=}")
print (f"Order / Degree of P2的阶数 : , {p2.order=}")

输出:

构建多项式:
P1 :   
1 x + 2

 p2 : 
    3     2
4 x + 9 x + 5 x + 4


当x=2时, p1(2)=4


当x=2时, p2(2)=82


P1的根 :  p1.r=array([-2.])
P2的根 :  p2.roots=array([-1.86738371+0.j        , -0.19130814+0.70633545j,
       -0.19130814-0.70633545j])


P1的系数 : p1.c=array([1, 2])
P2的系数 : p2.coeffs=array([4, 9, 5, 4])


Order / Degree of P1的阶数 : p1.o=1
Order / Degree of P2的阶数 : p2.order=3

代码2:多项式的基本数学运算


p1 = np.poly1d([1, 2])
p2 = np.poly1d([4, 9, 5, 4])

print ("P1 : ", p1)
print ("\n p2 : \n", p2)

print ("\n\np1 ^ 2 : \n", p1**2)
print ("p2 ^ 2 : \n", np.square(p2))

p3 = np.poly1d([1, 2], variable = 'y')
print ("\n\np3 : ", p3)

print ("\n\np1 * p2 : \n", p1 * p2)
print ("\n多项式相乘 : \n",
       np.poly1d([1, -1]) * np.poly1d([1, -2]))

输出

P1 :   
1 x + 2

 p2 : 
    3     2
4 x + 9 x + 5 x + 4


p1 ^ 2 : 
    2
1 x + 4 x + 4
p2 ^ 2 : 
 [16 81 25 16]


p3 :   
1 y + 2


p1 * p2 : 
    4      3      2
4 x + 17 x + 23 x + 14 x + 8

多项式相乘 : 
    2
1 x - 3 x + 2

以上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jumbo Jing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值