Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Sympy:返回分数,而不是求解中的浮点_Python_Sympy - Fatal编程技术网

Python Sympy:返回分数,而不是求解中的浮点

Python Sympy:返回分数,而不是求解中的浮点,python,sympy,Python,Sympy,考虑以下示例: from sympy import * x = Symbol('x',real=True) eq = x**4 + 4/9*x**2 - 13/9 sol = solve(eq,x) print(latex(eq)) print(latex(sol)) 这导致 x^{4} + 0.444444444444444 x^{2} - 1.44444444444444 \left [ -1.0, \quad 1.0\right ] 如何使其打印(自动)分数而不是浮点数 使用Ratio

考虑以下示例:

from sympy import *
x = Symbol('x',real=True)
eq = x**4 + 4/9*x**2 - 13/9
sol = solve(eq,x)
print(latex(eq))
print(latex(sol))
这导致

x^{4} + 0.444444444444444 x^{2} - 1.44444444444444
\left [ -1.0, \quad 1.0\right ]

如何使其打印(自动)分数而不是浮点数

使用
Rational

>>> from sympy import *
>>> x = Symbol('x', real=True)
>>> eq = x**4 + Rational(4,9)*x**2 - Rational(13,9)
>>> sol = solve(eq, x)
>>> sol
[-1, 1]
>>> print (latex(eq))
x^{4} + \frac{4 x^{2}}{9} - \frac{13}{9}
>>> print(latex(sol))
\left [ -1, \quad 1\right ]

使用
Rational

>>> from sympy import *
>>> x = Symbol('x', real=True)
>>> eq = x**4 + Rational(4,9)*x**2 - Rational(13,9)
>>> sol = solve(eq, x)
>>> sol
[-1, 1]
>>> print (latex(eq))
x^{4} + \frac{4 x^{2}}{9} - \frac{13}{9}
>>> print(latex(sol))
\left [ -1, \quad 1\right ]

谢谢有没有一个标志,Symphy会自动将“4/9”识别为“理性(4,9)”?据我所知,没有。也许可以再问一个问题。我也很感兴趣。我很难想象这是可能的,因为python会在Symphy有机会看到之前计算出4/9,不是吗?当然,如果你不想输入Rational,你可以只写一个简短的包装器。@VictorChubukov:像你一样,我觉得很难想象,因为各种原因。但是在我的生活中,我犯了很多很多次错误…@Julia作为一条捷径,你可以使用
S(4)/9
。S(sympify的缩写)将4转化为表示“4”的SymPy对象,然后根据SymPy规则进行除法,得到一个有理数。有些人写S(1)*4/9,大意相同。谢谢。有没有一个标志,Symphy会自动将“4/9”识别为“理性(4,9)”?据我所知,没有。也许可以再问一个问题。我也很感兴趣。我很难想象这是可能的,因为python会在Symphy有机会看到之前计算出4/9,不是吗?当然,如果你不想输入Rational,你可以只写一个简短的包装器。@VictorChubukov:像你一样,我觉得很难想象,因为各种原因。但是在我的生活中,我犯了很多很多次错误…@Julia作为一条捷径,你可以使用
S(4)/9
。S(sympify的缩写)将4转化为表示“4”的SymPy对象,然后根据SymPy规则进行除法,得到一个有理数。有些人写S(1)*4/9,大意相同。