作問の備忘録

テスト問題を作るときの、大した計算ではないけれども、やろうと思うとめんどくさいことどもを記録。

接する放物線

先日、

 y=ax^2-bmx+pm^2+qm+rのグラフがx軸と接するときのmの値と接点の座標を求めよ。」

というタイプの問題を練習させようとしたら、問題集に問題が1問しかなかったので、その場で問題を作った。

そしたら係数の設定をミスってルートが出てきてしまうという失敗をしてしまった。

 

リベンジを果たすべく、この問題に取り組む。

つまり、a,b,p( a\neq 0)を与えたとき、mが整数となるような丁度良いq,rを求める方法を考える。

何のひねりもなく判別式を求めると、

 D=(b^2-4ap)m^2-4aqm-4ar

D=0のとき,もちろん b^2-4ap \neq 0として、

 m=\frac{2aq \pm \sqrt{4a^2q^2+4ar(b^2-4ap)}}{b^2-4ap}

 =\frac{2(aq \pm \sqrt{aq^2+ar(b^2-4ap)})}{b^2-4ap}

ここで、 q=b^2-4apと仮定する。

すると、 \sqrt{ } の中身が (qk)^2になってくれるとありがたい。

 a^2q^2+arq=q^2k^2

 (a^2-k^2)q^2+arq=0

 q((a^2-k^2)q+ar)=0

 (a^2-k^2)q+ar=0

rをqによって決めたいので、

 r=\frac{(k^2-a^2)q}{a}

結局、

 a,b,p 任意, q=b^2-4ap, r=\frac{(k^2-a^2)q}{a},kは整数とすればよい。

これにより定まるmの値は m=2(a \pm k)で偶数。接点のx座標は

 x=\frac{bm}{2a}なので、このとき接点の座標は常に整数になる。

half-versineの定理

yahoo知恵袋で回答した内容をもう一度まとめる。

 

これは球面三角法における定理で、航海をするときの技術だった。

versineとは、 1-\cos\thetaのことで、和算においては矢と呼ばれた。

half-versineは、これの半分 \frac{1-\cos\theta}{2}で、

つまり \sin^2\frac{\theta}{2}のことである。

あえて日本語にするなら半矢だろうか。弓道と紛らわしいが。

 

球面上の2点A,Bに対し、2点を通る大円上での距離を求めたい。

分かっているものは,2地点の緯度、経度、球の半径rである。

大円上の弧ABに対する中心角を \thetaとすると、 \theta = \frac{d}{r}とおける。

ここから \thetaに対するhalf-versineを球面三角法における余弦定理を用いて求めることができる。

 

以下、単位球面上で考える。

球面三角形ABCにおいて、3辺AB,CA,ABの長さを a, b, cとする。

これらは弧の長さなので、単位球面上において中心角(ラジアン)と一致する。

ここで、弧ABを含む大円と弧ACを含む大円がなす角を \alphaとすると、

 \cos(a) =\cos(b)\cos(c)+\sin(b)\sin(c)\cos(\alpha)

 

さて、これをhalf-versineに書き換えると、

 hav\theta=\frac{1-\cos\theta}{2}から、

 \cos\theta=1-2hav\theta

 1-2hav(a)=\{1-2hav(b)\}\{1-2hav(c)\}+\sin(b)\sin(c)\{1-2hav(\alpha)\}

 1-2hav(a)=1-2\{hav(b)+hav(c)\}+4hav(b)hav(c)+\sin(b)\sin(c)-2\sin(b)\sin(c)hav(\alpha)

 -2hav(a)=-2\{hav(b)+hav(c)\}+4hav(b)hav(c)+\sin(b)\sin(c)-2\sin(b)\sin(c)hav(\alpha)

 hav(a)=\{hav(b)+hav(c)\}-\frac{1}{2}\{4hav(b)hav(c)+\sin(b)\sin(c)\}+\sin(b)\sin(c)hav(\alpha)

 hav(a)=\{hav(b)+hav(c)\}-\frac{1}{2}\{(1-\cos(b))(1-\cos(c))+\sin(b)\sin(c)\}+\sin(b)\sin(c)hav(\alpha)

 hav(a)=\{hav(b)+hav(c)\}-\frac{1}{2}\{1-\cos(b)-\cos(c)+\cos(b)\cos(c)+\sin(b)\sin(c)\}+\sin(b)\sin(c)hav(\alpha)

 hav(a)=\{hav(b)+hav(c)\}-\frac{1}{2}\{1-\cos(b)+1-1-\cos(c)+\cos(b)\cos(c)+\sin(b)\sin(c)\}+\sin(b)\sin(c)hav(\alpha)

 hav(a)=\{hav(b)+hav(c)\}-\frac{1}{2}\{1-\cos(b)+1-\cos(c)-1+\cos(b)\cos(c)+\sin(b)\sin(c)\}+\sin(b)\sin(c)hav(\alpha)

 hav(a)=\{hav(b)+hav(c)\}-hav(b)-hav(c)-\frac{1}{2}\{-1+\cos(b)\cos(c)+\sin(b)\sin(c)\}+\sin(b)\sin(c)hav(\alpha)

 hav(a)=\frac{1}{2}\{1-(\cos(b)\cos(c)+\sin(b)\sin(c))\}+\sin(b)\sin(c)hav(\alpha)

 hav(a)=\frac{1}{2}\{1-\cos(b-c)\}+\sin(b)\sin(c)hav(\alpha)

 hav(a)=hav(b-c)+\sin(b)\sin(c)hav(\alpha) 

 

