我想在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