我有一个对应于多项式表达式的系数列表,即:[1,2,0]
对应于 x^2 + 2x + 0
。
我想将这些系数的任意长度数组放入 lambda 函数中。
具体来说,我正在使用 mpmath我有一个用于 polyval module 的列表即:
polyval(ctx, coeffs, x, derivative=False)
给定系数和一个数字,polyval()
计算多项式。
我需要使用 findroot module 采用一维函数,即:
findroot(lambda x: x**3 + 2*x + 1, 2)
如何根据系数列表构建 lambda 函数?
最佳答案
您真的需要 lambda 函数吗?使用“正常”功能应该更容易:
def poly(coeffs):
def calc(x):
result = 0
for c in coeffs:
result = result*x + c
return result
return calc
findroot(poly([1,2,0]))
使用你提到的 polyval()
函数,像这样的东西应该可以工作:
findroot(lambda x: polyval(ctx, [1,2,0], x))
(对于适当的 ctx
值)
关于python - 如何从系数列表构建多项式 lambda 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4859198/