我正在学习如何用sympy.solvers.solveset.linsolve来求解线性方程组。我可以很好地解决这个系统,但是我很难得到分配给我的变量的结果。它似乎不像我所期望的那样自动完成赋值,而是返回一个包含值元组的元素集,并且我必须经过一些愚蠢的扭曲才能得到赋值。这是我的密码:
from sympy import symbols, ones
from sympy.solvers.solveset import linsolve
A= ones(6)
A[0,0]=7
for k in range(1,6):
A[k,k]=6
b=6*ones(6,1)
p1,p2,p3,p4,p
我试图解决一组线性联立方程,使用线性求解在Sympy的范围内的值。为了简单起见,我在下面展示了我一直试图用简单公式做的事情。
from sympy import symbols, linsolve, IndexedBase
m = 2
n = symbols('n', integer=True)
x, y = symbols('x, y', cls=IndexedBase)
for n in range (0, m+1):
E1 = 2*x[n] + 5*y[n] - 33 + 2*n
E2 = x[n] + 3*y[n
在Python2.7.11上使用SympyPackageVersion1.0,我发现(对我来说)是不一致的。这是我使用的代码:
import sympy as sy
from sympy.stats import Normal, density
from sympy.assumptions import assuming, Q, ask
sy.init_printing()
a = sy.symbols('a', real=True)
with assuming(Q.positive(a)):
print ask(Q.positive(a))
N = No
integrate(log(abs(x)),x)给出了异常。但integrate(log(x),x)并非如此。为什么?
>python
Python 3.6.1 |Anaconda custom (64-bit)| (default, May 11 2017, 13:09:58)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>
编辑:我不是问如何用给定变量(如这个)来求解一个方程,而是问如何按照问题中指定的另一个表达式来表示一个表达式。我相信有一个误导的标题是“重复”的问题。
我是SymPy的新手。我有一个表达方式,一旦用其他的表达方式表达出来,就会变得非常好。问题是,我不知道如何“强迫”用另一个词来表达原来的表达。
这是一个基本的例子:
import sympy as sp
sp.init_printing(use_unicode=True)
a,b,c = sp.symbols('a b c')
A = a+b+c
B = a+c
C = A.subs(a+c,B) # Expected/wa
我正在练习SymPy,发现当值大于1时,Max运算符无法求解。 n = Symbol('n', integer=True, positive=True)
Max(1,n) # this works fine
Max(2,n) # output Max(2, n) 我搞不懂为什么当另一个值大于1时,Max不能解决这个问题。
本文试图找出一个自变量(x)和因变量f(x)已知但系数a,b,c和常数d未知的三次函数的求解方法。我试过同情,但意识到它只适用于4对。现在,我尝试探索解决这个问题的一些可能性(通过找到系数a/b/c和常数d的实际值)。任何建议都是非常感谢的。
下面是代码,它显然不工作,并返回一个空列表,因为有超过100对。
from sympy import Eq, solve
from sympy.abc import a,b,c,d, x
formula = a*x**3 + b*x**2 + c*x + d # general cubic formula
xs = [28.0, 29.0, 12.
我有一组几百个简单的和方程。例如,这里有3:
w1 - u1 - u2 = 0
w1 + w2 - w3 - u3 = 0
w1 - w2 - w4 = 0
我正试图找到一种方法来解决尽可能多的问题,只考虑到其中的几个价值。例如,在上面的方程集中,如果我有u1和u2,我可以计算w1,但是没有其他的。给定u1、u2和w2,我可以计算w1和w4。等等..。
目前,我正以一种相当直截了当的方式(psudo代码)来处理这个问题:
while there are new results:
for each equation:
try to solve equation
我试图用SymPy和SymPy的衍射包在流形上定义一个方程。由于这个方程是由用户输入的,所以它作为字符串发送到程序中,因此在代码中的流形定义之前就定义了它。为了进行有意义的计算,我试图用定义在流形上的符号替换“符号化”符号。
这是一个由用户提供的函数。
H = sympify('m*a - f')
用户还将流形的坐标作为字符串提供。
# Variables defined as symbols (non-diffgeom)
a = Symbol('a')
f = Symbol('f')
之后的一切都是自动化的。
from sympy.diffge
public class MyArrayList<T> implements MyList<T>{
int num; //number of things in the list
T[] vals; //to store the contents
@SuppressWarnings("unchecked")
public MyArrayList() {
num = 0;
vals = (T[]) new Object[3];
}
public i