Я хочу использовать полиномы Симпи, но я также хочу использовать коэффициенты более высокой точности.Многочлены Sympy с коэффициентами `mpfr`?
Просто делать Это, кажется, дает мне многочлены с коэффициентами sympy.core.numbers.float
.
import sympy
from sympy import Poly
from sympy.abc import x
from gmpy2 import mpfr, get_context
get_context().precision = 150
#float64 can't tell this from 1.0
one_and_change = mpfr('1.0000000000000000000000000000000000001')
#mpfr('1.0000000000000000000000000000000000001000000005',150)
p = [one_and_change]
px = Poly(p, x)
print(px)
# Poly(1.0, x, domain='RR')
print(px.is_one)
# True
print(type(px.all_coeffs()[0]))
# <class 'sympy.core.numbers.Float'>
Я также попытался sympy.mpmath.mpf
, с теми же результатами.
Это также не работает: [1]
domain = sympy.polys.domains.realfield.RealField(150)
px = Poly(p, x, domain=domain)
print(type(px.all_coeffs()[0]))
# <class 'sympy.core.numbers.Float'>
Возможно, вы используете 'domain = 'EX'' с' Float'. – asmeurer
Я так не думаю. 'Float' - это плавающая точка IEEE с фиксированной шириной Python, не так ли? – leewz
Нет, Float - это оболочка вокруг mpmath.mpf, которая является произвольной точностью. – asmeurer