擅长:python、mysql、java
<p>当双精度不够时,通常需要查找其他库,例如<code>mpmath</code>或{<cd2>}。并且<code>sympy</code>有一个内置的<a href="http://docs.sympy.org/latest/modules/polys/reference.html#sympy.polys.specialpolys.interpolating_poly" rel="nofollow noreferrer">^{<cd4>} function</a>:</p>
<pre><code>from sympy import Symbol, interpolating_poly
x = Symbol('x')
xp = [1, 2, 3]
yp = [3333333333333333333333333, 77777777777777777777777777, 22222222222222222222222222222]
p = interpolating_poly(3, x, xp, yp)
</code></pre>
<p>第一个参数是点数;第二个参数是多项式中要使用的符号。如果你这样做,那么就不要写<code>1.0</code>为<code>1</code>写<code>1.0</code>,以此类推;这将强制所有的东西都浮起,你将回到你和NumPy在一起时的状态。符号计算需要整数、有理数和符号表达式。在</p>
<p>结果以牛顿多项式形式与<code>(x-1)</code>,<code>(x-1)*(x-2)</code>等一起返回;可以使用<code>expand</code>将其变成更熟悉的多项式形式:</p>
^{pr2}$
<p>返回<code>22070000000000000000000000001*x**2/2 - 66061111111111111111111111115*x/2 + 21998888888888888888888888890</code>。这些系数是精确的,可以用<code>[p.subs(x, v) for v in xp]</code>检查:返回原始的<code>yp</code>值。在</p>