円と包絡線:楕円
原点中心、半径 a の円に対し、x軸に垂直な弦を直径とする円のつくる曲線群の包絡線を考えます。
問題としては次のようになるでしょう。
では、まずCinderellaでシミュレーションをやってみましょう。半径は適当に決めておきます。今、4にして作図します。
原点中心、半径4の円を描きます。
背景のx軸に合わせて、x軸上に直線を引きます。
直線上(x軸上)に点を取り、ここで垂線を引きます。
円との交点を取ります。
弦の長さを直径とする円を描きます。
順序はあまり問いません。上の図で点Dをドラッグして、条件を満たす円になっていることを確かめましょう。
次に、編集メニューからインスペクタを開き(Mac:Command+i , Windows:Ctrl+i)動かす方の円を選んで特別な表示で足跡にチェックを入れます。
また、点Dをドラッグするので、この点の色も変えておきましょう。
これで点Dを動かします。包絡線の楕円が見えるでしょう。
動円の足跡の長さを長くしておくとわかりやすくなります。
原点中心の円がわかりにくくなるので、色を黒にして少し太くしました。
先ほどの図と比べると点Eが下になっています。円の外まで緑の点をドラッグすると、上下が入れ替わることがあります。
ではTeXに図を書き出します。
このページの冒頭に挙げた問題文の図は、2つの円と軸上の文字、垂直のマークを入れたものです。垂直のマークを入れるために、垂線と円の交点のもう片方もとっておきます。
Circledata("1",[[0,0],[4,0]]);
Circledata("2",[D,E]);
Listplot([E,F]);
Paramark([A,D,E]);
Letter([[4,0],"se2","a",[0,4],"nw2","a"]);
この中で、Paramark([A,D,E]); が、角ADEに平行四辺形の角の印を入れる関数です。垂直なので結果として垂直のマークになっています。
次に、円をたくさん描いた図を書き出しましょう。repeatを使って繰り返します。
Circledata("0",[[0,0],[4,0]],["dr,2"]);
//Circledata("2",[D,E]);
//Listplot([E,F]);
//Paramark([A,D,E]);
Letter([[4,0],"se2","a",[0,4],"nw2","a"]);
repeat(16,s,
x=-4.5+0.5*s;
y=sqrt(16-x^2);
Circledata(text(s),[[x,0],[x,y]],["do","color->[0,0,1]"]);
);
Expr([[4,4],"ne","\frac{x^2}{2a^2}+\frac{y^2}{a^2}=1"]);
Circledata()などの描画関数には、プロットデータの名前をつけます。普通は番号です。
repeatでの繰り返しの変数を今はsにしていますが、sは1から始まります。
すると、はじめに描いた円の番号と重なってしまうので、初めの原点中心の円の番号を0にしました。
また、もう一つの円と直径、書くの印はこの図ではいらないことにして、//をつけてコメント行にしています。
repeat からが追加分です。オプションの "do" は点線での描画、color->[0,0,1] はCinderellaの画面上の描画色です。
画面と、書き出した図は次のようになります。
これで大体よいでしょうか。楕円をはっきり示すなら、媒介変数を使って表示します。
また、方程式の分数ですが、\frac でなく \cfrac や \dfrac も使えます。ただし、これらはCinderellaの画面上では分数になりません。
Expr([[4,4],"ne","\cfrac{x^2}{2a^2}+\cfrac{y^2}{a^2}=1"]);
Paramplot("1","[4*sqrt(2)*cos(u),4*sin(u)]","u=[0,2*pi]");
としたのが次の図です。
ここで、ちょっと注意です。通常、Paramplotを使うときは、媒介変数を t とするのがポピューラーなのですが、ここでは平方根のsqrt() を使っています。これがちょっと具合が悪くて、文字の置き換えの関係で sqrt() に使われている s,q,r,t は変数に使えません。そこで u にしています。
ここでは、動く円を点線にしましたが、実線にするとどうなるか、やってみましょう。オプションの "do"をとれば実線になります。
また、円を増やして密にすることも考えられます。
ちょうどよい図を作ってから書き出せばよいでしょう。
試行錯誤をしても簡単に書き換えられるのがKETCindyのメリットです。
< 戻る >