• 締切済み

四次方程式をC言語を用い解きたいです.

C言語は一応一通りのことは理解できます. 四次方程式を数値解析もしくは解の公式を用いた解法をプログラムに起こしたいです. 過去の質問も見てみましたがしっくりくるものがありませんでした. みなさんにオススメプログラムがございましたら, 教えていただきたいです. よろしくおねがいします. 四次方程式ではなくn次元でも結構です. 言語はCでお願いします.

みんなの回答

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.3

まず 4次方程式に限定すれば解の公式があるから, それをベタに実装すればいいだけ. ただし 4次方程式を (解の公式で) 解くためには「3次方程式を解く」必要があるため, それも作らなきゃならない. この方針そのものに疑問の余地はないと思う. ついでにいうと実係数 4次多項式は 2個の実係数 2次多項式の積に必ず因数分解できるため, 複素数は最後の段階 (2次方程式を解くところ) までは無視しても構わない. が, それは数値計算的にはうれしくなく, 一般の代数方程式を解きに行ったほうがましだったような気がする. 当然だけどこっち方面でも探せば山のように資料は出てくるはずだし, 実際にはライブラリもあるから「代数方程式を解く」ことに関してはわざわざ自分で組む必然性もなかったりする.

epi_suke
質問者

お礼

遅くなりました。 回答ありがとうございます。 手を抜こうとしてはいけませんね・・・(笑) この辺のことは分かっていたのですが、 どうも自分で作れそうになくて。 丁寧な説明ありがとうございました。 参考にさせていただき自分でトライしてみたいと思います。

回答No.2

方程式を計算機で解くっていうのはニュートン法などで実数解を求めることだと思っているんだけど、それじゃだめなの? 5次以上でも解けると思うんだけど(初期値の選び方によっては解けないこともある) ただし、奇数次なら少なくとも一つの実数解はあるだろうけど、偶数次では一つも実数解が無いこともある。 確かに4次方程式までは解の公式がある。5次以上に解の公式はない。 検索したらこんなのをみつけた。 高次方程式の解の公式 http://www.imasy.or.jp/~yotti/equation.html C言語ができるのならば、これを自分でプログラムしたらいかが? 「プログラムに起こしたいです」だから人からプログラムを教えてもらっちゃだめでしょ。 ところで > さらに,四次だと複素数が出てくると思うのですが,それに対応してなかったりと・・・ とあるけど、二次方程式でも複素数解は出てくるんだけど!? x^2 + 1 = 0

epi_suke
質問者

お礼

遅くなってすみません. 回答ありがとうございました! 目的は4次方程式の解が欲しいのではなく、 それをツールにしてさらに高度な問題を解こうとしていたので, 手軽な関数がないかなぁ♪ なんて思っていたのです。 まぁ手を抜こうとしていたのは確かですね。 おっしゃるとおりです。 ご指摘ありがとうございました。 自分で頑張ってみます。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

「n次元」ってなんだろう. 「しっくりくるものがありませんでした」ってことは, 「なかった」わけじゃないんだよね. どういうものがあって, そのなにがどう「しっくりこなかった」んですか?

epi_suke
質問者

補足

回答ありがとうございます! 言葉足らずですみませんm(_ _)m 私が求めていたのは四次方程式を解くことができるC言語のプログラムでして, 探したのですが二・三次のプログラムしかないのです. さらに,四次だと複素数が出てくると思うのですが,それに対応してなかったりと・・・ いろいろと穴がありまして・・・ n次というのは, 一つのプログラムでどの次数も解析できるということです.

