如何在给定次数和变量的情况下创建多项式

2024-05-01 21:33:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在给定阶数和变量的情况下,用Python创建一个多项式。我期待这样的事情:

second_order_polynomial = create_polynomial(['x', 'y'], order=2)

其中second_order_polynomial是计算xy的二阶多项式给定值的函数。对我来说,系数实际上并不相关,只是变量的阶数/幂。因此args可以全部设置为1,但将其作为参数保留可能会提高问题的通用性:

def second_order_polynomial(x, y, *args) -> float:
    return args[0] * x**2 + args[1] y**2 + args[2] * x*y + args[3] 

理想情况下create_polynomial适用于任意数量的变量和度数。我希望避免使用符号工具箱

这个问题与处理Mathematica而不是Python的问题类似: related question from mathematica stackexchange


Tags: 函数参数defcreate情况argsorderfloat
1条回答
网友
1楼 · 发布于 2024-05-01 21:33:30

看看这个:

def foo(order, li):
    result = 0
    l = len(li)
    if order != len(li):
        raise Exception('Wrong order specified')
    else:
        while(order > 0):
            result += li[l - order] ** order
            order -=1
        return result

print(foo(5, [7, 5, 3, 2, 1])) # 7**5 + 5**4 + 3**3 + 2**2 + 1**1

相关问题 更多 >