【发布时间】:2017-04-06 19:18:06
【问题描述】:
给定值数组x 的初始猜测,我试图找到最接近x 的系统的根。如果您熟悉求系统的根,您将理解为方程组f 求根满足:
0 = f_1(x)
0 = f_2(x)
....
0 = f_n(x)
其中f_i 是f 中的一个特定函数
scipy 中有一个包可以做到这一点:scipy.optimize.newton_krylov。例如:
import scipy.optimize as sp
def f(x):
f0 = (x[0]**2) + (3*(x[1]**3)) - 2
f1 = x[0] * (x[1]**2)
return [f0, f1]
# Nearest root is [sqrt(2), 0]
print sp.newton_krylov(f, [2, .01], iter=100, f_tol=Dc('1e-15'))
>>> [ 1.41421356e+00 3.49544535e-10] # Close enough!
但是,我在 python 中使用decimal 包,因为我正在做非常精确的工作。 decimal 提供了比正常的十进制精度更高的精度。 scipy.optimize.newton_krylov 返回浮点精度值。有没有办法以任意精确的小数精度得到我的答案?
【问题讨论】:
标签: python decimal approximation