関連するQ&A

  • 閾値付き拡散方程式

    n次元(1次元限定でも可)拡散方程式 ∂u/∂t = ∇^2 u において、u<σとなったら、u=0という条件をつけます。 0. この方程式は数学的に意味があるでしょうか?   つまり、デルタ関数とか弱解といった分野的に、という意味です。 1. この方程式は解析的に解けるでしょうか? 2. 各種の数値解法を適用した場合、   数値解は格子のスケールに依存しないでしょうか?

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

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

  • C言語プログラミングで困っています。助けて下さい。

    C言語プログラミングで困っています。助けて下さい。 課題1-1: 実数 a と実数 b を入力すると、一次方程式ax + b = 0 の解を求めるプログラムを作る 課題1-2: 1-1 で作成したプログラムについて、さらにa として1が入力されたとき、方程式の表示       部分が1x + 3 = 0ではなくx + 3 = 0となるようにせよ 課題1-3: 1-2 で作成したプログラムについて、さらにb として0 や負の数が入力されたとき、方程式     の表示部分が2x = 0 や2x – 3 = 0となるようにせよ 課題1-4: 1-3 で作ったプログラムについて、さらにa の値として0が入力された場合、「解けません」     と表示するようにせよ 課題1-5: 係数 a, b, c を入力すると、 2次方程式ax2 + bx + c =0の解を表示するプログラムを作     れ ※ 1-2 ~ 1-4 のような機能を盛り込む ※ a が0の場合には、先に作った1次方程式のプログラムが動く という問題です。最終的にこれらを一つのプログラムにしてください。判別式や解の公式、ルート√などを使ってよろしくお願いします。C言語でお願いします

  • 三次方程式

    三次方程式の解を求める方法を探しているのですが、 カルダノの公式だと解が実数解の場合にも、虚数解がでてしまうらしいので、カルダノの公式以外で実数解を求める方法はないのでしょうか?(実数解のみを持つ方程式でカルダノの公式を用いると実数解と虚数解で解が5つでるということがよくわかりませんが・・・)  自分はC言語でプログラムをしたいので、高校数学のように最初一つは適当に代入するという方法は使いたくありません。 よろしくお願いします。

  • 3次・4次方程式の解の公式

    一般3次方程式と4次方程式の解の公式を教えてください。解の公式が出ているサイトのURLでも結構です。  ただし、カルダノの解法など、解法を尋ねているのではありません。あくまで最終的な解の公式を見たいのです。 おそらくかなり巨大なものになるらしく、教科書などには出ていません。それを見てみたいわけです。  よろしくお願いいたします。

  • 3次方程式の解法

    高校で数IIを勉強している者です。 この間、3次方程式「ax^3+bx^2+cx+d」のa=1の場合の解法を習いました。この多項式の因数を探していって割り算をして因数分解して出てきた1次式と2次式を解くというものでしたが、これがa≠1,0だったらどうやって解くのでしょうか? また、教科書に「n次方程式にはn個の解がある」と書いてありましたが、これ以上の4次方程式や5次方程式の解法があるのでしょうか?それに、2次方程式にあった解の公式は3次以上の方程式にも存在するのでしょうか?できればこういったことも知りたいです。 たくさん質問してしまって申し訳ありません。お時間のあるときで構わないのでどうかご回答よろしくお願いします。

  • 連立一次方程式を解くプログラム

    すこし煩雑な(21×11です)の連立一次方程式を解くプログラムを作りたいのですが 何か良い文献、HPなどは無いでしょうか? いろいろなものを見ましたが大体縦横が同じ(n次元?)の 計算のヒントみたいなのしか見つけれませんでした。 プログラムはほとんどやったことが無いので、 ソースなどが公表されていてそれをちょっと書き換えれば 目的のものがつくれるというのが理想ですが・・・。 解法はガウスジョルダンとかガウスサイデル あるいは他にもっとよいものがあればそちらで構いません。 また、連立一次方程式のちゃんとした答え(言い方悪いですね)が求まらない場合、 近似解を算出することになると思うのですが これはどういった基準で「解」とされるのでしょうか? 計算の反復回数とかでしょうか? まとまりのない質問ですがよろしくお願いします。 何かあれば補足をお願いします。

  • C言語 プログラミング

    C言語プログラミングで分からない問題があるのですが、 nを入力して、0~nまでの数値のうち、 (1)偶数のみ足しなさい (2)3の倍数のみ足しなさい の2つのプログラムがわからいのですがどなたか教しえていただけませんか?

  • 四次方程式 解の公式 一般解

    こんにちは。 弱塩基と強酸の中和滴定をシミュレートをして[OH-]の濃度と滴定量のグラフを書かせたいと思っています。そのためには4次方程式の解を求めなければならないらしいのです。HP等で検索するといろいろ解法(四次方程式の)が載っているのですが私には難しすぎてなかなか理解できません。たれか助けてください。欲しい回答は 四次方程式 X^4+a*X^3+b*X^2+c*X+d=0の一般解です。 できれば二次方程式の解の公式のような明解な一般解の形で示していただけるとありがたいです。上式に使っているa,b,c,dだけであらわした一般解がいいです。 以上どなたか答えてください。

  • 微分方程式

    すいません。 微分方程式 dx/dt=y dy/dt=t+0.1-x-(x-t)^{3} を解ける人いたら解いてもらえませんでしょうか?(数値解法でない方法で) 真解が知りたいです。 初期値は適当な値でいいので、t=0,x=4,y=1 でお願いします。 そもそも、これって真解求まるのかすらわかりません。 今、プログラムの課題で上記の微分方程式をおいらー法で解くプログラムを作ってるんですが、真解を求めて、その誤差を測りたいと思っている次第です。 よろしくお願いします。

専門家に質問してみよう