台风年鉴十表元数据
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
模型算法说明文档
算法名称:拟合多边形为椭圆算法
作者:白舒扬
测试人:徐宏
完成日期:2010年6月19日
签收人:
签收日期:2010年月日
1算法简述 本算法将多边形拟合为椭圆。算法利用带约束的最小二乘法,由给定的若干顶点得到椭圆在平面直角坐标系的一般方程,继而求得椭圆各特征参数。算法特点为稳定和快速。
2算法输入
◆ x :多边形顶点横坐标组成的列数组 ◆ y: 多边形顶点纵坐标组成的列数组
若给待拟合多边形顶点编上序号,则x 和y 的第i 个元素分别是第i 个顶点的横和纵坐 标。输入的点顺序不一定按多边形周边的绕行顺序。一个顶点仅输入一次,不能重复。
3数学原理
◆ 椭圆方程及其变换
在平面直角坐标系上,一般位置的椭圆可表示为关于,x y 的方程:
220ax bxy cy dx ey f +++++=, 132(0,0)I I I <> (1)
的解。其中
1I a c
=+
222
b a
I b c
=
322222
2
b d a b e I
c
d
e f
=
通过旋转和平移,可将一般位置的椭圆方程变换为中心在原点、对称轴重合于坐标轴 标准椭圆方程,从而提取出椭圆的特征参数。
首先假设(1)中的各系数已知。现在把坐标轴逆时针转动θ角度,其中(',')x y 表示点
(,)x y 在坐标轴变动后的新坐标:
'cos 'sin 'sin 'cos x x y y x y θθ
θθ=-⎧⎨
=+⎩
(2) 把(2)代入(1),设新方程为:
22''''''''''''0a x b x y c y d x e y f +++++= (3)
容易求出:
22'cos cos sin sin a a b c θθθθ=++
()
'sin 2cos 22
c a b b θθ-=
+ 22'sin cos sin cos c a b b θθθθ=-+
'cos sin d d e θθ=+ 'sin cos e d e θθ=-+
'f f =
为了使坐标轴变换后,方程不在出现''x y 一项,即'0b =,则有:
arctan(
)b
a c
θ=- 为了让''x y 项的系数为0,需令
1= arctan(
)2b
a c
θ- (4)
在将(4)代入(3)中各系数确定它们的值。此时再对(3)进行配方得到
22
22'''''['()]'['()]'02'2'4'4'd e d e a x b y f a c a c --+--+--=
令22
'''4'4'
d e F f a c =-- 则有
22
0022
('')('')1x x y y A B
--+= 其中,
A =
B =
0''2'd x a =- 0'
'2'e y c =- (5) ((1)中的限制条件保证了根号下为正)
此时的A 和B 即椭圆的两半轴长,再利用(2)将目前的椭圆中心点坐标00(',')x y 转变为坐标轴变换之前的00(,)x y 。
于是,我们从椭圆一般方程的系数得到了椭圆的两半轴长,中心坐标以及A 半轴关于x
坐标轴的角度(逆时针为正向)。
用现在得到的参数,椭圆在原坐标系下的参数(t )方程为:
00cos sin cos sin cos sin x x A t y y B t θθθ
θ⎧-⎡⎤⎡⎤⎡⎤⎡⎤
=+⎨⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦
⎣⎦⎩
带约束的最小二乘
首先考虑带约束的方程:
220
ax bxy cy dx ey f +++++=(2241I ac b =-=) (6) 之所以可以把约束20I >换为21I =,是因为若(6)中方程系数都乘以某个非零数,方
程解没有变化,所以无妨预先假定21I =。
而最小二乘拟合,实际上是求函数
2
221
(,,,,,)
()n
i
i i i i i i F a b c d e f ax
bx y cy dx ey f =+++++∑ 的最小值,其中(,)i i x y 为第i
个待拟合顶点坐标,另外还带有41ac b -=的约束条件。为简化,记
22[,,,,,1]i i i i i i i V x x y y x y =,[,,,,,]P a b c d e f =。再令
12V D V ⎡⎤
⎢⎥=⎢⎥
⎢⎥⎣⎦
,于是问题转化为
求2
min P
DP ,1T PCP =
其中,
002000010000200000000000000000000000C ⎡⎤⎢⎥-⎢
⎥⎢⎥
=⎢
⎥⎢⎥⎢⎥
⎢
⎥
⎣⎦
由拉格朗日乘子法,转化为解方程组:
T T T D DP CP λ=
(7)
1T PCP =
(8)
接下来通过矩阵分块和求特征向量的方式能解出上述方程组(详见参考文献1),从而得到所需的系数组,,,,,a b c d e f 。
现在只需要说明得到的此系数组满足约束130I I <。而实际上,方程(6)在实平面上有非单点解当且仅当130I I <(见参考文献2,P158),或者说仅需(6)有非单点解,则解一定为椭圆。我们又有以下结论:
【结论】有上述方法解出的[,,,,,]P a b c d e f =必定使得方程(6)在实平面上有非单点解。
证明:记2
2
(,)T
l V P VP ax bxy cy dx ey f ==+++++
此时,由拉格朗日乘子法,仅考虑(6)最后一行的那个方程有: