首先,
solve_poly_system( seq, *gens, **args),
有谁确切知道solve_poly_system的参数是什么意思?
我有系统,
rd = λk
ua = λk
k = ad
其中r,u,k是已知的,而a,d,λ是变量。
当我使用solve(system,[a,d,λ])时出现错误,
NotImplementedError: only zero-dimensional systems supported (finite number of solutions)
文件中引发此错误
/usr/lib/python2.7/dist-packages/sympy/solvers/polysys.py", line 148, in solve_reduced_system
当我使用resolve_poly_system(system,[a,d,λ])时,一切正常。
正如我所看到的,最后,solve()和solve_poly_system()都使用相同的函数来求解系统。对于非二次方程,此函数是resolve_generic(polys,opt),然后是_solve_reduced_system(system,gens,entry = False)
谁能解释为什么会这样?
我想使用solve(),因为我只对积极的解决方案感兴趣,所以我想使用标志“ force”。
最佳答案
我解决了我的问题。
首先,根据Mateusz Paprocki的建议,我从master安装了sympy。这解决了solve()的问题
经过一番努力,我发现我的程序与某些输入文件的读取顺序有关。这导致solve()和solve_poly_system()都退出
NotImplementedError: only zero-dimensional systems supported (finite number of solutions)
当我更改了读取输入文件的顺序时。
更具体地说,我正在使用Hadoop 1.0.2 Streaming。我正在读取一些文件,每个文件都有特定的,不同的内容和结构。经过使用sympy模块进行一些操作后,该总内容将给出一个线性系统。这是问题所在。
Hadoop Streaming不会以任何特定顺序读取输入文件。为此,将不同的文件一起解析时必须小心。我的“解析器”希望输入文件的顺序一定。当顺序不同时,文件的操纵将提供错误的系统来解决。因此,solve(),solve_poly_system()引发了NotImplementedError。解决此问题的方法是修复我的“解析器”。
最后,根据我的使用方式,solve_poly_system(seq,* gens,** args)的参数表示
seq = sequence,等于0的一系列方程。
情况,序列是一个列表
* gens =就我而言,是一个变量列表。根据这些变量,我解决了系统问题。