在IPython Notebook中,Sympy出现格式化错误

5

我在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和w的加法

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中运行相同代码,结果完全相同。这是一个bug还是我自己编写的代码存在问题?

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

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个回答

6

这是一个bug,在SymPy的git版本中已经修复。你可以安全地忽略它。只有在将笔记本导出为使用png格式的数学公式的格式时,才会成为问题。如果你想完全抑制错误,可以使用init_printing(use_latex='mathjax')


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接