📜  计算多项式方程的Python程序(1)

📅  最后修改于: 2023-12-03 15:12:02.098000             🧑  作者: Mango

计算多项式方程的Python程序

在数学中,多项式是由常数、变量和幂次的和组成的表达式。多项式方程通常可以表示为:

f(x) = a0 + a1 * x + a2 * x^2 + ... + an * x^n

其中,a0 ~ an 是常数系数,x 是未知数。如果多项式的最高次项系数为零,则我们称它为零多项式,这样的式子是没有实数解的。

下面我们将介绍如何使用Python编写一个计算多项式方程的程序。

实现思路

我们可以通过Python定义一个多项式的类,然后在类中实现多项式的加、减、乘、除等运算。具体来说,我们可以使用Python的列表来存储多项式的每一项系数,然后通过重载运算符,实现多项式的各种运算操作。

代码实现

下面是一个简单的多项式类实现,包含了多项式的加、减、乘、除、求导等操作:

class Polynomial:
    def __init__(self, coeffs):
        self.coeffs = coeffs
        
    def __repr__(self):
        return "Polynomial({})".format(self.coeffs)
    
    def __add__(self, other):
        return Polynomial([a+b for a,b in zip(self.coeffs, other.coeffs)])
    
    def __sub__(self, other):
        return Polynomial([a-b for a,b in zip(self.coeffs, other.coeffs)])
    
    def __mul__(self, other):
        zero = [0] * (len(self.coeffs) + len(other.coeffs) - 1)
        for i in range(len(self.coeffs)):
            for j in range(len(other.coeffs)):
                zero[i+j] += self.coeffs[i] * other.coeffs[j]
        return Polynomial(zero)
    
    def __floordiv__(self, other):
        q = [0] * (len(self.coeffs) - len(other.coeffs) + 1)
        r = self
        while len(r.coeffs) >= len(other.coeffs):
            ratio = r.coeffs[-1] / other.coeffs[-1]
            q[len(r.coeffs) - len(other.coeffs)] = ratio
            r -= (other * Polynomial([0] * (len(r.coeffs) - len(other.coeffs))) + 
                  Polynomial([ratio] + [0] * (len(r.coeffs) - len(other.coeffs))))
        return Polynomial(q)
    
    def __mod__(self, other):
        q = self // other
        return self - other * q
        
    def derivative(self):
        return Polynomial([i*self.coeffs[i] for i in range(1, len(self.coeffs))])
示例

我们可以通过如下代码来实例化一个多项式对象,并进行加、减、乘、除、求导等操作:

p1 = Polynomial([1, 2, 3])  # 1 + 2x + 3x^2
p2 = Polynomial([2, 2])     # 2 + 2x

print(p1 + p2)        # Polynomial([3, 4, 3])
print(p1 - p2)        # Polynomial([-1, 0, 3])
print(p1 * p2)        # Polynomial([2, 6, 10, 6])
print(p1 // p2)       # Polynomial([1])
print(p1 % p2)        # Polynomial([-2, 2])
print(p1.derivative()) # Polynomial([2, 6])
总结

本文介绍了如何使用Python实现一个多项式类,包含了多项式的加、减、乘、除、求导等操作。通过这个例子,我们可以更好地理解Python中的类和运算符重载。