見出し画像

高校数学10分プログラミング(数学Ⅱ編 1.複素数と方程式)2日目「複素数の四則演算を利用する」

マガジンリスト > 数学Ⅱ編 1.複素数と方程式 > 2日目 課題

おはようございます。

本日は、高校数学10分プログラミング(数学II編 1.複素数と方程式)の2日目です。

本日の課題は、複素数の四則演算を利用するプログラムを作成することです。


課題

$${x=-2+3i}$$、$${y=-2-3i}$$のとき、次の式の値を求めて、結果をコンソールに出力するプログラムを作成してください。

$$
(1) x^2+y^2, \ \ (2) x^3+y^3, (3) \ \ \frac{y}{x}+\frac{x}{y}
$$


ヒント

今回は、課題『高校数学10分プログラミング(数学Ⅱ編 1.複素数と方程式)1日目「複素数の四則演算を行う」』で作成した複素数の四則演算を行う関数 c_sum, c_sub, c_prod, c_div を再利用します。今回の複素数の四則演算を利用するプログラムはソースコード1のようになります。

// 複素数の計算2
void setup(){
  
  // x = -2 + 3i
  PVector x = new PVector(-2.0, 3.0);
  // y = -2 - 3i
  PVector y = new PVector(-2.0, -3.0);
  
  // a1 = x^2 + y^2
  PVector a1 = 
  println("(1)"+ a1.x + "+" + a1.y + "i" );
 
  // a2 = x^3 + y^3
  PVector a2 = 
  println("(2)"+ a2.x + "+" + a2.y + "i" );

  // a3 = y/x + x/y
  PVector a3 = 
  println("(3)"+ a3.x + "+" + a3.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;
}

ソースコード1 複素数の四則演算を利用するプログラム(未完成)

ソースコード1では、setup 関数の中で、PVectorクラスの変数 a1, a2, a3 を準備してそれぞれ課題の(1), (2), (3) の結果を代入して、その後コンソールに出力する形にしています。 a1, a2, a3 に対応する式を複素数の四則演算を行う関数を利用して表し、プログラムを完成させてください。


それでは、よろしくお願いします。

MK's papa


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