正如标题所示,我正在尝试实现上述内容。我第一次尝试这样做涉及解决连续分数部分。问题:我怎么知道在连分数部分我需要走多远?我尝试选择 3 个级别(下降 3 个级别的连分数)。但是这样做需要大量的时间来执行。有人可以帮忙吗?这是我的代码:
我的计算广义连分数的函数:
def list_to_fract2(l,l2):
expr2 = sym.Integer(0)
for i,j in zip(reversed(l),reversed(l2)):
expr2 = j-expr2
expr1 = i
expr2 = expr1 / expr2
return expr2
ak = sym.symbols("a1:4") #3 levels deep
bk = sym.symbols('b1:4') #3 levels deep
mu = sym.Symbol('mu')
s,lam = sym.symbols(['s','lam'])
expr = list_to_fract2(ak,bk)
expr
a1/(-a2/(-a3/b3 + b2) + b1)
#Initializing parameters to be subbed into sympy later
k = np.arange(1,len(ak)+1)
dk = mu + k*frac(str(thetas[0]))
a_k = lam * dk
b_k = s + dk + lam
expr = expr.subs({i:j for i,j in zip(ak,a_k)})
expr
lam*(mu + 71/100)/(b1 - lam*(mu + 71/50)/(b2 - lam*(mu + 213/100)/b3))
expr = expr.subs({i:j for i,j in zip(bk,b_k)})
expr
lam*(mu + 71/100)/(-lam*(mu + 71/50)/(-lam*(mu + 213/100)/(lam + mu + s + 213/100) + lam + mu + s + 71/50) + 林 + 亩 + s + 71/100)
expr = expr.subs({'mu': frac(str(mu2)),'lam':frac(str(lamda_emp[0]))})
expr
1221/(400*(s + 7/2 - 2183/(500*(s + 421/100 - 11359/(2000*(s + 123/25))))))
问题:现在这是我应该采取逆拉普拉斯的吗?
我接下来尝试了这个:
t = sym.symbols("t", positive=True)
ans = sym.inverse_laplace_transform(expr,s,t).evalf().simplify()
这在我的机器上执行的时间太长了。如果我将级别更改为 2,在这种情况下,它实际上工作得非常快。有人能帮忙吗?谢谢
我的参数如下:mu = 0.94,theta = 0.71,lamda = 1.85
dk = k*θ
ak = lam*dk
bk = s + dk + lam
我试图解决以下功能。在简单的情况下假设 b = 1。然后最后对这个进行拉普拉斯逆变换
实际上,我想采用以下等式的逆拉普拉斯。但在我尝试这个之前,我想先尝试一下基本情况。