【问题标题】:How to evaluate a function for a certain output list?如何评估某个输出列表的函数?
【发布时间】:2019-09-09 09:11:21
【问题描述】:

我正在尝试查找 langrange 插值函数的输出,并从拟合曲线后的方程预测插值。 我从网站上获得了该功能的代码。但是我认为它只是以一种格式存储方程,而我期望提供列表的值的结果。

def langrange_polynomial(X, Y):
    def L(i):
        return lambda x: np.prod([(x-X[j])/(X[i]-X[j]) for j in range(len(X)) if i != j]) * Y[i]
    Sx = [L(i) for i in range(len(X))]  # summands
    return lambda x: np.sum([s(x) for s in Sx])

期望是针对给定函数评估或预测某个值或列表的函数,即如果我传递一个数字列表 [2,3,4,5],我应该得到相应的输出值 f(x),其中f(x) 是我的拉格朗日方程

【问题讨论】:

    标签: python-3.x pandas


    【解决方案1】:

    如您所说,langrange_polynomial 函数在 python 中返回一种特殊的函数,称为“lambda 函数”。您可以在此处阅读有关 lambdas 的信息:https://www.w3schools.com/python/python_lambda.asp

    要使用您的代码,只需将langrange_polynomial 的输出分配给一个变量(将是函数类型),然后将该变量用作常用函数,例如:

    f = langrange_polynomial(np.arange(10),np.arange(10))
    f([3,60,30])
    # output
    3.115663712769497e+21
    

    【讨论】:

    • 感谢工作。但是,我只需要添加一个循环,因为方程的评估是针对每个单独的值。
    • 很高兴它有帮助。我只是试图解决您与 python 相关的技术问题,没有查看您对拉格朗日乘数算法的特定实现。
    猜你喜欢
    • 2020-08-24
    • 1970-01-01
    • 1970-01-01
    • 2015-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-07
    相关资源
    最近更新 更多