Maple/球面像差

球面像差的成因是经过透镜折射或面镜反射的光线,接近中心与靠近边缘的光线不能将影像聚集在一个点上的现象。
根据单球面的折射方程
> F1 := sin(J) = sin(U)*(L-r)/r;
sin(U) (L - r)
sin(J) = --------------
r
> F2 := sin(Jp) = N*sin(J)/Np;
N sin(J)
sin(Jp) = --------
Np
> F3 := U+J = Up+Jp;
U + J = Up + Jp
> F4 := Lp-r = sin(Jp)*r/sin(Up);
sin(Jp) r
Lp - r = ---------
sin(Up)
可以导出单球面像差的准确方程式
EQten := [1]
其中
- L 为 入射光与光轴交点到球面顶点的距离
- Lp 折射光与光轴交点到球面顶点的距离
- J 为 入射角
- Jp 为折射角
- U 为 入射光与光轴的夹角
- Up 折射光与光轴的夹角
- r 为球面半径
- N,Np 为球面两边的折射率
球面像差公式的推导
先列出几个常用的子程序
> Pinvert := proc (epr) 1/op(1, epr) = 1/op(2, epr) end proc;
> PoneMinusLH := proc (expres) simplify(1-lhs(expres) = 1-rhs(expres)) end proc;
> > PsinAddsin := proc (a, b) sin(a)+sin(b) = 2*sin((1/2)*a+(1/2)*b)*cos((1/2)*a-(1/2)*b) end proc;
> > PcosSubcos := proc (p, q) {cos(p)-cos(q) = 2*sin((1/2)*p+(1/2)*q)*sin((1/2)*q-(1/2)*p)} end proc;
> > > > F1 := sin(J) = sin(U)*(L-r)/r;
r
> F2 := sin(Jp) = N*sin(J)/Np;
> F3 := U+J = Up+Jp;
U + J = Up + Jp
> F4 := Lp-r = sin(Jp)*r/sin(Up);
> > > sys1 := {F1};
/ sin(U) (L - r)\
\ { sin(J) = -------------- }
\ r /
> > g2 := solve(sys1, L);
/ r (sin(J) + sin(U))\
{ L = ------------------- }
\ sin(U) /
> G1 := op(1, g2);
r (sin(J) + sin(U))
L = -------------------
sin(U)
> > > sys4 := {F4};
/ sin(Jp) r\
{ Lp - r = --------- }
\ sin(Up) /
> > g4 := solve(sys4, Lp);
/ r (sin(Jp) + sin(Up))\
{ Lp = --------------------- }
\ sin(Up) /
> > G4 := op(g4);
r (sin(Jp) + sin(Up))
Lp = ---------------------
sin(Up)
> > > G1INV := Pinvert(G1);
1 sin(U)
- = -------------------
L r (sin(J) + sin(U))
> G4INV := Pinvert(G4);
1 sin(Up)
-- = ---------------------
Lp r (sin(Jp) + sin(Up))
> > NG1 := r*G1INV;
r sin(U)
- = ---------------
L sin(J) + sin(U)
> NG4 := r*G4INV;
r sin(Up)
-- = -----------------
Lp sin(Jp) + sin(Up)
> > NG1a := PoneMinusLH(NG1);
L - r sin(J)
----- = ---------------
L sin(J) + sin(U)
> > NG4a := PoneMinusLH(NG4);
Lp - r sin(Jp)
------ = -----------------
Lp sin(Jp) + sin(Up)
> > > > > NG4aR := rhs(NG4a); NG1aR := rhs(NG1a);
sin(Jp)
-----------------
sin(Jp) + sin(Up)
sin(J)
---------------
sin(J) + sin(U)
> h1a := r/L = 1-NG1aR;
r sin(J)
- = 1 - ---------------
L sin(J) + sin(U)
> h2a := r/Lp = 1-NG4aR;
r sin(Jp)
-- = 1 - -----------------
Lp sin(Jp) + sin(Up)
> > H1 := h1a*N/r;
/ sin(J) \
N |1 - ---------------|
N \ sin(J) + sin(U)/
- = -----------------------
L r
> H1EX := expand(H1);
N N N sin(J)
- = - - -------------------
L r r (sin(J) + sin(U))
> NG1aR;
sin(J)
---------------
sin(J) + sin(U)
> H2 := h2a*Np/r;
/ sin(Jp) \
Np |1 - -----------------|
Np \ sin(Jp) + sin(Up)/
-- = --------------------------
Lp r
> > H2EX := expand(H2);
Np Np Np sin(Jp)
-- = -- - ---------------------
Lp r r (sin(Jp) + sin(Up))
> > > H1H2 := H2EX-H1EX;
Np N Np Np sin(Jp) N N sin(J) -- - - = -- - --------------------- - - + ------------------- Lp L r r (sin(Jp) + sin(Up)) r r (sin(J) + sin(U))
> > > > > K := algsubs(Np*sin(Jp) = N*sin(J), H1H2); Np N N sin(J) Np N N sin(J) -- - - = - --------------------- + -- - - + ------------------- Lp L r (sin(Jp) + sin(Up)) r r r (sin(J) + sin(U)) > > > KR := rhs(K); KL := lhs(K);
N sin(J) Np N N sin(J)
- --------------------- + -- - - + -------------------
r (sin(Jp) + sin(Up)) r r r (sin(J) + sin(U))
Np N
-- - -
Lp L
> > > op(KR);
N sin(J) Np N N sin(J)
- ---------------------, --, - -, -------------------
r (sin(Jp) + sin(Up)) r r r (sin(J) + sin(U))
> > > KR1 := op(1, KR);
N sin(J)
- ---------------------
r (sin(Jp) + sin(Up))
> > KR4 := op(4, KR);
N sin(J)
-------------------
r (sin(J) + sin(U))
> > KR1KR4 := KR1+KR4;
N sin(J) N sin(J)
- --------------------- + -------------------
r (sin(Jp) + sin(Up)) r (sin(J) + sin(U))
> > KR1KR4a := KR1KR4 = KR4*(1+X);
N sin(J) N sin(J)
- --------------------- + ------------------- =
r (sin(Jp) + sin(Up)) r (sin(J) + sin(U))
N sin(J) (1 + X)
-------------------
r (sin(J) + sin(U))
> > > KR1KR4RH := rhs(KR1KR4a);
N sin(J) (1 + X)
-------------------
r (sin(J) + sin(U))
> > > TM1 := subs(1+X = Z, KR1KR4RH);
N sin(J) Z
-------------------
r (sin(J) + sin(U))
> > NG1a; T1 := rhs(NG1a); T2 := lhs(NG1a);
L - r sin(J)
----- = ---------------
L sin(J) + sin(U)
sin(J)
---------------
sin(J) + sin(U)
L - r
-----
L
> TM2 := subs(sin(J)+sin(U) = sinJplussinU, TM1);
N sin(J) Z
--------------
r sinJplussinU
> TM3 := algsubs(sin(J)/sinJplussinU = (L-r)/L, TM2);
N Z (L - r)
-----------
r L
> > > > > > Y := solve(KR1KR4a, X);
sin(J) + sin(U)
- -----------------
sin(Jp) + sin(Up)
> kr1kr4 := KR4*(1+Y);
/ sin(J) + sin(U) \
N sin(J) |1 - -----------------|
\ sin(Jp) + sin(Up)/
--------------------------------
r (sin(J) + sin(U))
> > T1 := algsubs(sin(J)+sin(U) = L*sin(J)/(L-r), KR1KR4RH);
/ L sin(J)\
N (1 + X) |-sin(U) + --------| (L - r)
\ L - r /
--------------------------------------
r L sin(J)
> KR1and4 := subs(Z = 1+Y, TM3);
/ sin(J) + sin(U) \
N (L - r) |1 - -----------------|
\ sin(Jp) + sin(Up)/
---------------------------------
r L
> > > > > > > > s1 := PsinAddsin(Jp, Up);
/1 1 \ /1 1 \
sin(Jp) + sin(Up) = 2 sin|- Jp + - Up| cos|- Jp - - Up|
\2 2 / \2 2 /
> op(s1);
/1 1 \ /1 1 \
sin(Jp) + sin(Up), 2 sin|- Jp + - Up| cos|- Jp - - Up|
\2 2 / \2 2 /
> t4d := algsubs(s1, KR1and4);
/ -sin(J) - sin(U) \
N (L - r) |----------------------------------- + 1|
| /1 1 \ /1 1 \ |
|2 sin|- Jp + - Up| cos|- Jp - - Up| |
\ \2 2 / \2 2 / /
---------------------------------------------------
r L
> s2 := PsinAddsin(J, U);
/1 1 \ /1 1 \
sin(J) + sin(U) = 2 sin|- J + - U| cos|- J - - U|
\2 2 / \2 2 /
> t4e := algsubs(s2, t4d);
/ /1 1 \ /1 1 \ \
| sin|- J + - U| cos|- J - - U| |
| \2 2 / \2 2 / |
N (L - r) |- --------------------------------- + 1|
| /1 1 \ /1 1 \ |
| sin|- Jp + - Up| cos|- Jp - - Up| |
\ \2 2 / \2 2 / /
---------------------------------------------------
r L
> t4f := algsubs(U+J = Up+Jp, t4e);
/ / 1 1 \ \
| cos|-U + - Up + - Jp| |
| \ 2 2 / |
N (L - r) |- --------------------- + 1|
| /1 1 \ |
| cos|- Jp - - Up| |
\ \2 2 / /
---------------------------------------
r L
> t4g := simplify(t4f);
/ / 1 1 \ /1 1 \\
N (L - r) |cos|-U + - Up + - Jp| - cos|- Jp - - Up||
\ \ 2 2 / \2 2 //
- ----------------------------------------------------
/1 1 \
r L cos|- Jp - - Up|
\2 2 /
> > > s3 := PcosSubcos((Jp-Up)*(1/2), -U+(1/2)*Up+(1/2)*Jp);
/ / 1 1 \ /1 1 \ /1 1 \
{ -cos|-U + - Up + - Jp| + cos|- Jp - - Up| = -2 sin|- Jp - - U|
\ \ 2 2 / \2 2 / \2 2 /
/1 1 \\
sin|- U - - Up| }
\2 2 //
> s4 := op(s3);
/ 1 1 \ /1 1 \ /1 1 \
-cos|-U + - Up + - Jp| + cos|- Jp - - Up| = -2 sin|- Jp - - U|
\ 2 2 / \2 2 / \2 2 /
/1 1 \
sin|- U - - Up|
\2 2 /
> s5 := algsubs(s4, t4g);
/1 1 \ /1 1 \
2 N (L - r) sin|- Jp - - U| sin|- U - - Up|
\2 2 / \2 2 /
- -------------------------------------------
/1 1 \
r L cos|- Jp - - Up|
\2 2 /
> > s6 := subs(sin((1/2)*U-(1/2)*Up) = sin((Jp-J)*(1/2)), s5);
/1 1 \ / 1 1 \
2 N (L - r) sin|- Jp - - U| sin|- - Jp + - J|
\2 2 / \ 2 2 /
---------------------------------------------
/1 1 \
r L cos|- Jp - - Up|
\2 2 /
> > EQten := KL = op(2, KR)+op(3, KR)+s6;
/1 1 \ / 1 1 \
2 N (L - r) sin|- Jp - - U| sin|- - Jp + - J|
Np N Np N \2 2 / \ 2 2 / -- - - = -- - - + --------------------------------------------- Lp L r r /1 1 \
r L cos|- Jp - - Up|
\2 2 /
EQten := [2]
参考文献
Alexander Eugen Conrady Applied Optics & Optical Design Dover