• ベストアンサー

三次方程式

kony0の回答

  • ベストアンサー
  • kony0
  • ベストアンサー率36% (175/474)
回答No.4

Cでプログラムかくなら、係数を引数として解を戻り値とする関数をmain関数の外枠に書いちゃえば、プログラムが長いかどうかは問題ではないでしょう。 で、3次方程式をプログラムで解くのに、カルダノの公式以外のものを使いたいなら、#1さんも言っているニュートン法はだめなのでしょうか? [為念ですが、f(x)=0の解を、x(n+1) = x(n) - f(x(n))/f'(x(n))という反復公式で求める手法です。] プログラムは間違いなくシンプルでしょうし、3次方程式程度であれば、初期点を妥当な選び方してあげれば数回の反復で充分な精度の解が得られるでしょうから、案外カルダノの公式でごつい計算するより速いかもしれません。 ところで、3次方程式の実数解は、(重解は複数回数えると)1つor3つありますが、3つある場合、特定(たとえば最小)の解を求めたいのか、任意の1つでよいのか、それとも3つとも求めたいのか、どれなんでしょう? それによって、ちょっと初期点の選び方の「まじめさ」が変わってくるでしょうね。

atussy
質問者

お礼

返事が遅れてもうしわけありません 回答ありがとうございます とりあえず,Newton法でプログラム作ってみました。 求めたい解ですが,3つ全部求めたいです。 たしかに,その場合,どう初期値を選べばよいか わからないです

関連するQ&A

  • 三次方程式の解法について

    三次方程式を解くプログラムを作成したいです。 三次方程式a*x3+b*x2+c*x+d=0を解くのに, カルダノの公式がありますが,解が全て実数解であるとしても, 計算過程で虚数が存在することを考えなければなりません。 しかし,a=1で解が実数解の場合, 計算過程で虚数を考えなくても,簡単に実数解を求める ことができる(エクセルで簡単に)と聞きました。 ニュートン法等の収束計算を用いる方法ではないようです。 このような方法をご存知でしたら,詳しく教えてください。 よろしくお願いいたします。

  • 2次方程式の解の表示

    次のプログラムが出来ません。 二次方程式の係数a,b,cを順に実数で入力したとき、2次方程式の解を出力。虚数解はそれらしく表示。 単純に考えると解の公式に当てはめる、というものですが、きれいに表示しようとすると、かなりの手間になります。 なんとか効率よく表示まで行える方法はありませんか? Cで簡単な関数のみで出来ると思います。

  • 二次方程式で実数解が無いとは解が無いとは言ってない

    y=ax^2+bx+cの二次方程式の話ですが、解の公式のb^2-4acでマイナスの数になるとルートが取れなくて「実数解なし」ってなりますよね。 でも、実数解が無いって言ってるだけで本当は解があるのかなぁ・・・、と疑問です。 なんだかiとかって虚数?があるのは知ってますが、そういうので何か実数ではない解が出せるのでしょうか。仮に出せるとして、それはいったいどういう意味を持つのですか。 数学は中3~高1レベルだと思いますm(_ _)m 計算方法はそんなに理解できないと思うので本質が気になっています。解とは何?とか。

  • 三次方程式を解くプログム

    C言語で三次方程式を解くプログラムを作ろうと思っています。 カルダノの公式を使って一発でだそうと思うのですが、なかなかうまくいきません。 どのように作ればようでしょうか? complex.hがインクルードできない環境(くわしくはわからないのですが)なので、自分で実部と虚部をもつ構造体を作る方法を考えています。

  • 3次方程式の解の公式を教えて下さい

    数学の3次式の因数分解の授業で因数定理を習いました。 しかし数字を直感で代入して求めることがどうしても納得出来なくて数学の先生に聞いたら「3次方程式の解の方程式に当てはめれば納得出来ると思うよ」と言われました。 その時は時間がないのと、高校数学では難しいと言われ3次方程式の解の公式を教えてもらうことは出来ませんでした。 なので3次方程式の解の公式が知りたいです! わかる方教えて下さい。

  • Mathematicaでの連立方程式

    MathmaticaでNSolveを用いて,連立方程式を解こうとしています. 得られた解が実数の場合,虚数の場合の2つでIf文による条件分岐を行いたいです. 例えば,  解が実数の時,値をファイルに出力する  解が虚数の時,値をファイルに出力しない このとき,解が実数であるか,虚数であるかをプログラムで判断するにはどうすれば良いでしょうか? 目視の場合は,iがあるか,ないかで判断できるのですが,プログラムとして実施する方法を教えて頂きたいです. よろしくお願い致します.

  • 微分方程式について

    2階線形同次微分方程式を解く場合、方程式が2実数解、重解、2虚数解のどれを持つかによって、一般解は異なります。 しかし、微分方程式をラプラス変換で解けば、一般解を求めるための公式は気にしなくともよいのでしょうか。

  • 高次方程式

    3次方程式(x-a)(x^2+bx+c)=0(a,b,cは実数の定数)の3つの解のうち、実数解と1つの虚数解の和が10/(1+3i)である。 (1)10/(1+3i)をp+qiの形に表せ。(p,qは実数) (2)a=2のとき、b,cの値を求めよ。 (3)3つの解の平方の和が4となるようなaの値を求めよ。 (1)は分母のiを消して1-3i (2)はa=2を代入して複素数の相当、解と係数の関係でb=2,c=10と答えを求めました が、(3)が分からないので教えてください。

  • 二次方程式の解の公式について。

    高校の教科書には二次方程式の解の公式が出来るまでには 何年もかかった。 という感じで、現在知られているような形になるまでの 色々な形が載っていました。 高校の時は、「数学者って凄いなぁ、きっと試行錯誤で何年もかけて やっと今の二次方程式の解の公式にたどり着いたんだろうな」 と思っていました。 ですが、この間ふと、ax^2+bx+c=0 (aは0でない) をいじくっていたら、簡単に(高校の数学レベルで、)解の公式が でてきました。 そこで質問です。 本当に当時の数学者は解の公式を出すのに何年もかかったのですか? それとも、数学的にきっちりと解の公式を出すためには、 高校レベルの数学じゃない、きちっとした証明が必要なんですか? (高校レベルの数学とは、二次方程式から素直に(x=)の形に 持っていっただけのものです。)

  • C言語 2次方程式を解くプログラムについて

     学校でC言語を使って、実数解をもつ簡単な2次方程式を解くプログラムを作れという課題がでました。まだ初心者で何をどうしたらいいかわからない状態です。簡単なプログラムを作ってくださいm(__)m