标签: sympy

如何查看当前版本的sympy并升级到最新版本

如何查看当前版本的sympy并升级到最新版本.我正在使用mac.我安装当前版本的方式是使用"pip install sympy"

python sympy

16
推荐指数
2
解决办法
7187
查看次数

如何在表达式中替换多个符号?

直接分配变量不会修改使用该变量的表达式.

>>> from sympy import Symbol
>>> x = Symbol('x')
>>> y = Symbol('y')
>>> f = x + y
>>> x = 0

>>> f
x + y
Run Code Online (Sandbox Code Playgroud)

python sympy

16
推荐指数
2
解决办法
2万
查看次数

IPython Notebook Sympy数学渲染

我刚刚开始使用IPython Notebook,并对它的强大功能着迷.我一直在网上使用一些例子来开始.我正在学习本教程:http://nbviewer.ipython.org/url/finiterank.com/cuadernos/suavesylocas.ipynb但数学输出未按预期呈现.下面是我的代码和输出:

In [30]:

%load_ext sympyprinting
%pylab inline

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

init_printing()

x,y,z=symbols("x y z")
k,m,n=symbols("k m n", integer=True)

The sympyprinting extension is already loaded. To reload it, use:
  %reload_ext sympyprinting

Welcome to pylab, a matplotlib-based Python environment [backend: module://IPython.kernel.zmq.pylab.backend_inline].
For more information, type 'help(pylab)'.

In [31]:

t = sin(2*pi*x*(k**2))/ (4*(pi**2)*(k**5)) + (x**2) / (2*k)
t
Out[31]:
  2      ?     2  ?
 x    sin?2???k ?x?
??? + ????????????? …
Run Code Online (Sandbox Code Playgroud)

sympy ipython-notebook

15
推荐指数
1
解决办法
8296
查看次数

将SymPy矩阵转换为numpy数组/矩阵的最佳方法是什么?

我不确定我用过的方法是sympy将a转换MutableDenseMatrix为a numpy.array还是numpy.matrix当前的好习惯.

我有一个符号矩阵,如:

g = sympy.Matrix( [[   x,  2*x,  3*x,  4*x,  5*x,  6*x,  7*x,  8*x,   9*x,  10*x]
                   [x**2, x**3, x**4, x**5, x**6, x**7, x**8, x**9, x**10, x**11]] )
Run Code Online (Sandbox Code Playgroud)

我正在转变为numpy.array:

g_func = lambda val: numpy.array( g.subs( {x:val} ).tolist(), dtype=float )
Run Code Online (Sandbox Code Playgroud)

我得到一个给定值的数组x.

SymPy中有更好的内置解决方案吗?

谢谢!

python arrays numpy matrix sympy

15
推荐指数
5
解决办法
1万
查看次数

用SymPy求解方程组

我试图用SymPy 0.7.1解决一组方程:

from sympy import *
equations = [
    Eq(S('vf'), S('vi + a*t')),
    Eq(S('d'), S('vi*t + 1/2*a*t**2')),
    Eq(S('a'), S('10')),
    Eq(S('d'), S('60')),
    Eq(S('vi'), S('5'))
]
print solve(equations)
Run Code Online (Sandbox Code Playgroud)

产生正确的结果,但是以一种奇怪的顺序:

[(-4, 10, 60, -35, 5), (3, 10, 60, 35, 5)]
Run Code Online (Sandbox Code Playgroud)

如何确定哪个值适合哪个变量?变量顺序似乎是任意的. 文档建议提供其他参数:

print solve(equations, var('a'), var('d'), var('t'), var('vi'), var('vf'))
Run Code Online (Sandbox Code Playgroud)

但这似乎没有效果.

在此先感谢您的帮助!

python sympy

14
推荐指数
1
解决办法
1万
查看次数

sympy:求解二次方程的结果顺序

我用sympy解决了二次方程:

import sympy as sp
q,qm,k,c0,c,vt,vm = sp.symbols('q qm k c0 c vt vm')
c = ( c0 * vt - q * vm) / vt
eq1 = sp.Eq(qm * k * c / (1 + k * c) ,q)
q_solve = sp.solve(eq1,q)
Run Code Online (Sandbox Code Playgroud)

基于一些测试,我发现只有q_solve[0]物理意义.请问始终把症情(b - sqrt(b**2 - 4*a*c))/2a放在第一位吗?我猜,它可能随着升级而改变?

python sympy

14
推荐指数
1
解决办法
660
查看次数

用朱莉娅评估非理性

Julia有内置常量pi,类型Irrational.

julia> pi
? = 3.1415926535897...

julia> ?
? = 3.1415926535897...

julia> typeof(pi)
Irrational{:?}
Run Code Online (Sandbox Code Playgroud)

从SymPy,它具有编辑N()功能,我想评价pi(或其它IrrationalS,例如e,golden等),以n个数字.

In [5]: N(pi, n=50)
Out[5]: 3.1415926535897932384626433832795028841971693993751
Run Code Online (Sandbox Code Playgroud)

这可能吗?我假设这pi是基于它的数学定义,而不是仅仅十三个小数位.

evaluation constants sympy julia

14
推荐指数
2
解决办法
575
查看次数

SymPy中的非顺序替换

我正在尝试使用[SymPy] [1]同时替换表达式中的多个术语.我用字典作为参数尝试了[subs function] [2],但发现它依次替换.

In : a.subs({a:b, b:c})
Out: c
Run Code Online (Sandbox Code Playgroud)

问题是第一次替换导致一个术语可以被第二次替换取代,但它不应该(因为我的原因).

关于如何同时进行替换的任何想法,没有它们相互干扰?

编辑: 这是一个真实的例子

In [1]: I_x, I_y, I_z = Symbol("I_x"), Symbol("I_y"), Symbol("I_z")

In [2]: S_x, S_y, S_z = Symbol("S_x"), Symbol("S_y"), Symbol("S_z")

In [3]: J_is = Symbol("J_IS")

In [4]: t = Symbol("t")

In [5]: substitutions = (
(2 * I_x * S_z, 2 * I_x * S_z * cos(2 * pi * J_is * t) + I_y * sin(2 * pi * J_is * t)),
(I_x,  I_x * cos(2 * …
Run Code Online (Sandbox Code Playgroud)

python math symbolic-math sympy substitution

13
推荐指数
1
解决办法
1777
查看次数

没有对齐Sympy对分裂的好处

我正在尝试用Sympy打印一些分区,但我注意到它没有显示对齐.

import sympy
sympy.init_printing(use_unicode=True)

sympy.pprint(sympy.Mul(-1, sympy.Pow(-5, -1, evaluate=False), evaluate=False))
# Output:
# -1 
# ???
#  -5  # Note that "-5" is displayed slightly more on the right than "-1".
Run Code Online (Sandbox Code Playgroud)

理由/解决这个问题?

编辑:我做了很多逆向工程使用inspect.getsource,inspect.getsourcefile但它最终并没有真​​正帮助.

Sympy的Pretty Printing似乎依赖于Jurjen Bos的Prettyprinter.

import sympy

from sympy.printing.pretty.stringpict import *

sympy.init_printing(use_unicode=True)

prettyForm("-1")/prettyForm("-5")
# Displays:
# -1
# --
# -5
Run Code Online (Sandbox Code Playgroud)

所以它显示对齐,但我不能让它使用unicode.

该PrettyPrinter从文件调用sympy/printing/pretty/pretty.py的方法PrettyPrinter._print_Mul简单地return prettyForm.__mul__(*a)/prettyForm.__mul__(*b)用,我想,ab简单地['-1']['-5'],但它不会工作.

python sympy

13
推荐指数
1
解决办法
218
查看次数

有没有办法在SymPy中获得逐步解决方案?

有没有办法在SymPy中获得逐步解决方案?例如:

x**2-5 = 4
  step 1 x**2-5+5=4+5
  step 2 : x**2=9
  step 3 :x = 3 or x= -3
Run Code Online (Sandbox Code Playgroud)

python math sympy

13
推荐指数
1
解决办法
2066
查看次数