見出し画像

高校数学10分プログラミング(数学Ⅱ編 1.複素数と方程式)3日目「2次方程式の解の個数を数える」解説

マガジンリスト > 数学Ⅱ編 1.複素数と方程式 > 3日目 解説

本日の課題、おつかれさまでした。

2次方程式の解の個数を数えるプログラムを作成することができたでしょうか。

解答例

課題(1)について、判別式を用いて2次方程式$${ax^2+bx+c=0}$$の解の個数を求めるプログラムはソースコード2のようになります。

// 2次方程式の解の個数を判別式で求める
void setup(){

  // 2次方程式ax^2+bx+c=0の係数
  float a = 1.0;
  float b = -2.0;
  float c = 0.0;  
  
  // 判別式
  float D = b*b-4.0*a*c;
  
  // 2次方程式の解の個数を分類
  if( D > 0 ){
    println("異なる2つの実数解をもつ");
  } else if( D == 0 ){
    println("ただ1つの実数解(重解)をもつ");
  } else {
    println("異なる2つの虚数解をもつ");
  }   
}

ソースコード2 2次方程式$${ax^2+bx+c=0}$$の解の個数を求めるプログラム(完成版)

開発環境ウィンドウを開いて(スケッチ名を「discriminantQuadraticEquation」としています)、ソースコード2をそのテキストエディタ部分に記述して、実行してみると、コンソールに

異なる2つの実数解をもつ

と出力されます(図1)。これは、課題(1)の2次方程式の係数が$${a=1, b=-2, c=0}$$となっているため、$${D=4}$$となり、結果として「異なる2つの実数解をもつ」という結果になります。

図1 課題(1)の結果

また、ソースコード2の2次方程式の係数の部分を課題(2)に合わせて、$${a=1, b=-2, c=1}$$として実行すると、$${D=0}$$となるので、図2のように、コンソールに課題(2)の解の個数の算出結果として「ただ1つの実数解(重解)をもつ」と表示され、課題(3)に合わせて、$${a=1, b=-2, c=2}$$として実行すると、$${D=-4}$$となるので、図3のように、コンソールに課題(3)の解の個数の算出結果として「2つの異なる虚数解をもつ」と表示されます。

図2 課題(2)の結果
図3 課題(3)の結果


本日は以上です。
明日は、2次方程式の解を求めるプログラムを考えます。

明日もよろしくお願いします。

※今回の課題とその解答例について質問や疑問がある方は、本記事の下部にあるコメント欄からお願いします。

MK’s papa

この記事が気に入ったらサポートをしてみませんか?