椭圆曲线和双曲线的方程都是:Ax^2+Bxy+Cy^2+Dx+Ey+F=0
当轴垂直于坐标系时,可写成 (x-h)^2/a^2+(y-k)^2/b^2=1 的标准方程。
下面的程序可以将所有Ax^2+Bxy+Cy^2+Dx+Ey+F=0 (B=0时)的椭圆或双曲方程标准化。并可计算焦距、离心率、准线方程(仅双曲线)、正焦弦。
说明:
Regulate AX^2 + CY^2 +DX+EY +F=0
Into
U*(X-H)^2/I^2 + V*(Y-K)^2/J^2 = 1
U and V are signs (+1/-1)
Centre(H,K)
Axes=2*I, 2*J
E=eccentricity (Overwrite)
O=Focus-Centre Distance
L=Latus Rectus
.
代码:
Disp “AX^2+BXY+CY^2+DX+EY+F=0 NO B”
Prompt A
Prompt C
Prompt D
Prompt E
Prompt F
Input “ECC/HYP(1/0) “,Z
A/abs(A)→U
C/abs(C)→V
–D/A/2→H
–E/C/2→K
1/(AU)^.5→I
1/(CV)^.5→J
UH^2/I^2+VK^2/J^2→W
–(F-W)→R
If R<0
Then
–R→R
–U→U
–V→V
End
R^.5→Q
I*Q→I
J*Q→J
If Z=1
abs(I^2-J^2)^.5→O
If Z=0
abs(I^2+J^2)^.5→O
Disp “A: “,I
Disp “H: “,H
Disp “B: “,J
Disp “K: “,K
Disp “C: “,O
If J>I
Then
O/J→E
End
If (Z=1 and I>J) or (Z=0 and U>0 and V<0)
Then
2*J^2/I→L
Else
2*I^2/J→L
End
Disp “LATUS RECTUS:”,L