【Python】——多项式

"""Python求解多项式"""
from sympy import symbols, factor, expand, cancel, apart
import numpy as np

# 1.因式分解
# 例1:分解下列多项式:3 * x^4 - 2 * x^3 * y + 3 * x^3 - x^2 * y^2 + 6 * x^2 - x * y^2 - 4* x * y - 2 * y^2
x, y = symbols('x y')
f1 = 3 * x ** 4 - 2 * x ** 3 * y + 3 * x ** 3 - x ** 2 * y ** 2 - 2 * x ** 2 * y + 6 * x ** 2 - x * y ** 2 - 4 * x * y - 2 * y ** 2
# print(factor(f1))

# 2.多项式展开
# 例2:展开下列多项式:(x+y)^3
x, y = symbols('x y')
f2 = (x + y) ** 3
# print(expand(f2))

# 3.分式化简
# 例2:展开下列多项式:(x+y)^3
x = symbols('x')
f3 = (x ** 2 + 2 * x + 1) / (x ** 2 + x)
p3 = 1 / x + (3 * x / 2 - 2) / (x - 4)
# print(cancel(f3))
# print(cancel(p3))

# 4.分式展开
x = symbols('x')
f4 = (4 * x ** 3 + 21 * x ** 2 + 10 * x + 12) / (x ** 4 + 5 * x ** 3 + 5 * x ** 2 + 4 * x)
# print(apart(f4))

# 5.多项式求解

# (1)求值
# 例如:p(x) = x^3 - 3 * x + 5
# 可以使用向量P=[1,0,-3,5]表示,向量长度减一表示多项式最高项次数。
# 从右到左分别是变量x的0次幂、1次幂、2次幂……n次幂。
# 这里可以使用numpy的方法ployval进行计算。
q1 = np.array([1, 0, -3, 5])
x1 = 5
# print(np.polyval(q1, x1))
# X为不同值时多项式的值
x2 = [1, 2, 3, 4, 5]
# print(np.polyval(q1, x2))

# (2)求根
q2 = np.array([1, 0, -3, 5])
b2 = np.roots(q2)                                     # 求根

# print(b2)
r2 = np.real(b2)                                              # 取实数
# print(r2)

# (3)乘法
# (x^3 + 2 * x^2 + 3 * x + 4 ) X (x^3 + 4 * x^2 + 9 * x + 16)  =  [1,2,20,50,75,84,64]
a3 = np.array([1, 2, 3, 4])

b3 = np.array([1, 4, 9, 16])

# print(np.convolve(a3, b3))

你可能感兴趣的:(代码,python)