1

そもそも、

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

Solve_poly_system(system、[a、d、λ])を使用すると、すべて問題ありません。

ご覧のとおり、solve()とsolve_poly_system()はどちらも、最終的には同じ関数を使用してシステムを解決します。非双二次関数の場合、これと同じ関数はsolve_generic(polys、opt)、次に_solve_reduced_system(system、gens、entry = False)です。

なぜこれが起こっているのか誰かが説明できますか?

ポジティブソリューションのみに関心があるため、solve()を使用したいので、フラグ「force」を使用します。

4

1 に答える 1

1

私は自分の問題を解決しました。

最初は、Mateusz Paprockiの勧めで、 masterからsympyをインストールしました。これにより、solve()の問題が解決しました

少し努力した後、私のプログラムがいくつかの入力ファイルが読み取られた順序に依存していることを発見しました。これにより、solve()とsolve_poly_system()の両方が次のように終了しました。

NotImplementedError: only zero-dimensional systems supported (finite number of solutions)

入力ファイルの読み取り順序を変更したとき。

具体的には、Hadoop1.0.2ストリーミングを使用しています。それぞれが特定の異なるコンテンツと構造を持ついくつかのファイルを読んでいます。この合計コンテンツは、sympyモジュールで操作した後の線形システムを提供します。ここに問題がありました。

Hadoop Streamingは、特定の順序で入力ファイルを読み取りません。このため、異なるファイルを一緒に解析する場合は注意が必要です。私の「パーサー」は、特定の順序で入力ファイルを期待していました。順序が異なる場合、ファイルの操作によって解決するシステムが間違っていました。このため、solve()、solve_poly_system()はNotImplementedErrorを発生させました。この問題の解決策は、私の「パーサー」を修正することでした。

最後に、solve_poly_system(seq、* gens、** args)の引数は、私が使用した方法からのものです。

  • seq =シーケンス、0に等しい方程式のシーケンス。私の場合、シーケンスはリストでした。

  • * gens =私の場合、変数のリストでした。これらの変数に従って、私は自分のシステムを解決しました。

于 2012-09-11T09:53:16.027 に答える