我如何构造多项式

问题描述 投票:0回答:1

如何在Python中构造多项式x1x2Ai(x1-x2)^n,n=6。我需要它来近似。我还需要提取艾。 x1和x2是一组实验数据。

我真的不知道该怎么做。我只知道 np.polyfit 但这还不够。

python approximation
1个回答
0
投票

要构造多项式 𝑥₁ ⋅ 𝑥2 ⋅ Ai ⋅ (𝑥₁ - 𝑥2)^n(其中 n=6)并提取 Ai 的值,您可以在 Python 中使用自定义 Polynomial 类。方法如下:

class Polynomial:
    def __init__(self, *coeffs):
        if not coeffs:
            raise ValueError("Polynomial coefficients cannot be empty")
        self.coeffs = tuple(coeffs)

    def __repr__(self):
        return f"Polynomial{self.coeffs}"

    def __add__(self, other):
        if not isinstance(other, Polynomial):
            raise TypeError("Unsupported operand type(s) for +: 'Polynomial' and '{}'"
                            .format(type(other).__name__))
        return Polynomial(*(x + y for x, y in zip(self.coeffs, other.coeffs)))

    def __len__(self):
        return len(self.coeffs)

    def __eq__(self, other):
        if not isinstance(other, Polynomial):
            return False
        return self.coeffs == other.coeffs

    def __getitem__(self, index):
        return self.coeffs[index]

    def degree(self):
        return len(self.coeffs) - 1

    def __str__(self):
        terms = [f"{c}x^{i}" if i > 1 else (f"{c}x" if i == 1 else str(c)) for i, c in enumerate(self.coeffs)]
        return " + ".join(terms[::-1])


def construct_polynomial(x1, x2, Ai, n):
    coeffs = [x1 * x2 * Ai] + [0] * (n - 1) + [-x1 * x2]
    return Polynomial(*coeffs), coeffs[0] / (x1 * x2)


x1 = 2  # Example experimental data
x2 = 3  # Example experimental data
n = 6
Ai = 5  # Example value for Ai

polynomial, Ai_extracted = construct_polynomial(x1, x2, Ai, n)

print("Constructed polynomial:", polynomial)
print("Extracted Ai:", Ai_extracted)
© www.soinside.com 2019 - 2024. All rights reserved.