質問

Quartic Equation Solverの実装で何が問題になっていますか?
これが私のコードです githubで. 。私はこれに従いました: http://www.1728.com/quartic2.htm
実際、実際の実装は271行目から始まり、そこでモニックポリを作成します。

4つの実際の根を持つ多項式で試してみると、正常に機能します(たとえば、3x^4 + 6x^3-123x^2-126x + 1,080で)、そうでなければ間違った根を与えます。

ありがとう、
ルービック

PS私は関数を呼びました __quartic まだ開発中です

役に立ちましたか?

解決

それがあなたの立方ソルバーに問題がない場合(Phkahlerが提案したように)、私はそれがこれらの行のINT分裂の場合であると賭けています:

f = float(c - (3*b**2 / 8))
g = float(d + (b**3/ 8) - (b*c / 2))
h = e - (3*b**4 / 256) + (b**2 * c / 16) - (b*d / 4)

3.0未満のPythonのバージョンを使用していて、除外を輸入していない場合 __future__, 、次に、ここで大きな問題を抱えています。たとえば、b = 3の場合、 (3*b**2/8) 正しいフロート分割値3.375ではなく、INT部門ごとに3に等しくなります。おそらくこれを修正する最良の方法は、計算を開始する前にA、B、C、D、Eをフロートに変換することです。 FとGのすべての計算後のフローチへの変換は、この修正を行った後、本当に不要です。

この部門の問題とその歴史の詳細については、以下を参照してください。

http://www.python.org/dev/peps/pep-0238/

http://python-history.blogspot.com/2009/03/problem-with-integer-division.html

他のヒント

あなたの立方体のルートソルバーは機能しますか? Quarticソルバー内で使用するための単一の実際のルートのみを返すように減らす必要があります。 1本と3個の実際のルーツの両方の方程式を含む、最初にCubicソルバーで多くのテストケースを実行します。これが確認された後にのみ、Quarticソルバーをデバッグしようとする必要があります。

おそらく私は助けることができます。私が書いた プログラムと四分位方程式を解くための手順.

私はあなたがJavaScriptでプログラムを書いていないと思います。私は喜んで助けてくれるでしょう(私ができれば)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top