【问题标题】:How can I do a numerical inverse Laplace transform of a data array?如何对数据数组进行数值拉普拉斯逆变换?
【发布时间】:2019-08-01 17:39:14
【问题描述】:

我想使用 Python 对数据数组执行数值拉普拉斯逆变换。

我在mpmath 中找到了一个名为 invertlaplace 的算法,但它只接受 lambda 函数。

【问题讨论】:

    标签: python mpmath


    【解决方案1】:

    您可以定义一个返回数据的插值版本的 lambda。

    类似:

    from math import floor, ceil
    data = [1,2,3,4,5]
    interp = lambda x: (1 - x%1)*data[floor(x)] + (x%1)*data[ceil(x)]
    

    我不确定线性插值对于您使用的逆拉普拉斯版本或您的数据是否稳定。

    【讨论】:

    • 谢谢,我试过了,但是 ivertlaplace 不喜欢 interp 使用模运算符并抛出错误:-------TypeError: unsupported operand type(s) for %: 'mpc ' 和 'int' -------- 如果我尝试 int(x),它会抛出错误: -----TypeError: int() 参数必须是字符串或数字,而不是 'mpc'
    • 看起来您可以用此处描述的 mpmath.fmod 替换内置的模数运算符:mpmath.org/doc/current/general.html