首先,

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 =就我而言,是一个变量列表。根据这些变量,我解决了系统问题。

08-07 10:24