标签: sympy

如何用Python解决一对非线性方程?

使用Python解决一对非线性方程的最佳方法是什么?(Numpy,Scipy或Sympy)

例如:

  • x + y ^ 2 = 4
  • e ^ x + xy = 3

解决上述配对的代码片段会很棒

python numpy sympy scipy

60
推荐指数
4
解决办法
8万
查看次数

如何通过sympy在ipython笔记本上打印漂亮?

我试过pprint,print前者只打印Unicode版本,后者不做漂亮的打印.

from sympy import symbols, Function
import sympy.functions as sym
from sympy import init_printing
init_printing(use_latex=True)
from sympy import pprint
from sympy import Symbol

x = Symbol('x')

# If a cell contains only the following, it will render perfectly.
(pi + x)**2

# However I would like to control what to print in a function, 
# so that multiple expressions can be printed from a single notebook cell.
pprint((pi + x)**2)
Run Code Online (Sandbox Code Playgroud)

python pretty-print sympy jupyter jupyter-notebook

44
推荐指数
4
解决办法
3万
查看次数

从一组值中评估sympy表达式

我正在试验同情,我遇到了一个我无法解决的问题.

使用scipy我可以编写一个表达式并为其计算x值的数组,如下所示:

import scipy
xvals = scipy.arange(-100,100,0.1)
f = lambda x: x**2
f(xvals)
Run Code Online (Sandbox Code Playgroud)

使用sympy我可以写相同的表达式如下:

import sympy
x = sympy.symbols('x')
g = x**2
Run Code Online (Sandbox Code Playgroud)

我可以通过执行以下操作来评估此表达式的单个值:

g.evalf(subs={x:10})
Run Code Online (Sandbox Code Playgroud)

但是我无法弄清楚如何评估x值的数组,就像我用scipy做的那样.我该怎么做?

python sympy scipy

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

如何提取同情中的所有系数

您可以使用coeff()获得特定术语的系数;

x, a = symbols("x, a")
expr = 3 + x + x**2 + a*x*2
expr.coeff(x)
# 2*a + 1
Run Code Online (Sandbox Code Playgroud)

在这里,我想提取x,x**2(等等)的所有系数,如;

# for example
expr.coefficients(x)
# want {1: 3, x: (2*a + 1), x**2: 1}
Run Code Online (Sandbox Code Playgroud)

有一个方法as_coefficients_dict(),但它似乎不能按我想要的方式工作;

expr.as_coefficients_dict()
# {1: 3, x: 1, x**2: 1, a*x: 2}
expr.collect(x).as_coefficients_dict()
# {1: 3, x**2: 1, x*(2*a + 1): 1}
Run Code Online (Sandbox Code Playgroud)

python sympy

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

是否可以使用Matplotlib绘制隐式方程?

我想在Matplotlib中绘制隐式方程(形式为f(x,y)= g(x,y),例如X ^ y = y ^ x).这可能吗?

python equation matplotlib implicit sympy

30
推荐指数
4
解决办法
3万
查看次数

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

如何在sympy表达式中获取符号列表?

例如,如果我跑

import sympy
x, y, z = sympy.symbols('x:z')
f = sympy.exp(x + y) - sympy.sqrt(z)
Run Code Online (Sandbox Code Playgroud)

是否有任何方法f可以用来获取sympy.Symbol表达式包含的对象的列表或元组?我宁愿不必srepr(f)向下解析或解析f.args.

在这种情况下,g.args[0].args[1].args[0]给我Symbol("z"),虽然g.args[1].args[0].args给我元组(Symbol("x"), Symbol("y")),但显然这些是特定于表达式.

python sympy python-3.x

29
推荐指数
2
解决办法
8456
查看次数

如何在python中模拟偏置硬币的翻转?

在无偏硬币翻转中,H或T发生50%的次数.

但我想模拟硬币给出概率为'p'的H和带有概率'(1-p)'的T.

这样的事情:

def flip(p):
   '''this function return H with probability p'''
   # do something
   return result

>> [flip(0.8) for i in xrange(10)]
[H,H,T,H,H,H,T,H,H,H]
Run Code Online (Sandbox Code Playgroud)

python random probability coin-flipping sympy

25
推荐指数
4
解决办法
3万
查看次数

如何使用Matplotlib处理渐近线/不连续性

当绘制具有不连续性/渐近线/奇点/任何图形的图形时,是否有任何自动方法可以防止Matplotlib在"中断"中"加入点"?(请参阅下面的代码/图片).
我读到Sage有一个看上去很好的[detect_poles]工具,但我真的希望它与Matplotlib一起使用.

import matplotlib.pyplot as plt 
import numpy as np
from sympy import sympify, lambdify
from sympy.abc import x

fig = plt.figure(1) 
ax = fig.add_subplot(111) 

# set up axis 
ax.spines['left'].set_position('zero') 
ax.spines['right'].set_color('none') 
ax.spines['bottom'].set_position('zero') 
ax.spines['top'].set_color('none') 
ax.xaxis.set_ticks_position('bottom') 
ax.yaxis.set_ticks_position('left') 

# setup x and y ranges and precision
xx = np.arange(-0.5,5.5,0.01) 

# draw my curve 
myfunction=sympify(1/(x-2))
mylambdifiedfunction=lambdify(x,myfunction,'numpy')
ax.plot(xx, mylambdifiedfunction(xx),zorder=100,linewidth=3,color='red') 

#set bounds 
ax.set_xbound(-1,6)
ax.set_ybound(-4,4) 

plt.show()
Run Code Online (Sandbox Code Playgroud)

中断

python equation numpy matplotlib sympy

23
推荐指数
3
解决办法
8163
查看次数

如何在SymPy中求解线性方程组?

对不起,我对sympy和python很新.

我想解决以下欠定线性方程组:

x + y + z = 1 
x + y + 2z = 3
Run Code Online (Sandbox Code Playgroud)

python math sympy

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