我需要得到這樣的東西:
但我明白 我知道我必須為情節的每個時間段給出一個單獨的時間,但我不知道怎么做。我的情節也有問題,我認為它的情節超過了一個時間,而且它們相互重疊。
下面是代碼:
import mpmath as mp
import numpy as np
import sympy
beta = 0.25;
L=[0.04980905361573844, 0.0208207352451072, 0.012368753716465475, 0。 009117292529338674, 0.007461219338976698, 0.006510364609693688, 0.005899506135250773, 0. 005485130537183343, 0.0051898472561455, 0.004961157595209418, 0.004778617403698715, 0. 00463084459959999, 0.004510113095117956, 0.004410195593051274, 0.004330450690278247]
Lc=[1.7509008762765992, 0.14986486457338544, 0.03453912303580302, 0. 014622269851256788, 0.00831141421008418, 0.005660123321843252, 0.004287823173522503, 0. 0034922189865254395, 0.0029879534061896186, 0.0026315863522143363, 0.002367747989524076, 0. 0021671535838986545, 0.0020116727106455415, 0.0018885896058416002, 0.0017939246597491803]
for k0 in [0.052, 0.12,0. 252,0.464,0.792,1.264, 1. 928,2.824,4,5.600, 7. 795,10.806,14.928,20.599,28.000】。]
t=np.linspace(k0,30,50)
for i in range(len(L)) 。
j0 = L[i];
j1 = Lc[i];
G = []
def f(s)。
return s**(beta - 1)/(j0*s*beta j1*sympy.gamma(beta 1)
for j in range(len(t)) 。
G.append(mp.invertlaplace(f, t[j], method = 'dehoog', dps = 10, degree = 50)
plt.plot(t,G)
答案應該是這樣的,但是我得到了這樣的錯誤
import numpy as np
import sympy
beta = 0.25;
L=[0.04980905361573844, 0.0208207352451072, 0.012368753716465475, 0。 009117292529338674, 0.007461219338976698, 0.006510364609693688, 0.005899506135250773, 0. 005485130537183343, 0.0051898472561455, 0.004961157595209418, 0.004778617403698715, 0. 00463084459959999, 0.004510113095117956, 0.004410195593051274, 0.004330450690278247]
Lc=[1.7509008762765992, 0.14986486457338544, 0.03453912303580302, 0. 014622269851256788, 0.00831141421008418, 0.005660123321843252, 0.004287823173522503, 0. 0034922189865254395, 0.0029879534061896186, 0.0026315863522143363, 0.002367747989524076, 0. 0021671535838986545, 0.0020116727106455415, 0.0018885896058416002, 0.0017939246597491803]
for k0 in [0.052, 0.12,0. 252,0.464,0.792,1.264, 1. 928,2.824,4,5.600, 7. 795,10.806,14.928,20.599,28.000】。]
t[k0]=np.linspace(k0,30,50)
for i in range(len(L)) 。
j0 = L[i];
j1 = Lc[i];
G = []
def f(s)。
return s**(beta - 1)/(j0*s*beta j1*sympy.gamma(beta 1)
for j in range(len(t[k0]) )。
G.append(mp.invertlaplace(f, t[k0][j], method = 'dehoog', dps = 10, degree = 50)
plt.plot(t[k0],G)
uj5u.com熱心網友回復:
你的回圈次數太多,這就是為什么你的圖畫有多條線重疊的原因。 你應該以這種方式重新組織你的代碼:
import mpmath as mp
import numpy as np
import sympy
import matplotlib.pyplot as plt
beta=0.25
L = [0.04980905361573844, 0.0208207352451072, 0.012368753716465475, 0。 009117292529338674, 0.007461219338976698, 0.006510364609693688, 0.005899506135250773, 0. 005485130537183343, 0.0051898472561455, 0.004961157595209418, 0.004778617403698715, 0. 00463084459959999, 0.004510113095117956, 0.004410195593051274, 0.004330450690278247]
Lc = [1.7509008762765992, 0.14986486457338544, 0.03453912303580302, 0. 014622269851256788, 0.00831141421008418, 0.005660123321843252, 0.004287823173522503, 0. 0034922189865254395, 0.0029879534061896186, 0.0026315863522143363, 0.002367747989524076, 0. 0021671535838986545, 0.0020116727106455415, 0.0018885896058416002, 0.0017939246597491803]
K = [0.052, 0.12, 0.252, 0。 464, 0.792, 1.264, 1.928, 2. 824, 4, 5.600, 7.795, 10。 806, 14.928, 20.599, 28.000]
def f(s)。
return s**(beta - 1)/(j0*s*beta j1*sympy.gamma(beta 1)
for k0, j0, j1 in zip(K, L, Lc)。
t = np.linspace(k0, 30, 50)
G = []
for j in range(len(t)) 。
G.append(mp.invertlaplace(f, t[j], method = 'dehoog', dps = 10, degree = 50)
plt.plot(t, G)
plt.show()
由于zip,你可以在K、L和Lc串列中迭代,同時從每個串列中挑選一個元素;不需要i和j計數器。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/319988.html
標籤:
上一篇:在C語言中使用bigint(使用libtomath庫的例子)
下一篇:如何用圓弧狀的角段幾乎連接兩點?





