見出し画像

高校数学10分プログラミング(数学B編 2.空間のベクトル)4日目「空間ベクトルの内積を考える1」解説

マガジンリスト > 数学B編 2.空間のベクトル > 4日目 解説

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

課題の2つのベクトル$${ \vec{a}, \vec{b} }$$のそれぞれの大きさと内積を計算し、そのなす角を求めるプログラムを作成することができたでしょうか。


解答例

今回の課題の2つのベクトル$${ \vec{a}, \vec{b} }$$のそれぞれの大きさと内積を計算し、そのなす角を求めるプログラムの例を示します。

// 2つの空間ベクトルの内積とそのなす角を計算する
void setup(){

  // 2つの空間ベクトル
  PVector a = new PVector(1.0, 1.0, 0.0);
  PVector b = new PVector(1.0, 2.0, -2.0);

  // 2つのベクトルの大きさ
  float magnitude_a = sqrt(a.x * a.x + a.y * a.y + a.z * a.z);
  float magnitude_b = sqrt(b.x * b.x + b.y * b.y + b.z * b.z);
  
  // 2つのベクトルの内積を計算する
  float innerproduct = a.x * b.x + a.y * b.y + a.z * b.z;
  
  // なす角を求める
  float cos_theta = innerproduct / magnitude_a / magnitude_b;
  float theta = degrees( acos( cos_theta ) );
  
  println( "ベクトルaの大きさ:", magnitude_a);
  println( "ベクトルbの大きさ:", magnitude_b);
  println( "ベクトルの内積:", innerproduct);
  println( "ベクトルのなす角:", theta);
  
}

ソースコード2 2つのベクトル$${ \vec{a}, \vec{b} }$$のそれぞれの大きさと内積を計算し、そのなす角を求めるプログラム(完成版)

ソースコード2を、スケッチ「calcInnerProduct3D」のテキストエディタ部分に書いて実行すると、コンソールに

ベクトルaの大きさ: 1.4142135
ベクトルbの大きさ: 3.0
ベクトルの内積: 3.0
ベクトルのなす角: 44.999996

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

図1 スケッチ「calcInnerProduct3D」の実行結果


本日は以上です。
明日も、もう少し空間ベクトルの内積について考えていきます。

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


読んだ感想などをお寄せください

本記事を読んだ感想や質問などを以下のお問い合せフォームからお寄せください。(お問合せフォームの本文に、本記事のタイトルを入れてください。)


MK’s papa


いいなと思ったら応援しよう!