def temporal_derived_power_series(z, C, up_to_order, series_termination_index, spatial_der_order=0):
"""
compute the temporal derivatives
q^{(n)}(z) = \sum_{k=0}^{series_termination_index} C[k][n,:] z^k / k!
from n=0 to n=up_to_order
:param z: scalar
:param C:
:param up_to_order:
:param series_termination_index:
:param spatial_der_order:
:return: Q = np.array( [q^{(0)}, ... , q^{(up_to_order)}] )
"""
if not isinstance(z, Number):
raise TypeError
if any([C[i].shape[0] - 1 < up_to_order for i in range(series_termination_index+1)]):
raise ValueError
len_t = C[0].shape[1]
Q = np.nan*np.zeros((up_to_order+1, len_t))
for i in range(up_to_order+1):
sum_Q = np.zeros(len_t)
for j in range(series_termination_index+1-spatial_der_order):
sum_Q += C[j+spatial_der_order][i, :]*z**(j)/sm.factorial(j)
Q[i, :] = sum_Q
return Q
评论列表
文章目录