これをさっきの2点A,Bに対応させる。A,Bの緯度をそれぞれ \phi_1,\phi_2,経度を \lambda_1, \lambda_2とすると、

 a=\theta ,b=\frac{\pi}{2}-\phi_2,c=\frac{\pi}{2}-\phi_1 , \alpha=\lambda_2-\lambda_1なので、

 hav(\theta)=hav(\phi_1-\phi_2)+\sin(\frac{\pi}{2}-\phi_2)\sin(\frac{\pi}{2}-\phi_1)hav(\lambda_2-\lambda_1) 

 hav(\theta)=hav(\phi_1-\phi_2)+\cos(\phi_2)\cos(\phi_1)hav(\lambda_2-\lambda_1) 

 hav(\theta)=hav(\phi_2-\phi_1)+\cos(\phi_2)\cos(\phi_1)hav(\lambda_2-\lambda_1) 

つまり、 \cos \thetaの表さえあれば  hav(\theta)が分かり、さらに \thetaが求められるということである。

これが求められれば、 d=r\thetaでAB間の距離が求められる。

 

実際やってみたところ、

東京とスリジャヤワルダナプラコッテとの距離は、

緯度、経度を小数第1位まで、円周率を3.14で雑に計算した場合でも6853km

国土地理院の楕円体仮定の計算で約6858km

十分実用的だ。

 

しかし、ちょっと待て。

そもそも \cos(a) =\cos(b)\cos(c)+\sin(b)\sin(c)\cos(\alpha)から直接求めても良かったんじゃないだろうか。

 \cos(\theta) =\cos(\frac{\pi}{2}-\phi_2)\cos(\frac{\pi}{2}-\phi_1 )+\sin(\frac{\pi}{2}-\phi_2)\sin(\frac{\pi}{2}-\phi_1)\cos(\lambda_2-\lambda_1)

 \cos(\theta) =\sin(\phi_2)\sin(\phi_1 )+\cos(\phi_2)\cos(\phi_1)\cos(\lambda_2-\lambda_1)

ほぼ同じ答えでたわ。

half-versineにこだわる理由とは一体…

求めやすかったんだろうか。

 

wikipediaによると、half-versineを使うことで、それまでの \sin^2\frac{\theta}{2}を使わなくて済むようになったことが大きいらしい。

そもそも、 \cos\thetaの方は、2点間が近すぎると \cos\theta=0.999999などになって使い物にならなかったので、 \cos\thetaより \sin^2\frac{\theta}{2}の方が都合が良かった。

45°の角をなす空間ベクトル

平面ax+by+cz=0と、その法線ベクトル(a,b,c)を考え、平面上に法線ベクトルと同じ大きさのベクトル作ればいけるかな。

簡単だった。

 a^2+b^2=c^2となる a,b,cについて、

 \vec{n}=(a,b,c),\vec{d}=(a,b,-c)は垂直で長さが等しい。

 \vec{n}=(a,b,c),\vec{m}=(0,0,2c)はなす角45°。

 

これでは面白くないから四元数を使って回転させたけど…

ひどい式になった。

解と係数の関係

yahoo知恵袋より

解と係数の関係

x²-(m-1)x+m+6=0がともに2以上である2つの解をもつとき、定数mの値の範囲を求める問題です。

