def _get_M(self,delta_t):
n=len(self.a)
A=np.zeros(n)
for i,ai in enumerate(self.a):
Ae=[self.a[i]*(-1)**j*math.factorial(i)/math.factorial(j)/math.factorial(i-j)/((delta_t)**i) for j in range(i+1)]# Elementery A to assemblate in A
for j,aej in enumerate(Ae):
A[j]+=aej
n=len(self.b)
B=np.zeros(n)
for i,ai in enumerate(self.b):
Be=[self.b[i]*(-1)**j*math.factorial(i)/math.factorial(j)/math.factorial(i-j)/((delta_t)**i) for j in range(i+1)]# Elementery A to assemblate in A
for j,bej in enumerate(Be):
B[j]+=bej
Mo=[-x/B[0] for x in B[1:][::-1]]
Mi=[x/B[0] for x in A[::-1]]
return (Mi,Mo)
评论列表
文章目录