ピタゴラスの定理(三平方の定理)

三平方の定理


三平方の定理(ピタゴラスの定理)。Cは直角三角形の斜辺になる。様々な計算の基礎となる定理であり
この式を利用すれば直角三角形であることが事前に分かっている図形の場合、各辺の長さを求める等が出来る
考えを発展させていくと三角比と三角関数へと至る。ゲーム制作をする上でなくてはならない定理と言える

daum_equation_1408976057032.png

☆二点間の距離の公式
三平方の定理によりAB間の距離は以下の公式で求められる
distance1.png

例:
using UnityEngine;
using System.Collections;

public class Rad1 : MonoBehaviour
{
      void Start ()
       {
               Vector2 A = new Vector2 (2, 5);
               Vector2 B = new Vector2 (10, 11);

              print (Mathf.Abs (Mathf.Sqrt (Mathf.Pow ((B.x - A.x), 2) + Mathf.Pow ((B.y - A.y), 2))));
               print ((A - B).magnitude);
       }
}

出力
10
10

三角関数を使って証明


sanheihou3.png
sanheihou2.png
1.直角三角形ABCを描く
2.各角ABCに対する角と向き合う対辺に小文字のabcを割当てる
3.各辺を辺とした正方形Q、R、Pを描く
(a×a、b×b、c×cの3個の正方形が出来る)
4.直角三角形ABCの直角より斜辺ABに対し垂線を下し、交点をDとする
5.その垂線の延長線上にある正方形PはP1、P2に分割される

6.直角三角形BCDに注目する。三角関数を利用すると
辺BD = cosB = c/a = acosθ
正方形P1 = c×辺BD = c×acosθ = accosθ

7.直角三角形ABCに注目する
辺BC = cosB = a/c = ccosθ
正方形Q = a×辺BC = a×ccosθ = accosθ

従って P1=Q・・・①

8.直角三角形ADCに注目する
幾何的に直角三角形の相似を補助線を引いて探すと∠ACDはθとなる
このθを利用して辺ADを求めると
辺AD = bsinθ
正方形P2 = c×辺AD = c×bsinθ = bcsinθ

9.直角三角形ABCに注目する
辺AC = sinB = b/c = csinθ
正方形R = b×辺AC = b×csinθ = bcsinθ

従って P2=R・・・②

①と②よりP1=Q,P2=Rが成り立つ。この事から正方形Pの面積は
P=P1+P2=Q+R となります
P=c^2,Q=a^2,R=b^2なので

c^2=a^2+b^2の三平方の定理が成り立ちます
数学豆知識:
一般的に角の対辺の長さを表す時、頂点の文字に対応する小文字のアルファベットが用いられる

8.からの証明には、もう少し普通のやり方もある。こちらの方が一般的

8'.三角形ADCに注目
辺AD = cosA = AD/b = bcosA
正方形P2 = c×辺AD = c×bcosA = bccosA

9'.三角形ABCに注目
辺AC = cosA = AC/c = ccosA
正方形R = b×辺AC = b×ccosA = bccosA

従ってP2=R・・・②


幾何的に証明


Pythagoras1.png
4つの直角三角形を上図のように組み合わせるとふたつの正方形が出来上がる。よって以下の式で証明できる
Pythagoras2.png


ピタゴラス数


二項定理、平方の素因数分解で見られる式を利用して以下のような変形をすると三平方の各係数の整数の値を手に入れることが出来る
(以下の方程式はディオファントス方程式と呼ばれるもので変数が複数ある方程式の「整数解」を求める問題をこう呼ぶ)

<起点>
Pythagorasa.png
上の式と下の式が同じになるような関係の式を作りたい。これに平方完成に似た発想の式作成を行う
daum_equation_1408978220945.png
a,b,cを整数で作りたい場合、下記の条件を満たす必要がある

  • m,nは互いに素(最大公約数が1になっている状態)
  • 0<n<m
  • m-nは奇数

資料:平方数

たとえば
3,4,5 (m=2,n=1 : 2^2-1^2 , 2*2*1 , 2^2+1^2)
5,12,13 (m=3,n=2 : 3^2-2^2 , 2*3*2 , 3^2+2^2)
15,8,17 (m=4,n=1 : 4^2-1^2 , 2*4*1 . 4^2+1^2)
など

unityでコード化すると以下になる

エラトステネスの篩(素数は1を含まないので追加する)を利用して素数の数列を作成して条件を満たしながらm,nのペアを作成し出力する
ここでは素数の数列の上限を100までの素数とした

式は以下を使用する
Pythagorasb.png


  • 最終更新:2015-03-10 00:44:30

このWIKIを編集するにはパスワード入力が必要です

認証パスワード