1

4 次方程式ソルバーの実装で何が問題になっていますか? これがGitHub
の私のコードです。私はこれに従いました: http://www.1728.com/quartic2.htm 実際の実装は、モニック poly を作成する 271 行目から始まります。

4 つの実根を持つ多項式で試してみると、正常に動作します (たとえば、3x^4 + 6x^3 - 123x^2 - 126x + 1,080)。

ありがとう、
ルービック

PS__quarticまだ開発中のため、関数を呼び出しました

4

3 に答える 3

4

それがあなたの3次ソルバーに問題がない場合(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)の場合、正しい float 除算値の 3.375 ではなく、int 除算によって 3 に等しくなります。おそらく、これを修正する最善の方法は、計算を開始する前に a、b、c、d、および e を float に変換することです。f と g のすべての計算の後の float への変換は、この修正を行った後は本当に不要であり、現在はあまり役に立ちません。

この分割問題とその歴史の詳細については、次を参照してください。

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

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

于 2011-01-18T20:02:45.433 に答える
1

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

あなたは JavaScript でプログラムを書いていないと思います。私は喜んでお手伝いします(できる場合)。

于 2011-01-21T07:05:00.137 に答える
1

立方根ソルバーは機能しますか? 四次ソルバー内で使用するために、単一の実根のみを返すように削減する必要があります。最初に 3 次ソルバーで多数のテスト ケースを実行します。これには、1 と 3 の実根を持つ方程式が含まれます。これが検証された後でのみ、4 次ソルバーのデバッグを試みる必要があります。

于 2011-01-18T19:51:36.140 に答える