1.创建多项式
import numpy as np
# f(x) = x^3 - 2x + 1
a = np.array([1, 0, -2, 1])#从最高次方开始排
fx = np.poly1d(a)
#poly1d([ 1, 0, -2, 1])
type(fx)
#numpy.lib.polynomial.poly1d
fx(1)#把1代入求解 得到结果为0
#x为x-1
# g = (x-1)^2 + 3(x-1) + 2
p = np.poly1d([1, 3, 2])#系数1 3 2
g = lambda x: p(x-1)#x转换成x-1
#g=1 x^2 + 3 x + 2
#方程式由根创建
root = np.array([2, 3])
p2 = np.poly1d(root, r=True)
#p2=1 x^2 - 5 x + 6
#更换变量x为k
# 在显示上,更换变量
p3 = np.poly1d(a, variable='k')
#p3=1 k^3 - 2 k + 1
2.多项式运算
# f1(x) = x^3 - 2x + 1
#f2(x)=x^2 - 5x + 6
a = np.array([1, 0, -2, 1])
b=np.array([1 ,-5 ,6])
fx1 = np.poly1d(a)
fx2 = np.poly1d(b)
fx1+fx2 #1 x^3 + 1 x^2 - 7 x + 7
fx1-fx2 #1 x^3 - 1 x^2 + 3 x - 5
fx1*fx2 #1 x^5 - 5 x^4 + 4 x^3 + 11 x^2 - 17 x + 6
fx1/fx2 #(poly1d([1., 5.]), poly1d([ 17., -29.]))
多项式运算,本质是系数运算,系数可以用数组、列表表示
a = np.array([1, 0, -2, 1])
fx1 = np.poly1d(a)
fx3 = fx1 + [-2, 1]
fx4 = fx1 * np.array([-2, 1])
#fx1=1 x^3 - 2 x + 1
#fx3=1 x^3 - 4 x + 2
#fx4=-2 x^4 + 1 x^3 + 4 x^2 - 4 x + 1
微分求导、积分、求根
#fx1=1 x^3 - 2 x + 1
# 微分
pd = fx1.deriv()
#fd=3x^2 -2
#积分
pint = fx1.integ()
#pint=0.25 x^4 - 1 x^2 + 1 x
#求根
r = np.roots(fx1)
#[-1.61803399 1. 0.61803399]
3.解线性方程组
a = np.array([[3, 1], [1, 2]])#左边
b = np.array([[9], [8]])#右边
x = np.linalg.solve(a, b)
#array([[2.],
# [3.]])