多项式除法的“numpy.polydiv()”和“scipy.signal.deconvolve()”之间的差异

2024-06-09 22:03:09 发布

您现在位置:Python中文网/ 问答频道 /正文

上下文

对于多项式除法,我已经尝试了^{}^{}。 尽管^{}声称执行与^{}相同的,但结果不同

See also:
numpy.polydiv performs polynomial division (same operation, but also accepts poly1d objects)

问题

  1. ^{}^{}之间有什么区别
  2. 为什么它们返回不同的结果

样品

import numpy as np 
from scipy.signal import deconvolve
# sample polynoms
poly_p = np.array([4.67412107e+01, 4.78752371e+03, 4.73956934e+04, 5.72166568e+04, 1.31919833e+04, 6.59875201e+02, 6.34344697e+00, 1.29040704e-02])
poly_q = np.array([1.00000000e+00, 7.12080395e+02, 1.41026519e+04, 3.81410036e+04, 2.02591201e+04, 2.59007935e+03, 8.39489393e+01, 5.06158871e-01, 7.63316657e-04])

# Calculating polynomial division
div_polydiv, num_polydiv = np.polydiv(poly_q, poly_p)
div_decon, num_decon = deconvolve(poly_q, poly_p)

print('Results polydiv:')
print(div_polydiv, num_polydiv)
print(10 * '-')
print('Results deconvolve:')
print(div_decon, num_decon)

结果

div_polydiv = [0.0213944, 13.04318405] 
div_decon = [0.0213944, 13.04318405] 


num_polydiv =  [-4.93559033e+04, -5.81273865e+05, -7.26310500e+05, -1.69489504e+05, -8.52306047e+03, -8.22328636e+01, -1.67546849e-01]
num_decon =  [1.11022302e-16,  0.00000000e+00, -4.93559033e+04, -5.81273865e+05, -7.26310500e+05, -1.69489504e+05, -8.52306047e+03, -8.22328636e+01, -1.67546849e-01]        


Tags: importdivnumpynparrayresultsnumdivision