标签: sympy

防止Sympy重新排列等式

也许我忽略了明显但你如何防止同情重新排列方程?

我在iPython笔记本中使用Sympy,因此我可以轻松地将Latex代码复制粘贴到Lyx,但我希望方程式与我定义它们的顺序相同.

例如,灰体辐射的公式是其温度的函数:

在此输入图像描述

Sympy自动将温度组件放在前面,这给出了一个非常不寻常的公式表示.反正有没有阻止这个?

python sympy

10
推荐指数
2
解决办法
1838
查看次数

Python:以数字方式查找积分的主值

我正在使用python以数字方式求解积分:

在此输入图像描述

其中a(x)可以取任何值; [-1; 1]中的正,负,内或外,eta是无穷小的正数.有一个第二外积分改变a(x)的值

我试图用Sokhotski-Plemelj定理来解决这个问题: 在此输入图像描述

然而,这涉及确定原则值,我在python中找不到任何方法.我知道它是在Matlab中实现的,但是有没有人知道库或者在python中确定主值的其他方法(如果存在一个原则值)?

python integration sympy scipy

10
推荐指数
1
解决办法
2656
查看次数

有没有矢量化的方法来计算同情的梯度?

如何计算同情中多变量函数的(符号)梯度?

显然我可以单独计算每个变量的导数,但有没有矢量化操作呢?

例如

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").

python symbolic-math sympy derivative

10
推荐指数
2
解决办法
3787
查看次数

如何在IPython Notebook中正确渲染数学表

我正在解决的数学问题在不同的场景中提供了不同的分析解决方案,我想在一个很好的表格中总结结果.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如果我直接渲染结果,即只打印列表,它工作正常: 在此输入图像描述

latex sympy ipython pandas ipython-notebook

10
推荐指数
1
解决办法
5421
查看次数

多项式的根是mod的素数

我正在寻找一种快速算法来找到素数有限域中单变量多项式的根.

也就是说,如果 (n> 0)那么对于给定的素数p ,找到满足的算法.f = a0 + a1x + a2x2 + ... + anxnr < pf(r) = 0 mod p

我发现了Chiens搜索算法https://en.wikipedia.org/wiki/Chien_search但是我无法想象这对于大于20位的素数来说是快速的.有没有人有使用Chien的搜索算法的经验或知道更快的方法?这是否有一个sympy模块?

algorithm sympy polynomial-math polynomials

10
推荐指数
1
解决办法
3625
查看次数

在Python中计算矢量场的卷曲并使用matplotlib绘制它

我需要计算矢量场的卷曲并用matplotlib绘制它.我正在寻找的一个简单例子可以这样说:

如何在matplotlib库中的quiver3d_demo.py中计算和绘制矢量场的卷曲?

python matplotlib sympy

10
推荐指数
3
解决办法
7934
查看次数

在系数之间添加乘号(*)

我有一个用户输入功能的程序,例如sin(x)+1.我正在ast尝试通过将组件列入白名单来确定字符串是否"安全",如本答案中所示.现在我想解析字符串,*在没有它们的系数之间添加乘法()符号.

例如:

  • 3x- > 3*x
  • 4(x+5) - > 4*(x+5)
  • sin(3x)(4)- > sin(3x)*(4)(sin已经在全局变量中,否则这将是s*i*n*(3x)*(4)

有没有有效的算法来实现这一目标?我更喜欢pythonic解决方案(即不是复杂的正则表达式,不是因为它们是pythonic,而是因为我不理解它们并想要一个我能理解的解决方案.简单的正则表达式是可以的.)

sympy在一个条件下,我非常愿意使用(这对于这类事情看起来很容易):安全.显然是在引擎盖下sympy使用eval.我目前的(部分)解决方案的安全性非常好.如果有人有办法sympy使用不受信任的输入更安全,我也欢迎这一点.

python string function sympy

10
推荐指数
1
解决办法
653
查看次数

如何在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

10
推荐指数
2
解决办法
1277
查看次数

如何使用sympy从视图矩阵中提取眼睛/目标/向上?

我们试图在#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)

python 3d geometry matrix sympy

10
推荐指数
1
解决办法
256
查看次数

sympy:如何简化多个表达式

我有一组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)

python sympy

10
推荐指数
1
解决办法
287
查看次数