0

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

我使用 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 函数。

我使用了另一个库或函数吗?

4

1 回答 1

0

我不确定是否理解你真正想要的,但你上面提供的代码有几个错误,阻止它工作。首先,func没有“def”,因此应该是:

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

另外,kinlambda没有定义,所以我把它设为一(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)

希望有帮助。祝你好运!

于 2019-12-19T21:27:35.820 回答