![見出し画像](https://assets.st-note.com/production/uploads/images/150670146/rectangle_large_type_2_cf2db3bbb4a0a550a2d7b9e7fbafa47e.jpeg?width=1200)
高校数学10分プログラミング(数学Ⅰ編 1.2次関数)13日目「2次関数のグラフと2次方程式の実数解の関係」解説
マガジンリスト > 数学Ⅰ編 1.2次関数 > 13日目 解説
本日の課題、おつかれさまでした。
2次関数のグラフの$${x}$$軸との共有点と2次方程式の実数解との関係を確かめることができたでしょうか。
解答例
2次関数$${y=ax^2+bx+c}$$のグラフを描き、一方で2次方程式$${ax^2+bx+c=0}$$の実数解を求めて$${x}$$軸上にプロットするプログラムは以下のソースコード3のようになります。なお、ソースコード3は、2次方程式(1)$${x^2-2x=0}$$を例に作成しています。
// 2次関数y=ax^2+bx+cのグラフのx軸との共有点と
// 2次方程式ax^2+bx+c=0の実数解との関係
void setup(){
size(500,500);
noLoop();
float x_range = 10.0; // x軸の表示範囲 -x_rangeからx_rangeまで
float y_range = 10.0; // y軸の表示範囲 -y_rangeからy_rangeまで
setAxes(x_range, y_range); // 座標軸の準備
noFill();
stroke(0,0,0);
// グラフの定義域
float x_l = -x_range; // 定義域の左端
float x_r = x_range; // 定義域の右端
int plot_num = 200; // グラフを描くための頂点の個数
// 2次関数の係数
float a = 1.0;
float b = -2.0;
float c = 0.0;
// グラフを描画
float x, y; // 関数の座標
float X, Y; // キャンバス上の座標
beginShape();
for(int i=0; i<=plot_num; i++){
x = x_l + (x_r - x_l) / plot_num * i; // 関数のx座標
y = quadraticfunction(a, b, c, x); // 関数の値
// キャンバス上の座標位置に換算
X = width / 2.0 / x_range * x;
Y = height / 2.0 / y_range * y;
vertex(X, Y);
}
endShape();
// 判別式
float D = b*b-4.0*a*c;
stroke(255,0,0);
strokeWeight(5);
// 2次方程式の解の個数に応じて、その実数解をx軸上にプロットする
if( D > 0 ){
float x1, x2;
float X1, X2;
x1 = (-b + sqrt(D))/2.0/a;
x2 = (-b - sqrt(D))/2.0/a;
// キャンバス上の座標位置に換算
X1 = width / 2.0 / x_range * x1;
X2 = width / 2.0 / x_range * x2;
point(X1, 0.0);
point(X2, 0.0);
} else if( D == 0 ){
float x1;
float X1;
x1 = -b/2.0/a;
// キャンバス上の座標位置に換算
X1 = width / 2.0 / x_range * x1;
point(X1, 0.0);
} else {
println("実数解を持たない");
}
}
// 2次関数の一般形
float quadraticfunction(
float a, // 2次の係数
float b, // 1次の係数
float c, // 定数項
float x
){
return a*x*x + b*x + c;
}
ソースコード3 2次関数のグラフと2次方程式の実数解をプロットするプログラム
このソースコード3を、スケッチ「drawQuadraticFunctionwithCommonPoint」のテキストエディタ部分に書いて実行すると、図1のように、コンソールに課題(1)の結果として2次関数のグラフと$${x}$$軸との2つの交点に2次方程式の2つの実数解がプロットされていることがわかります。
![](https://assets.st-note.com/img/1723063179287-Iwcr1C7UXN.png)
また、ソースコード3の2次方程式の係数の部分を課題(2)に合わせて、$${a=1, b=-2, c=1}$$として実行すると、図2のように、2次関数のグラフと$${x}$$軸との1つの交点に2次方程式の1つの実数解(重解)がプロットされ、課題(3)に合わせて、$${a=1, b=-2, c=2}$$として実行すると、図3のように、2次関数のグラフと$${x}$$軸との交点はないので2次方程式も解を持たずプロットされないことがわかります。
![](https://assets.st-note.com/img/1723063422816-87DNuocfVi.png)
![](https://assets.st-note.com/img/1723063458388-eDzIuuZwJZ.png)
2次関数のグラフの$${x}$$軸との共有点と2次方程式の実数解との関係については、記事『高校数学をプログラミングで解く(数学I編)「1-6 グラフと2次方程式」』で扱っていますので、そちらも一度読んでおいてください。
本日は以上です。
明日は、2次不等式について考えていきたいと思います。
明日もよろしくお願いします。
※今回の課題とその解答例について質問や疑問がある方は、本記事の下部にあるコメント欄からお願いします。
MK’s papa
この記事が気に入ったらサポートをしてみませんか?