この notebook の目標
任意の２次曲線 (Subscript[C, 0]) :(ax^2)+2h x y+b (y^2)+2g x+2f y +c =0 の媒介変数表示を行う。

(Subscript[C, 0]): (ax^2)+2h x y+b (y^2)+2g x+2f y +c =0   (Subscript[の中心O, 0])、(Subscript[焦点Focus, 0])  (焦点	F1,  F2 とします )を求める。
                                                 ↓　回転行列 R
C':(Subscript[λ, 1])(X^2)+ (Subscript[λ, 2])(Y^2)+2f' X+2g' Y+c=0    の中心O'
                                                ↓　平行移動 -O’　
C’’: 標準形  (Subscript[η, 1])(X^2)+ (Subscript[η, 2])(Y^2)=1　
  
  このとき、C’’の媒介変数は
      
      (i)   (Subscript[η, 1])>0, (Subscript[η, 2])>0　のとき、 X= ((Cos t)/(Sqrt[(Subscript[η, 1])])),   Y= ((Sin t)/(Sqrt[(Subscript[η, 2])]))  
      (ii)   (Subscript[η, 1])>0, (Subscript[η, 2])<0　のとき、 X= (1/((Sqrt[(Subscript[η, 1])])Cos t)),   Y= ((Tan t)/(Sqrt[|(Subscript[η, 2])|]))  
      (iii)   (Subscript[η, 1])<0, (Subscript[η, 2])>0　のとき、 X= ((Tan t)/(Sqrt[|(Subscript[η, 1])|])),  Y=(1/((Sqrt[(Subscript[η, 2])])Cos t))  
  
 である。　  (Subscript[O, 0])=O'(R^(-1))の中心 ,  (x, y)  in (Subscript[C, 0]), (X, Y)in C’’ とすると  
　　　　　　　　　
　　　　　　　　　　　　　　　　　　　(x   y)=(X  Y) (R^(-1))+(Subscript[O, 0])　
　
によって、２次曲線(Subscript[C, 0])の媒介変数が得られる。

A=(({{64, -10}, {-10, 16}})); F=(({{16, -12}})); c=-59; (Subscript[C, 0])= Expand[ (({{x, y}})).A.(({{x}, {y}}))+2 F.(({{x}, {y}}))+c][[1]][[1]](*　(Subscript[２次曲線C, 0])==0を与える　*)

Eigenvalues[A];

(Subscript[λ, 1]) =%[[1]]; (Subscript[λ, 2]) =%[[2]];

Eigenvectors[A];

u=%[[1]]/Sqrt[FullSimplify[Norm[%[[1]]]^2]];

R={{u[[1]],-u[[2]]},{u[[2]],u[[1]]}} ;

(Subscript[D, λ])={{(Subscript[λ, 1]),0},{0,(Subscript[λ, 2])}};(Subscript[D, λ])//MatrixForm(* 行列 (Subscript[D, λ]) *) ;

{f',g'}=(F.R)[[1]] ;(* f', g' を計算する*)

O'=-{%[[1]]/(Subscript[λ, 1]),%[[2]]/(Subscript[λ, 2])}//FullSimplify;(* C'の中心　*)

C'= FullSimplify[ (({{X, Y}})).(Subscript[D, λ]).(({{X}, {Y}}))+2 (({{f', g'}})).(({{X}, {Y}}))+c][[1]][[1]];

c'=FullSimplify[-c+f'^2/(Subscript[λ, 1])+g'^2/(Subscript[λ, 2])];

C''= FullSimplify[ (1/(c'))(({{X, Y}})).(Subscript[D, λ]).(({{X}, {Y}}))-1][[1]][[1]]//Expand(* 標準形　C''=0 *)

{(Subscript[η, 1]),(Subscript[η, 2])}={Coefficient[C'',X^2] ,Coefficient[C'',Y^2]};

標準形の媒介変数表示

p2[t_]=If[(Subscript[η, 2])>0&&(Subscript[η, 1])>0,{Cos[t]/Sqrt[(Subscript[η, 1])],Sin[t]/Sqrt[(Subscript[η, 2])]},
If[(Subscript[η, 1])>0&&(Subscript[η, 2])<0,{1/(Cos[t]Sqrt[(Subscript[η, 1])]),Tan[t]/Sqrt[Abs[(Subscript[η, 2])]]},
If[(Subscript[η, 2])>0&&(Subscript[η, 1])<0,{Tan[t]/Sqrt[Abs[(Subscript[η, 1])]],1/(Cos[t]Sqrt[(Subscript[η, 2])])}
   ]]]

(*C''/.{X->x,Y->y}*)

X0=3; cont=ContourPlot[C''==0,{X,-X0,X0},{Y,-X0,X0},Axes->True](*　C'':標準形のグラフ　*);

Manipulate[P''=Graphics[{PointSize[Large],Point[p2[t]]}];Show[cont, P''],{t,0,2 Pi},SaveDefinitions->True](*p1[t] が標準形の媒介変数表示であることを確かめる*)

(Subscript[O, 0])=O’(R^(-1))は、(Subscript[２次曲線C, 0])の中心 　　変換　(x   y)=(X  Y) (R^(-1))+(Subscript[O, 0])　を施せば (Subscript[C, 0]) 上の点となる。  p[t]  が(Subscript[C, 0]) の媒介変数である。

(Subscript[O, 0])=FullSimplify[O'.Inverse[R]]

p[t_]=FullSimplify[p2[t].Inverse[R]+(Subscript[O, 0])]

X0=3; cont0=ContourPlot[(Subscript[C, 0])==0,{x,-X0,X0},{y,-X0,X0},Axes->True](*　(Subscript[C, 0 ])のグラフ　*);

Manipulate[P=Graphics[{PointSize[Large],Point[p[t]]}];Show[cont0, P],{t,0,2 Pi},SaveDefinitions->True](*　p[t] が (Subscript[C, 0]) の媒介変数表示であることを確かめる　*)