sympy возвращает TypeError, когда ставит иррациональное в дроби - PullRequest
0 голосов
/ 24 декабря 2018

Я пытался поставить это в симпати, но это не работает:

import sympy
sympy.init_printing(use_unicode=True)

sympy.Rational(3, sympy.sqrt(3))

Мне возвращается следующее:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-18-25b0450ea0d0> in <module>()
      1 root = sympy.sqrt(3)
      2 
----> 3 sympy.Rational(3, sympy.sqrt(3))

~\Anaconda3\lib\site-packages\sympy\core\numbers.py in __new__(cls, p, q, gcd)
   1488         else:
   1489             p = Rational(p)
-> 1490             q = Rational(q)
   1491 
   1492         if isinstance(q, Rational):

~\Anaconda3\lib\site-packages\sympy\core\numbers.py in __new__(cls, p, q, gcd)
   1483 
   1484             if not isinstance(p, SYMPY_INTS + (Rational,)):
-> 1485                 raise TypeError('invalid input: %s' % p)
   1486             q = q or S.One
   1487             gcd = 1

TypeError: invalid input: sqrt(3)

Почему это происходит?Как я могу поместить иррациональное число в дробь в sympy, тогда?

1 Ответ

0 голосов
/ 28 декабря 2018

Чтобы создать коэффициент, используйте 3/sqrt(3);чтобы распечатать его как таковой, необходимо использовать выражения без оценки: (Mul(3,Pow(sqrt(3),-1, evaluate=False),evaluate=False).

...