プログラムを書いていて。数学っぽい問題(算数ではないなぁ)が出てきたので、解き方とともにメモ。
問題:下の図で線分は長さ1、5本を使った折れ線。5個の角度はみんな等しい。そんなとき赤線の長さを3にしたかったら、角度はいくらにすればよいかという問題。
式を立てる。
角度をt。
赤線の左端の座表を(0,0)。
赤線の右端の座標を(x,y)。
x=5*cos(t);
y=sin(t);
長さを3にしたいので、
x * x + y * y = 9
結局
25(cos(t)^2)+(sin(t)^2)=9 (a)
wolframalphaで引くと
と、まぁ、wolframで答えまで出てしまうのだが。
∽∽∽∽∽
wolframの途中の式を眺めると解き方がわかる。
解き方
公式で cos(t)^2 + sin(t)^2 = 1 だ。 (b)
別に倍角の公式というのがあって
cos(2t)= cos(t)^2 - sin(t)^2 (c)
ここで、(a)の式に(b)の式を加減していって(c)で表せるようにするという方針で進める。
(b)の式の両辺を13倍すると
13(cos(t)^2)+13(sin(t)^2)=13 (d)
(a)の両辺から(d)の両辺を引くと
12(cos(t)^2) - 12(sin(t)^2) = -4
(c)を適用すると、
12cos(2t)=-4
cos(2t)= -1/3
ここまでくれば、cosの逆関数があれば、tが求まる。
t = (1/2) * acos(-1/3) / PI*180 = 54.7 度
線分の数や、赤線の長さが変わっても同様に解ける。