【问题标题】:How to keep the fraction in the output without evaluating如何在不评估的情况下将分数保留在输出中
【发布时间】:2019-02-23 10:46:15
【问题描述】:

我尝试使用 sympy 找出 特征多项式特征值。但是当我在 Jupyter 笔记本中打印结果时,多项式系数中的所有分数都被评估为float(eg-0.5x**2+1) 但我想要$(1/2)x^2+1$)。有什么可以解决这个问题的吗。谢谢。

我的代码

import sympy as sp
from sympy import *
x, y, z = symbols('x,y,z')
init_printing(use_unicode=False, wrap_line=False)
M = sp.Matrix([[0, -1/2], [1/3, 0]])
x = symbols('x')
p = M.charpoly(x)
p

输出。

【问题讨论】:

    标签: python sympy


    【解决方案1】:

    这些是相关的费用

    from fractions import Fraction
    M = sp.Matrix([[0, -Fraction(1, 2)], [Fraction(1, 3), 0]])
    

    哪个产量

    PurePoly(x**2 + 1/6, x, domain='QQ')
    

    关键是1/3 立即转换为float 0.3333...避免这种情况的方法是使用fractions.Fraction 或(可能更好)其sympy 版本:sympy.Rational

    【讨论】:

    猜你喜欢
    • 2018-06-05
    • 1970-01-01
    • 1970-01-01
    • 2017-01-01
    • 2022-07-25
    • 2021-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多