我想在Python中创建一个多项式,给定所涉及的次数和变量。我期待这样的东西:
second_order_polynomial = create_polynomial(['x', 'y'], order=2)
其中second_order_polynomial
是一个函数,用于计算x
和y
的二阶多项式给定值。对我来说,系数实际上无关紧要,只有变量的顺序/幂。所以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的问题: 来自 Mathematica StackExchange 的相关问题
看这个:
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