我在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上的开源符号数学。