来自ipython笔记本中的sympy的格式化程序错误

时间:2014-07-16 02:38:57

标签: ipython-notebook sympy

我在iPython Notebook中有以下与Sympy相关的代码:

from sympy import *
init_printing()

...

定义常量

c, d, e, f = symbols("c, d, e, f")

...

定义两个矩阵

v = Matrix(2,1,[1,1])
w = Matrix(2,1,[2,3])

定义符号矩阵

v, v1, v2 = symbols("v, v1, v2")
v = Matrix(2,1, [v1, v2])
w, w1, w2 = symbols("w, w1, w2")
w = Matrix(2,1, [w1, w2])

添加符号向量v&瓦特

v + w

导致以下错误消息

/home/ron/anaconda/lib/python2.7/site-packages/IPython/core/formatters.py:239:  FormatterWarning: Exception in image/png formatter: 
\left[\begin{smallmatrix}v_{1} + w_{1}\\v_{2} + w_{2}\end{smallmatrix}\right]
      ^
Expected "\right" (at char 6), (line:1, col:7)
  FormatterWarning,

然后产生正确的答案

[v1+w1v2+w2]

有趣的是,如果我重新执行单元格,则错误消息会消失。我在ipython qtconsole中尝试了相同的代码,结果相同。这是一个错误还是我的编码很差?

进一步搜索后,我在第一个单元格中尝试了以下内容:

from IPython.display import display

from sympy.interactive import printing
printing.init_printing(use_latex='mathjax')

from __future__ import division
import sympy as sym
from sympy import *

到目前为止,这消除了上述错误。

来自SymPy的新单元:nbviewer上的开源符号数学

1 个答案:

答案 0 :(得分:6)

这是一个bug,已在SymPy的git版本中修复。你可以放心地忽略它。如果将笔记本导出为使用png进行数学运算的格式,则只会出现问题。如果您想完全抑制错误,可以使用init_printing(use_latex='mathjax')