見出し画像

高校数学10分プログラミング(数学Ⅱ編 1.複素数と方程式)5日目「解と係数の関係の問題1」解説

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

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

解と係数の関係が成り立っていることが確認できたでしょうか。

解答例

課題の式の値を計算するプログラムはソースコード2のようになります。

// 解と係数の関係1
void setup(){
  
  // 2次方程式の係数
  float a = 2.0;
  float b = -2.0;
  float c = 1.0;
  
  // 2次方程式 2x^2-2x+1=0の解
  float x_r = -b/2.0/a;
  float x_i = abs(sqrt(abs(b*b-4.0*a*c))/2.0/a);
  PVector alpha = new PVector(x_r, x_i);
  PVector beta = new PVector(x_r, -x_i);
 
  // (1) a1 = alpha^2 beta + alpha beta^2
  PVector a1 = c_sum(c_prod(c_prod(alpha,alpha),beta),c_prod(alpha,c_prod(beta,beta)));
  println("(1)"+ a1.x + "+" + a1.y + "i" );
 
  // (2) a2 = alpha^2 + beta^2
  PVector a2 = c_sum(c_prod(alpha,alpha),c_prod(beta,beta));
  println("(2)"+ a2.x + "+" + a2.y + "i" );

  // (3) a3 = (alpha - beta)^2
  PVector a3 = c_prod(c_sub(alpha,beta),c_sub(alpha,beta));
  println("(3)"+ a3.x + "+" + a3.y + "i" );

  // (4) a4 = (1 + alpha)(1 + beta)
  PVector unit = new PVector(1.0,0.0);
  PVector a4 = c_prod(c_sum(unit,alpha),c_sum(unit,beta));
  println("(4)"+ a4.x + "+" + a4.y + "i" );

  // (5) a5 = alpha^3 + beta^3
  PVector a5 = c_sum(c_prod(c_prod(alpha,alpha),alpha),c_prod(beta,c_prod(beta,beta)));
  println("(5)"+ a5.x + "+" + a5.y + "i" );

  // (6) a6 = beta^2/alpha + alpha^2/beta
  PVector a6 = c_sum(c_div(c_prod(beta,beta),alpha), c_div(c_prod(alpha,alpha),beta));
  println("(6)"+ a6.x + "+" + a6.y + "i" );

}

// 2つの複素数の和を計算する関数
PVector c_sum(
  PVector c1,
  PVector c2
){
  PVector sum = c1.copy().add(c2);
  return sum;
}
  
// 2つの複素数の差を計算する関数
PVector c_sub(
  PVector c1,
  PVector c2
){
  PVector sub = c1.copy().sub(c2);
  return sub;
}
  
// 2つの複素数の積を計算する関数
PVector c_prod(
  PVector c1,
  PVector c2
){
  PVector prod = new PVector();
  prod.x = c1.x * c2.x - c1.y * c2.y;
  prod.y = c1.x * c2.y + c1.y * c2.x;
  return prod;
}

// 2つの複素数の商を計算する関数
PVector c_div(
  PVector c1,
  PVector c2
){
  PVector div = new PVector();
  div.x = (c1.x * c2.x + c1.y * c2.y)/(c2.x*c2.x+c2.y*c2.y);
  div.y = (-c1.x * c2.y + c1.y * c2.x)/(c2.x*c2.x+c2.y*c2.y);
  return div;
}

ソースコード2 課題の式の値を計算するプログラム(完成版)

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

(1)0.5+0.0i
(2)0.0+0.0i
(3)-1.0+0.0i
(4)2.5+0.0i
(5)-0.5+0.0i
(6)-1.0+0.0i

と出力されます(図1)。

図1 解 α, β を代入して得られる結果

一方、解と係数の関係から$${\alpha + \beta = -(-2)/2=1, \alpha \beta = 1/2}$$が得られるので、
(1) $${\alpha^2 \beta + \alpha \beta^2 = \alpha \beta(\alpha + \beta) = 1/2 \cdot 1 = 1/2}$$
(2) $${\alpha^2+\beta^2 = (\alpha + \beta)^2 - 2 \alpha \beta = 1^2-2\cdot(1/2) = 0 }$$
(3) $${(\alpha - \beta)^2 = (\alpha + \beta)^2 - 4 \alpha \beta = 1^2 - 4 \cdot (1/2) = -1}$$
(4) $${(1+\alpha)(1+\beta) = 1 + (\alpha+\beta) + \alpha \beta = 1+1+1/2= 5/2}$$
(5) $${\alpha^3+\beta^3 = (\alpha + \beta)^3-3\alpha \beta (\alpha+\beta) = 1^3 -3 \cdot (1/2) \cdot 1 = -1/2}$$
(6) $${\frac{\beta^2}{\alpha}+\frac{\alpha^2}{\beta} = \frac{ \alpha^3+\beta^3}{\alpha \beta} = (-1/2)/(1/2) = -1}$$
と得られます。

これら手計算の結果とプログラムで計算した結果が一致しており、解と係数の関係が成り立っていることがわかります。


本日は以上です。
次回も、解と係数の関係に関する問題を考えます。

次回もよろしくお願いします。

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

MK’s papa

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