- ベストアンサー
三次方程式の解法について
三次方程式を解くプログラムを作成したいです。 三次方程式a*x3+b*x2+c*x+d=0を解くのに, カルダノの公式がありますが,解が全て実数解であるとしても, 計算過程で虚数が存在することを考えなければなりません。 しかし,a=1で解が実数解の場合, 計算過程で虚数を考えなくても,簡単に実数解を求める ことができる(エクセルで簡単に)と聞きました。 ニュートン法等の収束計算を用いる方法ではないようです。 このような方法をご存知でしたら,詳しく教えてください。 よろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
その他の回答 (3)
- stomachman
- ベストアンサー率57% (1014/1775)
三次に限らず多項式f(x)の零点を計算する話にします。 その目的でニュートン法を使う場合、式を大幅に簡単にできるので、見かけはニュートン法っぽくなくなります。 また「二次因数分解」を使うこともできます。すなわち多項式f(x)が実係数の二次式(x^2-ux-v)で割り切れるようにu,vを決定する。この際にニュートン法を利用しますが。 収束が遅くてあまり実用的とは言えないけれども、「商差法(Quotient-difference method)」てのがあり、これはニュ-トン法を全然使いません。
- info22
- ベストアンサー率55% (2225/4034)
>計算過程で虚数を考えなくても,簡単に実数解を求める ことができる(エクセルで簡単に)と聞きました。 参考URLにEXCELによる具体的な実数解の求め方が掲載されています。 3次方程式のソルバー(解くためのソフト)は標準でインストールされていないので、OFFICEのCD-ROM中にあるソルバーをインストールしないといけないようです。参考URLに詳細が載っていますのでご覧下さい。
- Tacosan
- ベストアンサー率23% (3656/15482)
a = 1 のときに簡単に解けるんだったら, a が 1 でないときでも簡単に解けるはず (全体を a で割るだけ, だから) です. でもって, カルダノによる三次方程式の解法では, 「3個の異なる実数解」になるときには必ず「虚数の 3乗根」が出てきます. 「不尽根」というやつです. 「計算過程で虚数が存在することを考えなければなりません」よりもっと強い結果です.
お礼
この方法なら簡単に実数解だけを求められるみたいですね。 有難うございます。