![見出し画像](https://assets.st-note.com/production/uploads/images/150669882/rectangle_large_type_2_3da233c8e1a8882df65accbbf42bfb49.jpeg?width=1200)
高校数学10分プログラミング(数学Ⅰ編 1.2次関数)12日目「2次方程式の実数解を求める」解説
マガジンリスト > 数学Ⅰ編 1.2次関数 > 12日目 解説
本日の課題、おつかれさまでした。
2次方程式$${ax^2+bx+c=0}$$の実数解を求めるプログラムを作成することができたでしょうか。
解答例
2次方程式$${ax^2+bx+c=0}$$の実数解を求めるプログラムは以下のソースコード2のようになります。なお、ソースコード2は、2次方程式(1)$${x^2-2x=0}$$を例に作成しています。
// 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 ){
float x1, x2;
x1 = (-b + sqrt(D))/2.0/a;
x2 = (-b - sqrt(D))/2.0/a;
print("異なる2つの実数解をもつ: ");
println(x1, x2);
} else if( D == 0 ){
float x1;
x1 = -b/2.0/a;
print("ただ1つの実数解(重解)をもつ: ");
println(x1);
} else {
println("実数解を持たない");
}
}
ソースコード2 2次方程式の実数解を求めるプログラム
このソースコード2を、Processingの開発環境ウィンドウを開いて(スケッチ名を「solveQuadraticEquation」としています)、テキストエディタ部分に書いて実行すると、図1のように、コンソールに課題(1)の解として「異なる2つの実数解をもつ: 2.0 0.0」と表示されます。
![](https://assets.st-note.com/img/1722972114573-3H3VWUDRTX.png?width=1200)
また、ソースコード2の2次方程式の係数の部分を課題(2)に合わせて、$${a=1, b=-2, c=1}$$として実行すると、図2のように、コンソールに課題(2)の解として「ただ1つの実数解(重解)をもつ: 1.0」と表示され、課題(3)に合わせて、$${a=1, b=-2, c=2}$$として実行すると、図3のように、コンソールに課題(3)の解(実数解はなし)として「実数解を持たない」と表示されます。
![](https://assets.st-note.com/img/1722972294213-i1DefFReAU.png?width=1200)
![](https://assets.st-note.com/img/1722972114580-IuYaJIIdJ2.png?width=1200)
2次方程式の実数解を求めることについては、記事『高校数学をプログラミングで解く(数学I編)「1-5 2次方程式」』で扱っていますので、そちらも一度読んでおいてください。
本日は以上です。
明日は、2次関数のグラフと2次方程式の実数解の関係を考えていきたいと思います。
明日もよろしくお願いします。
※今回の課題とその解答例について質問や疑問がある方は、本記事の下部にあるコメント欄からお願いします。
MK’s papa
この記事が気に入ったらサポートをしてみませんか?