リッチー・クレチァン望遠鏡の理論(『吉田正太郎,新版 反射望遠鏡光学入門』(他))

楽しみ方は無限大、アイデア全開
「M」
記事: 68
登録日時: 2023年7月29日(土) 19:25

Re: リッチー・クレチァン望遠鏡の理論(『吉田正太郎,新版 反射望遠鏡光学入門』(他))

投稿記事 by 「M」 »

はらぱん さん  みなさん こんにちは

まずは訂正。
out20260229.png
数式の清書はLaTexを使っているのですが、(2026 1月中という自分で決めた
締切り間際に)書式を変えた際の手作業でy^8の項をy^6の項,y^10の項をy^8と
ズラす間違いをし、そのまま投稿してしまいました(トホホ。)
余計な手間をおかけしました。

Python(/FORTRAN?)形式では

コード: 全て選択

Ds= -(12*m**3+(12*e-36)*m**2+(36-12*e)*m+e**2+e-12)/(384*e**3*m**5)
これですと
m=0.326667; e=0.2525 で
Ds=174.534461 となります。

はらぱん>数式処理ソフトMaximaで厳密解を展開してみました。
「M」も(しばらく前から)Maxima(https://ja.wikipedia.org/wiki/Maxima)を
使っています! 多倍長整数/多倍長浮動小数点数の計算ができるのも便利ですね。その一方、
なかなか「使える」ようにならない。 強力な機能が「満載」で1000ページにおよぶ
Maxima Manualで迷子になってしまいます。
※たとえば「Taylor展開」は見つかるのですが「媒介変数表現の展開」が見つからない...。
近頃は「自分なりのidiomを集められればよい」と考えています。まあ自然言語と同じで
「習うより慣れろ」なのですかね。

はらぱん>これをtにそのまま代入するのではなく、テイラー展開したものを代入して全体をテイラー展開するのだそうです。
※「そのまま代入」しても、ちゃんと結果が出ると思いますが?

はらぱん>mの値を負にしないと正しい答えが出ません。
yの0次項が「m+e」となっていますが「e-m」となる筈ですね(主鏡厳密式でt=0とする。)
主鏡厳密式の入力で「m」の符号が逆になっていませんか?

はらぱん>さて副鏡に関してですが、同様にMaximaで解いているのですが上手くいきません。
はらぱん>極座標などというのは全くわからず詰まってしまいました。

副鏡面の極座標が(ρ, u)のとき、直交座標は(ρ*cos(u), ρ*sin(u))。
副鏡厳密式の左辺は1/ρで右辺は(uでなく)tの式で面倒ですが(主鏡厳密式と同様に)
「倍角公式」で ρ = <uの式>と変形できる。さて、
※主鏡厳密式の場合は、(tを消去して)うまくxがyの関数(陽形式):
※  <x = H(y)>のかたち
※に出来た。そこで Maximaの「taylor()」一発でMaclaurin展開できたが
副鏡厳密式の場合は、
x = ρ(u(t))*cos(u(t))
y = ρ(u(t))*sin(u(t))
を 「陽形式」にできるか? 「媒介変数tを消去できるか?」とも言えますね。
(でも... ... デキソウニ アリマセン!)  そこで方向転換して...

「M」>「我流」で媒介変数表現の展開法をひねりだしました

...ということなのですが、当方のやり方を、いきなり紹介してしまうことは差し控えようと思います。
(Maximaを楽しんでつかっていらっしゃる様子ですので:-)

※Maximaでの「媒介変数表現のMaclaurin展開」も(うまく探せば)見つかるような
※気がしてきました。 理由は...あらためて。

※なお、
※『媒介変数表示関数の微分法 dy/dx=dy/dt/dx/dt』:-
※https://examist.jp/mathematics/derivation/baikaihensuu-bibunhou/
※などを参考にしました。
はらぱん
記事: 5
登録日時: 2026年2月14日(土) 11:48

Re: リッチー・クレチァン望遠鏡の理論(『吉田正太郎,新版 反射望遠鏡光学入門』(他))

投稿記事 by はらぱん »

みなさま こんにちは。

mの符号、tへの代入、Mさんのご指摘のとおりでした。
ありがとうございます。
戴いたヒントをもとに、もう少し勉強します。
はらぱん
記事: 5
登録日時: 2026年2月14日(土) 11:48

Re: リッチー・クレチァン望遠鏡の理論(『吉田正太郎,新版 反射望遠鏡光学入門』(他))

投稿記事 by はらぱん »

みなさまこんにちは。

Mさん、あるいは何方かお助けをお願いします。
RC鏡の副鏡式の展開。
数ⅡBで赤点をとって数学人生が終わった者には難しい問題です。
Mさんに教えていただいたサイトの問題をMaximaで解いて準備体操をし、以下ようなコードを書きました。


/* 1/p の定義 */
inv_p : t/e + (1/m) * ((1 - t/e)^(1/(1-e))) / ((1 - t)^(e/(1-e)));
p:1/inv_p;

/*pのテーラー展開*/
p_t_y:taylor(subst(t=(1 - sqrt(1 - y^2)),p),y,0,8);

/*直交座標 x =*cos(U), y = p*sin(U) に変換 */
/* cos(u) = 1-2t, sin(u) =y */
x_c : p_t_y * (1 - 2*t);
y_c:p_t_y* y;

/*微分*/
xd_dt: diff(x_c,t);
yd_dt: diff(y_c,y);

/*dy/dx*/
dy_dx: yd_dt/xd_dt;

/*d2y/dx2*/
d_dt: diff(dy_dx,y);
inv_xd_dt: 1/xd_dt;
d2y_dx2: d_dt * inv_xd_dt;


コピペで動くと思います。
直交座標に変換したのちの微分で接線が、も一度微分すると接点が求まるという考えでよいのでしょうか。
しかしYの奇数乗になってしまいます・・・
「M」
記事: 68
登録日時: 2023年7月29日(土) 19:25

Re: リッチー・クレチァン望遠鏡の理論(『吉田正太郎,新版 反射望遠鏡光学入門』(他))

投稿記事 by 「M」 »

はらぱん さん  みなさん こんにちは

はらぱん>コピペで動くと思います。 ...
はらぱん>しかしYの奇数乗になってしまいます・・・
うまく行っていれば、dx/dy、d2x/dy2,...では(xもyも消えて)変数はtだけになる筈。
副鏡厳密式のyと主鏡厳密式のyが「混線」している感じですね。
また、 (副鏡の)xを(副鏡の)yの関数として展開したい:-
   x(y) = As*y^0 + Bs*y^2 + Cs*y^4 + Ds*y^6 + ...
ので(dy/dx,d2y/dx2,...でなく)dx/dy、d2x/dy2,...を求めることになりますね...
そこで

コード: 全て選択

/* 1/p の定義 */
inv_p : t/e + (1/m) * ((1 - t/e)^(1/(1-e))) / ((1 - t)^(e/(1-e)));
p:1/inv_p;

/*直交座標 x = p*cos(U), y = p*sin(U) に変換 */
/* cos(u) = sqrt(1-4*(1-t)*t), sin(u) = sqrt(4*(1-t)*t) */

x_c: p * sqrt(1-4*(1-t)*t);
y_c: p * sqrt(4*(1-t)*t);

/*微分*/
xd_dt: diff(x_c,t);
yd_dt: diff(y_c,t);

/*dx/dy*/
dx_dy: xd_dt/yd_dt;

/*d2x/dy2*/
d_dt: diff(dx_dy,t);
inv_yd_dt: 1/yd_dt;
d2x_dy2: d_dt * inv_yd_dt;

factor(subst(t=0, ratsimp(dx_dy)))/1!;  /*1次の項の係数*/	
factor(subst(t=0, ratsimp(d2x_dy2)))/2!;/*2次の項の係数 = Bs*/
とすれば 「yの1次の項の係数」(=0)、「yの2次の項の係数」が出るようになるはずです。
※なお、pを先にテーラー展開してから dx/dy、d2x/dy2,...を
※組み立てるやり方では、「無視した高次項が結果に影響しないこと」の吟味が必要だと思います。

※※ここで使っているMaximaの機能の(おおざっぱな)説明:-
※※コメント  /* ... */  
※※代入   <左辺>:<右辺>
※※書き換え subst(<変数>=<式2>,<式1>)
※※微分   diff(<式>,<変数>)
※※簡約   ratsimp(<式>)
※※因数分解 factor(<式>)
※※※(その他) 四則「+ - * /」,累乗「^」,平方根「sqrt()」,階乗「!」

「M」は、こんなぐあいに書いています:- ※冗長な記述が多いです。

コード: 全て選択

rho(t):= 1 / (  t/e + (1/m) * ((1 - t/e)^(1/(1-e))) / ((1 - t)^(e/(1-e)))
 		); 

/* t = sin(u/2)**2 */
/* cos(u) = sqrt(1-4*(1-t)*t) */
/* sin(u) = sqrt(4*(1-t)*t) */
				
/*rho(t)*cos(u) */
r_param_xx(t):=''rho(t)*sqrt(1-4*(1-t)*t);

/*rho(t)*sin(u) */
r_param_yy(t):=''rho(t)*sqrt(4*(1-t)*t);

/*rho(t)*sin(u)**2 */
/*
r_param_yy(t):=''rho(t)*sqrt(4*(1-t)*t)**2;
*/

r_param_xxd_1(t):=''(diff(r_param_xx(t),t))$
r_param_yyd_1(t):=''(diff(r_param_yy(t),t))$

r_param_xx_yy_d1(t):= ''(ratsimp(r_param_xxd_1(t)/r_param_yyd_1(t)))$
r_param_xx_yy_d2(t):= ''(ratsimp(diff(r_param_xx_yy_d1(t),t)/r_param_yyd_1(t)))$

r_param_xx_yy_d3(t):= ''(ratsimp(diff(r_param_xx_yy_d2(t),t)/r_param_yyd_1(t)))$

factor(ratsimp(r_param_xx_yy_d1(0)));
factor(ratsimp(r_param_xx_yy_d2(0)));
factor(ratsimp(r_param_xx_yy_d3(0)));
※※Maximaの機能の(おおざっぱな)説明(追加):-
※※関数定義  <関数名>(<引数名>,...):=<右辺>
※※評価の抑止 「’」


※はらぱん>直交座標に変換したのちの微分で接線が、も一度微分すると接点が求まるという考えでよいのでしょうか。
※とりあえずの答えは
※「ここでは『形式的に式を操作』しているので、図形的な意味は考えていません...」でしょうか?
※※とはいっても......宿題とさせてください...(「M」は「ななめ下」に考え込んじゃう人なので:-)


※※※>...赤点...
※※※「逆マジック点数」というのもいただきました(次回の試験でxx点越えないと「可」に届かない。)
※※※※※「可山優三」は、とてもムリ。セイゼイいって「不可山良二」(=それだれ?)

閑話休題。
 副鏡厳密式の展開では(主鏡の場合と様子が違って)次数を増やした時の
作業メモリーの容量+計算量の増加がいちじるしいです。「M」の普段づかいの計算機(*1)では
上のやり方でyの次数を0,1,2,...とふやしていくと6次の係数項まで届きませんでした。
「クレチァンもこれ以上進むことができなかったのか...」という状況が、すこし分かった次第です。
さてそこで、また「考え込んじゃった」わけですが...(つづく)

(*1)ほぼ20年前の計算機 = CPU: 2.2GHz, RAM: 4GByte。

※なお、次回投稿は週末以降になると思います。
返信する