[C言語]2次方程式を解く方法をご紹介します!

2jihouteisiki-001

こんにちは。Takuya.B(@TB_IQ)です。

研究で2次方程式を解く機会がありました。もちろん中学3年生で習うような”x=3,4″のようなシンプルな解ではありません。C言語で2次方程式を解くプログラムを作りたい方の為に方法をご紹介します!

スポンサーリンク

2次方程式を解くには”解の公式”を使う!

2次方程式を解くには一般的に因数分解をする方法がありますが、プログラムに解かせる為にはおなじみ“解の公式”を使います。

2jihouteisiki-001

解の公式にa,b,cの値をぶっ込んでやれば、解が得られるわけですが…

2次方程式の解は3種類に分けることができます。

  1. 異なる実数解
  2. 重解
  3. 異なる虚数解

これら3種類はルートの中身が正なのか負なのか0なのかによって判別することができます。そのためルートの中身の部分は“判別式”と呼ばれます。

実際のプログラム

サンプルコード

異なる虚数解に関しては別途”real”,”imag”を宣言していますが、便宜上宣言しているに過ぎませんので、kai1,kai2に置き換えた方がスッキリします。

出力した結果は以下のようになります。

2jikai

研究ではプログラムで積分計算をさせることが多いのですが、まさか2次方程式を解くとは思いませんでした…。一度、作っておくと便利ですので参考までに。

スポンサーリンク

まとめ

C言語で2次方程式を解くためのまとめです。

  1. 解の公式を使う
  2. 判別式をif文で条件分岐(正・0・負)

まとめてみるとシンプルですね。