Chr*_*ris 3 python lambda numpy function mpmath
我有一个与多项式表达式对应的系数列表,即:[1,2,0]
对应于x^2 + 2x + 0
.我想将这些系数的任意长度数组放入lambda函数中.
具体来说,我使用的是mpmath,我有一个用于polyval模块的列表:
polyval(ctx, coeffs, x, derivative=False)
Run Code Online (Sandbox Code Playgroud)
给定系数和数字,polyval()
评估多项式.
我需要使用 带有一维函数的findroot模块,即:
findroot(lambda x: x**3 + 2*x + 1, 2)
Run Code Online (Sandbox Code Playgroud)
如何从系数列表中构造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]))
Run Code Online (Sandbox Code Playgroud)
使用polyval()
你提到的功能,这样的东西应该工作:
findroot(lambda x: polyval(ctx, [1,2,0], x))
Run Code Online (Sandbox Code Playgroud)
(适当的ctx
价值)