gpt4 book ai didi

python - numpy poly() 和 roots() 是不可逆的吗?

转载 作者:太空宇宙 更新时间:2023-11-04 02:17:52 25 4
gpt4 key购买 nike

我希望 poly() 和 roots() 函数互为反函数。然而,这并不完全正确:

# Polys coeffs
pol_c = np.poly([-1, 1, 1, 10]) # Get Polynomial coeffs for eqt with stated roots
# Roots from the poly equation
root_val = np.roots(pol_c)
# Roots from the poly equation, manually entered as integers
roots_v2 = np.roots([1,-11,9,11,-10])

print(pol_c)
print(root_val)
print(roots_v2)

给予

[1. -11. 9. 11. -10.]

[10.+0.0000000e+00j -1.+0.0000000e+00j 1.+9.6357437e-09j 1.-9.6357437e-09j]

[10.+0.0000000e+00j -1.+0.0000000e+00j 1.+9.6357437e-09j 1.-9.6357437e-09j]

即。第三根和第四根是(稍微)虚构的而不是实数

我的第一个想法是浮点错误,但考虑到 roots() 为 floatint 输入输出相同的答案,但事实并非如此。另外,如果浮点精度限制了求解,我希望 poly() 给出非整数答案。

最佳答案

函数互为反函数,存在一些计算错误(可能很复杂),直到根重新排序。

pol_c = np.poly([-1, 1, 1, 10]) 
root_val = np.roots(pol_c)
print(np.real_if_close(np.around(root_val, 6)))

打印[10。 -1。 1. 1.] 与我们开始的顺序相同,但顺序不同。

当然,顺序不必相同:pol_c 形成时,根的原始顺序丢失了,并且多项式的根(通常是复数)没有规范顺序反正。

关于python - numpy poly() 和 roots() 是不可逆的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52237570/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com