【问题标题】:Can I make inverse laplace transformation on time array?我可以对时间数组进行拉普拉斯逆变换吗?
【发布时间】:2019-12-19 14:30:18
【问题描述】:

最近我想编写一些代码来进行拉普拉斯逆变换。

我使用 mpmath.invertlaplace 函数。

它工作得很好,但我想删除 for 循环以获得这个结果。

这是一个例子。

import mpmath as mp
def func = lambda s: 1 / (s + k)

Time = mp.linspace(1,10,100)

result = []

for i in Time:

     value = mp.invertlaplace(func, i, method = 'stehfest', degree = 32)

     result.append(value)

return Time, result

不幸的是,我不能将数组用于 mpmath.invertlaplace 函数。

我使用了其他库或函数吗?

【问题讨论】:

    标签: python transformation mpmath


    【解决方案1】:

    我不确定您是否理解了您真正想要的内容,但您在上面提供的代码存在一些错误,使其无法正常工作。首先,func 没有“def”,因此应该是:

    func = lambda s: 1.0/(s + 1.0)

    另外,lambda 中的 k 没有定义,所以我将其设为一 (1.0) 只是为了启动代码。

    下面的代码可以正常工作。从它开始,您可以(希望)对其进行更改以实现您的目标。

    import mpmath as mp
    
    func = lambda s: 1.0/(s + 1.0)
    
    Time = mp.linspace(1,10,100)
    
    result = []
    
    for i in Time:
    
        value = mp.invertlaplace(func, i, method = 'stehfest', degree = 32)
    
        result.append(value)
    
        print (i, value)
    

    希望对您有所帮助。祝你好运!

    【讨论】:

    • 哦。非常感谢你。这是我在堆栈溢出中的第一个问题,所以我犯了一些错误。是的。我犯了一个错误。我需要像你一样定义 k = 1.0。实际上,我真正的问题是“删除 for 循环”。因为我想让它更快。