也许我忽略了明显但你如何防止同情重新排列方程?
我在iPython笔记本中使用Sympy,因此我可以轻松地将Latex代码复制粘贴到Lyx,但我希望方程式与我定义它们的顺序相同.
例如,灰体辐射的公式是其温度的函数:

Sympy自动将温度组件放在前面,这给出了一个非常不寻常的公式表示.反正有没有阻止这个?
我正在使用python以数字方式求解积分:

其中a(x)可以取任何值; [-1; 1]中的正,负,内或外,eta是无穷小的正数.有一个第二外积分改变a(x)的值
我试图用Sokhotski-Plemelj定理来解决这个问题:

然而,这涉及确定原则值,我在python中找不到任何方法.我知道它是在Matlab中实现的,但是有没有人知道库或者在python中确定主值的其他方法(如果存在一个原则值)?
如何计算同情中多变量函数的(符号)梯度?
显然我可以单独计算每个变量的导数,但有没有矢量化操作呢?
例如
m=sympy.Matrix(sympy.symbols('a b c d'))
Run Code Online (Sandbox Code Playgroud)
现在对于i = 0..3,我可以这样做:
sympy.diff(np.sum(m*m.T),m[i])
Run Code Online (Sandbox Code Playgroud)
这将工作,但我宁愿做类似的事情:
sympy.diff(np.sum(m*m.T),m)
Run Code Online (Sandbox Code Playgroud)
哪个不起作用("AttributeError:ImmutableMatrix没有属性_diff_wrt").
我正在解决的数学问题在不同的场景中提供了不同的分析解决方案,我想在一个很好的表格中总结结果.IPython Notebook可以很好地呈现列表:例如:
import sympy
from pandas import DataFrame
from sympy import *
init_printing()
a, b, c, d = symbols('a b c d')
t = [[a/b, b/a], [c/d, d/c]]
t
Run Code Online (Sandbox Code Playgroud)

但是,当我使用DataFrame将答案汇总到表中时,无法再渲染数学:
df = DataFrame(t, index=['Situation 1', 'Situation 2'], columns=['Answer1','Answer2'])
df
Run Code Online (Sandbox Code Playgroud)

"print df.to_latex()"也给出了相同的结果.我也尝试过"print(latex(t))",但是在LaTex中编译完成后就可以了,这很好,但是我还是需要手动将它转换成表格:

我应该如何正确使用DataFrame才能正确渲染数学?或者有没有其他方法将数学结果导出到Latex中的表中?谢谢!
更新:01/25/14再次感谢@Jakob解决问题.它适用于简单矩阵,但对于更复杂的数学表达式仍然存在一些小问题.但我想@asmeurer说,完美需要IPython和Pandas的更新.

更新:01/26/14如果我直接渲染结果,即只打印列表,它工作正常:

我正在寻找一种快速算法来找到素数有限域中单变量多项式的根.
也就是说,如果 (n> 0)那么对于给定的素数p ,找到满足的算法.f = a0 + a1x + a2x2 + ... + anxnr < pf(r) = 0 mod p
我发现了Chiens搜索算法https://en.wikipedia.org/wiki/Chien_search但是我无法想象这对于大于20位的素数来说是快速的.有没有人有使用Chien的搜索算法的经验或知道更快的方法?这是否有一个sympy模块?
我需要计算矢量场的卷曲并用matplotlib绘制它.我正在寻找的一个简单例子可以这样说:
如何在matplotlib库中的quiver3d_demo.py中计算和绘制矢量场的卷曲?
我有一个用户输入功能的程序,例如sin(x)+1.我正在ast尝试通过将组件列入白名单来确定字符串是否"安全",如本答案中所示.现在我想解析字符串,*在没有它们的系数之间添加乘法()符号.
例如:
3x- > 3*x4(x+5) - > 4*(x+5)sin(3x)(4)- > sin(3x)*(4)(sin已经在全局变量中,否则这将是s*i*n*(3x)*(4)有没有有效的算法来实现这一目标?我更喜欢pythonic解决方案(即不是复杂的正则表达式,不是因为它们是pythonic,而是因为我不理解它们并想要一个我能理解的解决方案.简单的正则表达式是可以的.)
sympy在一个条件下,我非常愿意使用(这对于这类事情看起来很容易):安全.显然是在引擎盖下sympy使用eval.我目前的(部分)解决方案的安全性非常好.如果有人有办法sympy使用不受信任的输入更安全,我也欢迎这一点.
我有一个表达式: 1/(x+1)+4*x/(x-1)+3-4*x**2+10*x**2
我需要的是一个包含此表达式中的术语的列表.
即[1/(x+1), 4*x/(x-1), 3, -4*x**2 , 10*x**2]
更新:它不应该收集类似的条款.因此,在收集类似条款后,列表应分别具有-4*x**2和10*x**2而不是6*x**2.
我们试图在#python通道中弄清楚如何使用sympy从视图矩阵中计算出眼睛/目标/向上矢量.一种可行的方法可能是:
from sympy import *
from pprint import pprint
v1, v2, v3, v4 = symbols('v1 v2 v3 v4')
v5, v6, v7, v8 = symbols('v5 v6 v7 v8')
v9, v10, v11, v12 = symbols('v9 v10 v11 v12')
v13, v14, v15, v16 = symbols('v13 v14 v15 v16')
V = Matrix([
[v1, v2, v3, v4],
[v5, v6, v7, v8],
[v9, v10, v11, v12],
[v13, v14, v15, v16],
])
u1, u2, u3 = symbols('u1 u2 u3', real=True)
t1, t2, t3 = symbols('t1 …Run Code Online (Sandbox Code Playgroud) 我有一组sympy像这样的表达式(几百个):
>>> foo = parse_expr('X | Y')
>>> bar = parse_expr('(Z & X) | (Z & Y)')
>>> baz = parse_expt('AAA & BBB') # not needed for this example; just filler
Run Code Online (Sandbox Code Playgroud)
我可以单独简化一个:
>>> simplify(bar)
Z & (X | Y)
Run Code Online (Sandbox Code Playgroud)
有没有办法简化,包括可用的整套变量?
>>> mysimplify(bar, include=(foo,bar,baz))
Z & foo
Run Code Online (Sandbox Code Playgroud) sympy ×10
python ×8
3d ×1
algorithm ×1
derivative ×1
function ×1
geometry ×1
integration ×1
ipython ×1
latex ×1
matplotlib ×1
matrix ×1
pandas ×1
polynomials ×1
scipy ×1
string ×1