円と包絡線:楕円

原点中心、半径 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のメリットです。

< 戻る >