更多阅读:sppy.site
问题解答
给定点集 P = { P 1 , P 2 , ⋯ , P n } \mathcal{P}=\{P_1,P_2,\cdots,P_n\} P={ P1,P2,⋯,Pn} ,求包围该点集的最小椭圆 E \mathcal{E} E 。
椭圆大小
给定椭圆的半轴 a a a 、 b b b ,如何定义椭圆的大小?
- 面积: A r e a ( E ) = π a b \mathrm{Area}(\mathcal{E})=\pi ab Area(E)=πab
- 周长: P e r i m e t e r ( E ) = ∫ 0 2 π ( a sin t ) 2 + ( b cos t ) 2 d t \mathrm{Perimeter}(\mathcal{E})=\int_0^{2\pi} \sqrt{(a\sin t)^2+(b\cos t)^2}~\mathrm{d}t Perimeter(E)=∫02π(asint)2+(bcost)2 dt
对于周长 P e r i m e t e r ( E ) \mathrm{Perimeter}(\mathcal{E}) Perimeter(E) 没有一个简单的初等函数表达形式,故采用面积 A r e a ( E ) \mathrm{Area}(\mathcal{E}) Area(E) 来定义椭圆大小。
问题建模
数学抽象
将二次曲线形式的椭圆方程
A x 2 + B x y + C y 2 + D x + E y + F = 0 Ax^2+Bxy+Cy^2+Dx+Ey+F=0 Ax2+Bxy+Cy2+Dx+Ey+F=0
变换为中心形式,即
A ( x − x 0 ) 2 + B ( x − x 0 ) ( y − y 0 ) + C ( y − y 0 ) 2 = f A(x-x_0)^2+B(x-x_0)(y-y_0)+C(y-y_0)^2=f A(x−x0)2+B(x−x0)(y−y0)+C(y−y0)2=f
其中
x 0 = 2 C D − B E B 2 − 4 A C y 0 = 2 A E − B D B 2 − 4 A C x_0=\frac{2CD-BE}{B^2-4AC}\qquad y_0=\frac{2AE-BD}{B^2-4AC} x0=B2−4AC2CD−BEy0=B2−4AC2AE−BD
f = − F + A x 0 2 + B x 0 y 0 + C y 0 2 f=-F+Ax_0^2+Bx_0y_0+Cy_0^2 f=−F+Ax02+Bx0y0+