python - 如何从系数列表构建多项式 lambda 函数?

标签 python function numpy lambda mpmath

我有一个对应于多项式表达式的系数列表,即:[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/

相关文章:

python - Facebook Python SDK

python - 使用 pyodbc 返回文字 SQL 的任何方式

python - 用于检查 IP 是否列入白名单的脚本函数

python - 使用 Python 获取最后一列中的字符串

python - 使用python将数字添加到列

从对象调用函数的 JavaScript OR 语句

javascript - 5x5 网格中所有可能的移动?

python - 将 MATLAB 函数转换为 python

python - 从 numpy 数组中提取不在索引列表中的元素

python - 值错误 : operands could not be broadcast together with shapes (7, ) (6,) (7,)