2つの解をα、βとするとき、α≧2、β≧2であるからα-2≧0、β-2≧0より、α+B≧4・・・①

(α-2)(β-2)≧0・・・②が求められます。

①は分かりますが②はα≧2、β≧2から単純に、αβ≧4とするのはなぜ間違いでしょうか

この質問は定期的に上がってくる。

結論は簡単、条件が緩すぎるからだ。
しかし、この問題に関してはたまたま最終的な答えには影響しないという点が厄介だ。もっと説得力のある問題は作れないだろうか。

 

例えば
 「2x^2-2(m+1)x+(2m+1)=0が、ともに4以上である2つの解をもつmの値の範囲を求めよ。」

解と係数の関係から
α+β=2(m+1),αβ=2m+1
α-4+β-4≧0からα+β≧8
2(m+1)≧8
m+1≧4
m≧3
ここで、もし
αβ≧16を採用すると、
2m+1≧16
2m≧15
m≧15/2=7.5
しかし、
m=16としてみると、
 2x^2-34x+33=0
これを解くと、
x=\frac{17\pm\sqrt{223}}{2}\fallingdotseq15.97,1.03
ともに4以上という条件に合わない。

 

あかん、これmの値存在しなかったわ。

互除法の式の個数について再考

教材化できないか考えている。

例えば、自然数の組{3,4}について、最大公約数は1である。

また、4=3×1+1で、最大公約数にたどり着くまでの式の個数は1

この式の個数をDep({3,4})=1と表してみる。

 

{3+4,4}と{3,3+4}はそれぞれ{3,4}と同じ最大公約数を持つ。

自然数の組{a,b}について、

H({a,b})={a+b,max(a,b)}

L({a,b})={a+b,min(a,b)}

とする。

Dep(H({a,b})=Dep({a,b})+1

Dep(L({a,b})=Dep({a,b})

 

Depが増えるかどうかはH,Lどっちの足し算を選ぶかによる。

Depを3にするには

最短でHH

あとはLを何回どこに挟むかだけ。

L…LHL…LH 

 

つまり、L…n個…LHL…m個…LHのとき

{a(n(m+1)+1)+b(m+1),a(n(m+2)+1)+b(m+2)}

 

よく考えたら当たり前の話か。

 

連立合同方程式②

もう少し話を進めよう。

a≡1(mod4),a≡3(mod7) を同時に満たす整数aの求め方についてだ。

 

ガウスの方法で求めてみよう。

まず,4α+7β=1を満たす整数α,βを一組求める。

例えばα=2,β=-1である。

これさえ見つかれば,

a=1×7β+3×4αと置くだけでほぼ終わりである。

なぜならば,4α+7β=1において,

法を4とすれば7β≡1(mod4),法を7とすれば4α≡1(mod7)

だから,a=1×7β+3×4αは,a≡1(mod4),a≡3(mod7)を必ず同時に満たすことになる。

a=-7+24=17

よって,a=17+28k (kは整数)

この技はガウスの名を関してはいるが、百五減算の仕組みと同じである。

 

整数の性質の単元批判

正直、今の整数の性質の単元はろくでもない。

例えば、なぜ負の数を割った余りなどというものを考えたがるのか、にも関わらずなぜ割る数は正の数限定なのか、その辺りの流れが非常に説明不足かつちぐはぐである。

 

整数除算について教える時には、まず生徒の思考を同数累減まで遡らせる必要がある。

13÷3は、「13から3が4回引けて(取りきれて)、1余る」である。ブロックを使って指導すべき場面である。

小学校6年間で割合までアップグレードされた割り算の意味を、一度、「基準となる量を繰り返し引く」まで戻すのだ。

ここまで戻して初めて「基準となる量」=「法」=「measure」の概念が自然と立ち現れる。

 

次に、法を決めたときの連続する整数の余りについて考察させる。

これもブロックを使えばすぐに納得がいくだろう。

数を減らしていって、0を超え,負の数になるところまでやれば、自然と「負の数を割った余り」の定義の必要性に気付く。

 

また、数字の順をそろえたトランプを何人かに順に配っていくつかの山に分けてみせる。すると当然ながら余りが同じ仲間が同じ山に集まる。

これを通してすべての整数が余りによって分類できることがすぐに了解される。

 

たったこれだけだ。たったこれだけの工夫でできることをなぜあえて数式で導入しようとするのか意図が分からない。