Я искал способ отобразить как метку функции, так и выражение функции при работе в Jupyter или любом другом терминале I Python, но мне так и не удалось найти решение в Интернете.
Короче говоря, я хотел сказать что-то вроде display(f)
, и он должен вернуть:
f (x) = a 2 x 2 + a 1 x + a 0
вместо краткого:
a 2 x 2 + a 1 x + a 0
Итак, я решил поделиться тем, что придумал, на случай, если у других возникнут похожие проблемы.
Я нахожу это особенно полезным, особенно если вы хотите скрыть код в своем блокноте Jupyter, как описано в Как скрыть код в ячейках в I Python Блокнот
Вот функция:
from sympy import latex
from IPython.display import Math
def parade(expr, func, y=None, label=None):
"""Returns a latex expression to display using IPython.display.display()
Parameters:
repr: the representation of the function e.g. 'f(x)'
func: the sympy functions symbol e.g. f
y (optional): The value or expression this function is equal to.
label (optional): Append a latex formula label
Returns:
the latex expression to display.
"""
expression = ('{expr} = {func}'.format(expr=expr, func=latex(func)))
if y is not None:
expression += ' = {y}'.format(y=latex(y))
if label is not None:
expression += '\\tag{label}'.format(label=latex(label))
return Math(expression)
Чтобы использовать тип функции:
from sympy import symbols
from IPython.display import display
x, a_0, a_1, a_2 = symbols('x a_0 a_1 a_2')
f = a_2 * x**2 + a_1 * x + a_0
display(parade('f(x)', f))
, она выводит:
f (x) = a 2 x 2 + a 1 x + a 0
Если есть есть способ улучшить это, я был бы признателен, если бы вы могли поделиться им.